add: some tests
This commit is contained in:
@@ -1 +1,2 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
|
bin/
|
||||||
|
|||||||
@@ -1,7 +1,18 @@
|
|||||||
.PHONY: proto proto-deps help
|
.PHONY: all build test proto proto-deps help
|
||||||
|
|
||||||
# Default target
|
# 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
|
# Generate Go code from proto files using buf
|
||||||
proto: proto-deps
|
proto: proto-deps
|
||||||
@@ -18,6 +29,8 @@ help:
|
|||||||
@echo "Webstory Makefile"
|
@echo "Webstory Makefile"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "Available targets:"
|
@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 - Generate Go code from proto files"
|
||||||
@echo " make proto-deps - Ensure buf is installed"
|
@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