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-10-31 12:50:53 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2022-11-08 11:01:20 +0300
commit7e4c37cce5363ea2f91de8c96c9855a71d1c0828 (patch)
tree9e9794f011ccf5c53312638d3dc3a993179538a1
parent790d919d9e15f90c5c0dc89925b9762aa6ca944b (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.go64
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)
}