diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-10-31 12:50:53 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-11-08 11:01:20 +0300 |
commit | 7e4c37cce5363ea2f91de8c96c9855a71d1c0828 (patch) | |
tree | 9e9794f011ccf5c53312638d3dc3a993179538a1 | |
parent | 790d919d9e15f90c5c0dc89925b9762aa6ca944b (diff) |
repository: Refactor test to validate OptimizeRepository arguments
Refacter the test that validates whether the `OptimizeRepository` RPC
validates its arguments as expected so that it can be extended more
readily.
-rw-r--r-- | internal/gitaly/service/repository/optimize_test.go | 64 |
1 files changed, 35 insertions, 29 deletions
diff --git a/internal/gitaly/service/repository/optimize_test.go b/internal/gitaly/service/repository/optimize_test.go index b89f0515a..eee0bcd80 100644 --- a/internal/gitaly/service/repository/optimize_test.go +++ b/internal/gitaly/service/repository/optimize_test.go @@ -15,10 +15,9 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest" "gitlab.com/gitlab-org/gitaly/v15/internal/git/stats" + "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" ) func getNewestPackfileModtime(t *testing.T, repoPath string) time.Time { @@ -155,48 +154,55 @@ func TestOptimizeRepository(t *testing.T) { require.NoFileExists(t, mrRefs) } -func TestOptimizeRepositoryValidation(t *testing.T) { +func TestOptimizeRepository_validation(t *testing.T) { t.Parallel() ctx := testhelper.Context(t) cfg, repo, _, client := setupRepositoryService(t, ctx) - testCases := []struct { - desc string - repo *gitalypb.Repository - exp error + for _, tc := range []struct { + desc string + request *gitalypb.OptimizeRepositoryRequest + expectedErr error }{ { - desc: "empty repository", - repo: nil, - exp: status.Error(codes.InvalidArgument, gitalyOrPraefect("empty Repository", "repo scoped: empty Repository")), + desc: "empty repository", + request: &gitalypb.OptimizeRepositoryRequest{}, + expectedErr: helper.ErrInvalidArgumentf(gitalyOrPraefect( + "empty Repository", + "repo scoped: empty Repository", + )), }, { desc: "invalid repository storage", - repo: &gitalypb.Repository{StorageName: "non-existent", RelativePath: repo.GetRelativePath()}, - exp: status.Error(codes.InvalidArgument, gitalyOrPraefect(`GetStorageByName: no such storage: "non-existent"`, "repo scoped: invalid Repository")), + request: &gitalypb.OptimizeRepositoryRequest{ + Repository: &gitalypb.Repository{ + StorageName: "non-existent", + RelativePath: repo.GetRelativePath(), + }, + }, + expectedErr: helper.ErrInvalidArgumentf(gitalyOrPraefect( + `GetStorageByName: no such storage: "non-existent"`, + "repo scoped: invalid Repository"), + ), }, { desc: "invalid repository path", - repo: &gitalypb.Repository{StorageName: repo.GetStorageName(), RelativePath: "path/not/exist"}, - exp: status.Error( - codes.NotFound, - gitalyOrPraefect( - fmt.Sprintf(`GetRepoPath: not a git repository: "%s/path/not/exist"`, cfg.Storages[0].Path), - `routing repository maintenance: getting repository metadata: repository not found`, - ), - ), + request: &gitalypb.OptimizeRepositoryRequest{ + Repository: &gitalypb.Repository{ + StorageName: repo.GetStorageName(), + RelativePath: "path/not/exist", + }, + }, + expectedErr: helper.ErrNotFoundf(gitalyOrPraefect( + fmt.Sprintf(`GetRepoPath: not a git repository: "%s/path/not/exist"`, cfg.Storages[0].Path), + `routing repository maintenance: getting repository metadata: repository not found`, + )), }, - } - - for _, tc := range testCases { + } { t.Run(tc.desc, func(t *testing.T) { - _, err := client.OptimizeRepository(ctx, &gitalypb.OptimizeRepositoryRequest{Repository: tc.repo}) - require.Error(t, err) - testhelper.RequireGrpcError(t, tc.exp, err) + _, err := client.OptimizeRepository(ctx, tc.request) + testhelper.RequireGrpcError(t, tc.expectedErr, err) }) } - - _, err := client.OptimizeRepository(ctx, &gitalypb.OptimizeRepositoryRequest{Repository: repo}) - require.NoError(t, err) } |