diff options
author | Ævar Arnfjörð Bjarmason <avar@gitlab.com> | 2020-11-26 20:31:00 +0300 |
---|---|---|
committer | Ævar Arnfjörð Bjarmason <avar@gitlab.com> | 2020-11-26 20:31:00 +0300 |
commit | fcc9c7a62317a7ae4ccec121be7f0679a8478238 (patch) | |
tree | 58c101d2f19ad06b7b5c7a9f7e09fb4abebce546 | |
parent | 60a3e378367a9a51451f72a1ba37be7f820bbdfe (diff) | |
parent | f1948578f6a4eb3658bd54819124d369cc5abf10 (diff) |
Merge branch 'avar/test-both-branch-and-tag-creation-and-deletion-with-hooks' into 'master'
updateReferenceWithHooks: test both branch/tag creation and deletion
See merge request gitlab-org/gitaly!2840
-rw-r--r-- | internal/gitaly/service/operations/branches_test.go | 21 | ||||
-rw-r--r-- | internal/gitaly/service/operations/tags_test.go | 24 |
2 files changed, 36 insertions, 9 deletions
diff --git a/internal/gitaly/service/operations/branches_test.go b/internal/gitaly/service/operations/branches_test.go index 7ba048958..bff46b79a 100644 --- a/internal/gitaly/service/operations/branches_test.go +++ b/internal/gitaly/service/operations/branches_test.go @@ -573,20 +573,33 @@ func testBranchHookOutput(t *testing.T, ctx context.Context) { for _, hookName := range gitlabPreHooks { for _, testCase := range testCases { t.Run(hookName+"/"+testCase.desc, func(t *testing.T) { - request := &gitalypb.UserCreateBranchRequest{ + branchNameInput := "some-branch" + createRequest := &gitalypb.UserCreateBranchRequest{ Repository: testRepo, - BranchName: []byte("some-branch"), + BranchName: []byte(branchNameInput), StartPoint: []byte("master"), User: testhelper.TestUser, } + deleteRequest := &gitalypb.UserDeleteBranchRequest{ + Repository: testRepo, + BranchName: []byte(branchNameInput), + User: testhelper.TestUser, + } remove, err := testhelper.WriteCustomHook(testRepoPath, hookName, []byte(testCase.hookContent)) require.NoError(t, err) defer remove() - response, err := client.UserCreateBranch(ctx, request) + createResponse, err := client.UserCreateBranch(ctx, createRequest) + require.NoError(t, err) + require.Equal(t, testCase.output, createResponse.PreReceiveError) + + testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "branch", branchNameInput) + defer exec.Command(command.GitPath(), "-C", testRepoPath, "branch", "-d", branchNameInput).Run() + + deleteResponse, err := client.UserDeleteBranch(ctx, deleteRequest) require.NoError(t, err) - require.Equal(t, testCase.output, response.PreReceiveError) + require.Equal(t, testCase.output, deleteResponse.PreReceiveError) }) } } diff --git a/internal/gitaly/service/operations/tags_test.go b/internal/gitaly/service/operations/tags_test.go index 3fbb41944..5fe772e17 100644 --- a/internal/gitaly/service/operations/tags_test.go +++ b/internal/gitaly/service/operations/tags_test.go @@ -555,12 +555,18 @@ func TestTagHookOutput(t *testing.T) { for _, hookName := range gitlabPreHooks { for _, testCase := range testCases { t.Run(hookName+"/"+testCase.desc, func(t *testing.T) { - request := &gitalypb.UserCreateTagRequest{ + tagNameInput := "some-tag" + createRequest := &gitalypb.UserCreateTagRequest{ Repository: testRepo, - TagName: []byte("some-tag"), + TagName: []byte(tagNameInput), TargetRevision: []byte("master"), User: testhelper.TestUser, } + deleteRequest := &gitalypb.UserDeleteTagRequest{ + Repository: testRepo, + TagName: []byte(tagNameInput), + User: testhelper.TestUser, + } ctx, cancel := testhelper.Context() defer cancel() @@ -569,10 +575,18 @@ func TestTagHookOutput(t *testing.T) { require.NoError(t, err) defer remove() - response, err := client.UserCreateTag(ctx, request) + createResponse, err := client.UserCreateTag(ctx, createRequest) require.NoError(t, err) - require.Equal(t, false, response.Exists) - require.Equal(t, testCase.output, response.PreReceiveError) + require.False(t, createResponse.Exists) + require.Equal(t, testCase.output, createResponse.PreReceiveError) + + defer exec.Command(command.GitPath(), "-C", testRepoPath, "tag", "-d", tagNameInput).Run() + testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "tag", tagNameInput) + + deleteResponse, err := client.UserDeleteTag(ctx, deleteRequest) + require.NoError(t, err) + + require.Equal(t, testCase.output, deleteResponse.PreReceiveError) }) } } |