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:
Diffstat (limited to 'internal/gitaly/service/operations/merge_test.go')
-rw-r--r--internal/gitaly/service/operations/merge_test.go119
1 files changed, 119 insertions, 0 deletions
diff --git a/internal/gitaly/service/operations/merge_test.go b/internal/gitaly/service/operations/merge_test.go
index 41c5038c8..d16fab2b3 100644
--- a/internal/gitaly/service/operations/merge_test.go
+++ b/internal/gitaly/service/operations/merge_test.go
@@ -120,6 +120,125 @@ func TestUserMergeBranch_successful(t *testing.T) {
}
}
+func TestUserMergeBranch_failure(t *testing.T) {
+ t.Parallel()
+ ctx := testhelper.Context(t)
+
+ ctx, cfg, repoProto, repoPath, client := setupOperationsService(t, ctx)
+
+ _ = localrepo.NewTestRepo(t, cfg, repoProto)
+
+ gittest.Exec(t, cfg, "-C", repoPath, "branch", mergeBranchName, mergeBranchHeadBefore)
+
+ testCases := []struct {
+ user *gitalypb.User
+ repo *gitalypb.Repository
+ desc string
+ commitID string
+ errMessage string
+ branch []byte
+ message []byte
+ code codes.Code
+ }{
+ {
+ desc: "empty repository",
+ user: gittest.TestUser,
+ branch: []byte(mergeBranchName),
+ commitID: commitToMerge,
+ code: codes.InvalidArgument,
+ message: []byte("sample-message"),
+ errMessage: "",
+ },
+ {
+ desc: "empty user",
+ repo: repoProto,
+ branch: []byte(mergeBranchName),
+ commitID: commitToMerge,
+ code: codes.InvalidArgument,
+ message: []byte("sample-message"),
+ errMessage: "empty user",
+ },
+ {
+ desc: "empty user name",
+ user: &gitalypb.User{
+ GlId: gittest.TestUser.GlId,
+ GlUsername: gittest.TestUser.GlUsername,
+ Email: gittest.TestUser.Email,
+ Timezone: gittest.TestUser.Timezone,
+ },
+ repo: repoProto,
+ branch: []byte(mergeBranchName),
+ commitID: commitToMerge,
+ code: codes.InvalidArgument,
+ message: []byte("sample-message"),
+ errMessage: "empty user name",
+ },
+ {
+ desc: "empty user email",
+ user: &gitalypb.User{
+ GlId: gittest.TestUser.GlId,
+ Name: gittest.TestUser.Name,
+ GlUsername: gittest.TestUser.GlUsername,
+ Timezone: gittest.TestUser.Timezone,
+ },
+ repo: repoProto,
+ branch: []byte(mergeBranchName),
+ commitID: commitToMerge,
+ code: codes.InvalidArgument,
+ message: []byte("sample-message"),
+ errMessage: "empty user email",
+ },
+ {
+ desc: "empty commit",
+ repo: repoProto,
+ user: gittest.TestUser,
+ branch: []byte(mergeBranchName),
+ code: codes.InvalidArgument,
+ message: []byte("sample-message"),
+ errMessage: "empty commit ID",
+ },
+ {
+ desc: "empty branch",
+ repo: repoProto,
+ user: gittest.TestUser,
+ commitID: commitToMerge,
+ code: codes.InvalidArgument,
+ message: []byte("sample-message"),
+ errMessage: "empty branch name",
+ },
+ {
+ desc: "empty message",
+ repo: repoProto,
+ user: gittest.TestUser,
+ branch: []byte(mergeBranchName),
+ commitID: commitToMerge,
+ code: codes.InvalidArgument,
+ errMessage: "empty message",
+ },
+ }
+
+ for _, testCase := range testCases {
+ t.Run(testCase.desc, func(t *testing.T) {
+ request := &gitalypb.UserMergeBranchRequest{
+ Repository: testCase.repo,
+ User: testCase.user,
+ Branch: testCase.branch,
+ CommitId: testCase.commitID,
+ Message: testCase.message,
+ }
+
+ mergeBidi, err := client.UserMergeBranch(ctx)
+ require.NoError(t, err)
+
+ require.NoError(t, mergeBidi.Send(request), "apply merge")
+ _, err = mergeBidi.Recv()
+
+ testhelper.RequireGrpcCode(t, err, testCase.code)
+ require.ErrorContains(t, err, testCase.errMessage)
+ })
+ }
+}
+
func TestUserMergeBranch_quarantine(t *testing.T) {
t.Parallel()