summaryrefslogtreecommitdiffstats
path: root/routers/private/hook_post_receive_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'routers/private/hook_post_receive_test.go')
-rw-r--r--routers/private/hook_post_receive_test.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/routers/private/hook_post_receive_test.go b/routers/private/hook_post_receive_test.go
new file mode 100644
index 0000000..bfd647e
--- /dev/null
+++ b/routers/private/hook_post_receive_test.go
@@ -0,0 +1,50 @@
+// Copyright 2024 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package private
+
+import (
+ "testing"
+
+ "code.gitea.io/gitea/models/db"
+ issues_model "code.gitea.io/gitea/models/issues"
+ pull_model "code.gitea.io/gitea/models/pull"
+ repo_model "code.gitea.io/gitea/models/repo"
+ "code.gitea.io/gitea/models/unittest"
+ user_model "code.gitea.io/gitea/models/user"
+ "code.gitea.io/gitea/modules/private"
+ repo_module "code.gitea.io/gitea/modules/repository"
+ "code.gitea.io/gitea/services/contexttest"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+)
+
+func TestHandlePullRequestMerging(t *testing.T) {
+ require.NoError(t, unittest.PrepareTestDatabase())
+ pr, err := issues_model.GetUnmergedPullRequest(db.DefaultContext, 1, 1, "branch2", "master", issues_model.PullRequestFlowGithub)
+ require.NoError(t, err)
+ require.NoError(t, pr.LoadBaseRepo(db.DefaultContext))
+
+ user1 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
+
+ err = pull_model.ScheduleAutoMerge(db.DefaultContext, user1, pr.ID, repo_model.MergeStyleSquash, "squash merge a pr")
+ require.NoError(t, err)
+
+ autoMerge := unittest.AssertExistsAndLoadBean(t, &pull_model.AutoMerge{PullID: pr.ID})
+
+ ctx, resp := contexttest.MockPrivateContext(t, "/")
+ handlePullRequestMerging(ctx, &private.HookOptions{
+ PullRequestID: pr.ID,
+ UserID: 2,
+ }, pr.BaseRepo.OwnerName, pr.BaseRepo.Name, []*repo_module.PushUpdateOptions{
+ {NewCommitID: "01234567"},
+ })
+ assert.Empty(t, resp.Body.String())
+ pr, err = issues_model.GetPullRequestByID(db.DefaultContext, pr.ID)
+ require.NoError(t, err)
+ assert.True(t, pr.HasMerged)
+ assert.EqualValues(t, "01234567", pr.MergedCommitID)
+
+ unittest.AssertNotExistsBean(t, &pull_model.AutoMerge{ID: autoMerge.ID})
+}