add: some tests
This commit is contained in:
@@ -1 +1,2 @@
|
||||
node_modules/
|
||||
bin/
|
||||
|
||||
@@ -1,7 +1,18 @@
|
||||
.PHONY: proto proto-deps help
|
||||
.PHONY: all build test proto proto-deps help
|
||||
|
||||
# Default target
|
||||
all: help
|
||||
all: build
|
||||
|
||||
# Build Go project
|
||||
build:
|
||||
@echo "Building Go project..."
|
||||
go build -o bin/webstory ./cmd/webstory || exit 1
|
||||
@echo "Build complete!"
|
||||
|
||||
# Run tests
|
||||
test:
|
||||
@echo "Running tests..."
|
||||
go test -v ./...
|
||||
|
||||
# Generate Go code from proto files using buf
|
||||
proto: proto-deps
|
||||
@@ -18,6 +29,8 @@ help:
|
||||
@echo "Webstory Makefile"
|
||||
@echo ""
|
||||
@echo "Available targets:"
|
||||
@echo " make all - Show this help message"
|
||||
@echo " make all - Show this help message (default)"
|
||||
@echo " make build - Build Go project"
|
||||
@echo " make test - Run tests"
|
||||
@echo " make proto - Generate Go code from proto files"
|
||||
@echo " make proto-deps - Ensure buf is installed"
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"net"
|
||||
|
||||
"google.golang.org/grpc"
|
||||
|
||||
v1 "git.tipsy.codes/charles/webstory/pkg/api/webstory/v1"
|
||||
"git.tipsy.codes/charles/webstory/pkg/webstory_service"
|
||||
)
|
||||
|
||||
func main() {
|
||||
lis, err := net.Listen("tcp", ":50051")
|
||||
if err != nil {
|
||||
log.Fatalf("failed to listen: %v", err)
|
||||
}
|
||||
|
||||
server := grpc.NewServer()
|
||||
|
||||
defer server.GracefulStop()
|
||||
|
||||
v1.RegisterWebstoryServiceServer(server, &webstory_service.WebstoryServiceServer{})
|
||||
|
||||
fmt.Println("Starting gRPC server on :50051")
|
||||
if err := server.Serve(lis); err != nil {
|
||||
log.Fatalf("failed to serve: %v", err)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package errors
|
||||
|
||||
import "errors"
|
||||
|
||||
// ErrNotImplemented is returned when an RPC method has not been implemented yet.
|
||||
var ErrNotImplemented = errors.New("method not implemented")
|
||||
@@ -0,0 +1,92 @@
|
||||
package webstory_service
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"google.golang.org/protobuf/types/known/emptypb"
|
||||
|
||||
v1 "git.tipsy.codes/charles/webstory/pkg/api/webstory/v1"
|
||||
"git.tipsy.codes/charles/webstory/pkg/webstory_service/errors"
|
||||
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
type WebstoryServiceServer struct {
|
||||
v1.UnimplementedWebstoryServiceServer
|
||||
}
|
||||
|
||||
// GetStory retrieves a story by its resource name.
|
||||
func (s *WebstoryServiceServer) GetStory(ctx context.Context, req *v1.GetStoryRequest) (*v1.Story, error) {
|
||||
return nil, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// ListStories returns a list of stories.
|
||||
func (s *WebstoryServiceServer) ListStories(ctx context.Context, req *v1.ListStoriesRequest) (*v1.ListStoriesResponse, error) {
|
||||
return nil, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// CreateStory creates a new story.
|
||||
func (s *WebstoryServiceServer) CreateStory(ctx context.Context, req *v1.CreateStoryRequest) (*v1.Story, error) {
|
||||
return nil, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// UpdateStory updates an existing story.
|
||||
func (s *WebstoryServiceServer) UpdateStory(ctx context.Context, req *v1.UpdateStoryRequest) (*v1.Story, error) {
|
||||
return nil, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// DeleteStory deletes a story.
|
||||
func (s *WebstoryServiceServer) DeleteStory(ctx context.Context, req *v1.DeleteStoryRequest) (*emptypb.Empty, error) {
|
||||
return &emptypb.Empty{}, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// GetScene retrieves a scene by its resource name.
|
||||
func (s *WebstoryServiceServer) GetScene(ctx context.Context, req *v1.GetSceneRequest) (*v1.Scene, error) {
|
||||
return nil, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// ListScenes returns a list of scenes for a story.
|
||||
func (s *WebstoryServiceServer) ListScenes(ctx context.Context, req *v1.ListScenesRequest) (*v1.ListScenesResponse, error) {
|
||||
return nil, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// CreateScene creates a new scene in a story.
|
||||
func (s *WebstoryServiceServer) CreateScene(ctx context.Context, req *v1.CreateSceneRequest) (*v1.Scene, error) {
|
||||
return nil, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// UpdateScene updates an existing scene.
|
||||
func (s *WebstoryServiceServer) UpdateScene(ctx context.Context, req *v1.UpdateSceneRequest) (*v1.Scene, error) {
|
||||
return nil, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// DeleteScene deletes a scene.
|
||||
func (s *WebstoryServiceServer) DeleteScene(ctx context.Context, req *v1.DeleteSceneRequest) (*emptypb.Empty, error) {
|
||||
return &emptypb.Empty{}, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// GetActor retrieves an actor by its resource name.
|
||||
func (s *WebstoryServiceServer) GetActor(ctx context.Context, req *v1.GetActorRequest) (*v1.Actor, error) {
|
||||
return nil, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// ListActors returns a list of actors for a story.
|
||||
func (s *WebstoryServiceServer) ListActors(ctx context.Context, req *v1.ListActorsRequest) (*v1.ListActorsResponse, error) {
|
||||
return nil, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// CreateActor creates a new actor in a story.
|
||||
func (s *WebstoryServiceServer) CreateActor(ctx context.Context, req *v1.CreateActorRequest) (*v1.Actor, error) {
|
||||
return nil, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// UpdateActor updates an existing actor.
|
||||
func (s *WebstoryServiceServer) UpdateActor(ctx context.Context, req *v1.UpdateActorRequest) (*v1.Actor, error) {
|
||||
return nil, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
|
||||
// DeleteActor deletes an actor.
|
||||
func (s *WebstoryServiceServer) DeleteActor(ctx context.Context, req *v1.DeleteActorRequest) (*emptypb.Empty, error) {
|
||||
return &emptypb.Empty{}, status.Error(codes.Unimplemented, errors.ErrNotImplemented.Error())
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package webstory_service
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
v1 "git.tipsy.codes/charles/webstory/pkg/api/webstory/v1"
|
||||
)
|
||||
|
||||
// Test_WebstoryServiceServer_ImplementsInterface ensures that WebstoryServiceServer
|
||||
// implements the v1.WebstoryServiceServer interface. This is a compile-time check
|
||||
// that will fail if the interface changes or if methods are missing.
|
||||
func Test_WebstoryServiceServer_ImplementsInterface(t *testing.T) {
|
||||
var _ v1.WebstoryServiceServer = (*WebstoryServiceServer)(nil)
|
||||
}
|
||||
Reference in New Issue
Block a user