fix: show "merge" form for empty PR (#39640)

fix #39637
This commit is contained in:
wxiaoguang authored and GitHub committed 2026-10-06 17:28:28 +00:00
1 parent 20ea3e204d
commit 26475404d4
2 files changed
+21 -2

No files matched your search

+19
View File
@@ -17,12 +17,14 @@ import (
repo_model "gitea.dev/models/repo"
"gitea.dev/models/unittest"
"gitea.dev/modules/commitstatus"
"gitea.dev/modules/json"
"gitea.dev/modules/setting"
api "gitea.dev/modules/structs"
"gitea.dev/modules/test"
"gitea.dev/services/pull"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestPullCreate_CommitStatus(t *testing.T) {
@@ -134,6 +136,23 @@ func TestPullCreate_EmptyChangesWithDifferentCommits(t *testing.T) {
text := strings.TrimSpace(doc.doc.Find(".merge-section").Text())
assert.Contains(t, text, "The changes on this branch are already on the target branch. This will be an empty commit.")
assert.Contains(t, text, "This pull request can be merged automatically.")
mergeFormProps, exists := doc.doc.Find("#pull-request-merge-form").Attr("data-merge-form-props")
require.True(t, exists)
var mergeForm struct {
EmptyCommit bool `json:"emptyCommit"`
CanMergeNow bool `json:"canMergeNow"`
MergeStyles []struct {
Name string `json:"name"`
Allowed bool `json:"allowed"`
} `json:"mergeStyles"`
}
require.NoError(t, json.Unmarshal([]byte(mergeFormProps), &mergeForm))
assert.True(t, mergeForm.EmptyCommit)
assert.True(t, mergeForm.CanMergeNow)
assert.Contains(t, mergeForm.MergeStyles, struct {
Name string `json:"name"`
Allowed bool `json:"allowed"`
}{Name: "merge", Allowed: true})
})
}