Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2022-11-09 19:11:02 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2022-11-14 11:07:31 +0300
commit95555c9598c659ca3d904ba4e5093c38d36c4e61 (patch)
treee8554e6d67ed9f411b95c519423d883dadf2f6d7
parentb91027c62a56a34fc1eca30c927e8dd76c88df9b (diff)
praefect: Refactor middleware tests to use `grpc_testing` gRPC service
The tests for our Praefect middleware use a custom gRPC service definition to assert its behaviour. This is not necessary though as we can simply use a mock repository service. Refactor the test to remove one more dependency on the mock service.
-rw-r--r--internal/praefect/middleware/errorhandler_test.go52
1 files changed, 24 insertions, 28 deletions
diff --git a/internal/praefect/middleware/errorhandler_test.go b/internal/praefect/middleware/errorhandler_test.go
index e87015a6c..bf186ef9a 100644
--- a/internal/praefect/middleware/errorhandler_test.go
+++ b/internal/praefect/middleware/errorhandler_test.go
@@ -12,34 +12,33 @@ import (
"github.com/stretchr/testify/require"
"gitlab.com/gitlab-org/gitaly/v15/internal/helper"
"gitlab.com/gitlab-org/gitaly/v15/internal/praefect/grpc-proxy/proxy"
- "gitlab.com/gitlab-org/gitaly/v15/internal/praefect/mock"
"gitlab.com/gitlab-org/gitaly/v15/internal/praefect/nodes/tracker"
"gitlab.com/gitlab-org/gitaly/v15/internal/praefect/protoregistry"
"gitlab.com/gitlab-org/gitaly/v15/internal/testhelper"
"gitlab.com/gitlab-org/gitaly/v15/internal/testhelper/testcfg"
+ "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
- "google.golang.org/protobuf/types/known/emptypb"
)
-type simpleService struct {
- mock.UnimplementedSimpleServiceServer
+type repositoryService struct {
+ gitalypb.UnimplementedRepositoryServiceServer
}
-func (s *simpleService) RepoAccessorUnary(ctx context.Context, in *mock.RepoRequest) (*emptypb.Empty, error) {
- if in.GetRepo() == nil {
+func (s *repositoryService) RepositoryExists(ctx context.Context, req *gitalypb.RepositoryExistsRequest) (*gitalypb.RepositoryExistsResponse, error) {
+ if req.GetRepository() == nil {
return nil, helper.ErrInternalf("error")
}
- return &emptypb.Empty{}, nil
+ return &gitalypb.RepositoryExistsResponse{}, nil
}
-func (s *simpleService) RepoMutatorUnary(ctx context.Context, in *mock.RepoRequest) (*emptypb.Empty, error) {
- if in.GetRepo() == nil {
+func (s *repositoryService) WriteRef(ctx context.Context, req *gitalypb.WriteRefRequest) (*gitalypb.WriteRefResponse, error) {
+ if req.GetRepository() == nil {
return nil, helper.ErrInternalf("error")
}
- return &emptypb.Empty{}, nil
+ return &gitalypb.WriteRefResponse{}, nil
}
func TestStreamInterceptor(t *testing.T) {
@@ -59,10 +58,7 @@ func TestStreamInterceptor(t *testing.T) {
lis, err := net.Listen("unix", internalServerSocketPath)
require.NoError(t, err)
- registry, err := protoregistry.NewFromPaths("praefect/mock/mock.proto")
- require.NoError(t, err)
-
- mock.RegisterSimpleServiceServer(internalSrv, &simpleService{})
+ gitalypb.RegisterRepositoryServiceServer(internalSrv, &repositoryService{})
go testhelper.MustServe(t, internalSrv, lis)
defer internalSrv.Stop()
@@ -76,7 +72,7 @@ func TestStreamInterceptor(t *testing.T) {
cc, err := grpc.Dial("unix://"+internalServerSocketPath,
grpc.WithDefaultCallOptions(grpc.ForceCodec(proxy.NewCodec())),
grpc.WithTransportCredentials(insecure.NewCredentials()),
- grpc.WithStreamInterceptor(StreamErrorHandler(registry, errTracker, nodeName)),
+ grpc.WithStreamInterceptor(StreamErrorHandler(protoregistry.GitalyProtoPreregistered, errTracker, nodeName)),
)
require.NoError(t, err)
t.Cleanup(func() { testhelper.MustClose(t, cc) })
@@ -98,17 +94,17 @@ func TestStreamInterceptor(t *testing.T) {
defer testhelper.MustClose(t, praefectCC)
require.NoError(t, err)
- simpleClient := mock.NewSimpleServiceClient(praefectCC)
+ client := gitalypb.NewRepositoryServiceClient(praefectCC)
_, repo, _ := testcfg.BuildWithRepo(t)
for i := 0; i < threshold; i++ {
- _, err = simpleClient.RepoAccessorUnary(ctx, &mock.RepoRequest{
- Repo: repo,
+ _, err = client.RepositoryExists(ctx, &gitalypb.RepositoryExistsRequest{
+ Repository: repo,
})
require.NoError(t, err)
- _, err = simpleClient.RepoMutatorUnary(ctx, &mock.RepoRequest{
- Repo: repo,
+ _, err = client.WriteRef(ctx, &gitalypb.WriteRefRequest{
+ Repository: repo,
})
require.NoError(t, err)
}
@@ -117,12 +113,12 @@ func TestStreamInterceptor(t *testing.T) {
assert.False(t, errTracker.ReadThresholdReached(nodeName))
for i := 0; i < threshold; i++ {
- _, err = simpleClient.RepoAccessorUnary(ctx, &mock.RepoRequest{
- Repo: nil,
+ _, err = client.RepositoryExists(ctx, &gitalypb.RepositoryExistsRequest{
+ Repository: nil,
})
require.Error(t, err)
- _, err = simpleClient.RepoMutatorUnary(ctx, &mock.RepoRequest{
- Repo: nil,
+ _, err = client.WriteRef(ctx, &gitalypb.WriteRefRequest{
+ Repository: nil,
})
require.Error(t, err)
}
@@ -133,12 +129,12 @@ func TestStreamInterceptor(t *testing.T) {
isInErrorWindow = false
for i := 0; i < threshold; i++ {
- _, err = simpleClient.RepoAccessorUnary(ctx, &mock.RepoRequest{
- Repo: repo,
+ _, err = client.RepositoryExists(ctx, &gitalypb.RepositoryExistsRequest{
+ Repository: repo,
})
require.NoError(t, err)
- _, err = simpleClient.RepoMutatorUnary(ctx, &mock.RepoRequest{
- Repo: repo,
+ _, err = client.WriteRef(ctx, &gitalypb.WriteRefRequest{
+ Repository: repo,
})
require.NoError(t, err)
}