mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-10 04:05:42 +01:00
[PORT] Add warning message in merge instructions when AutodetectManualMerge
was not enabled (gitea#31805)
--- Conflict resolution: trivial Things done differently: Improve localization message, use the paragraph element instead of the div element, fix passing this variable to the template and add a integration test (cherry picked from commit 9633f336c87947dc7d2a5e76077a10699ba5e50d)
This commit is contained in:
parent
44002a6399
commit
e5f8d144f2
5 changed files with 53 additions and 2 deletions
|
@ -1952,6 +1952,7 @@ pulls.cmd_instruction_checkout_title = Checkout
|
||||||
pulls.cmd_instruction_checkout_desc = From your project repository, check out a new branch and test the changes.
|
pulls.cmd_instruction_checkout_desc = From your project repository, check out a new branch and test the changes.
|
||||||
pulls.cmd_instruction_merge_title = Merge
|
pulls.cmd_instruction_merge_title = Merge
|
||||||
pulls.cmd_instruction_merge_desc = Merge the changes and update on Forgejo.
|
pulls.cmd_instruction_merge_desc = Merge the changes and update on Forgejo.
|
||||||
|
pulls.cmd_instruction_merge_warning = <b>Warning:</b> The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.
|
||||||
pulls.clear_merge_message = Clear merge message
|
pulls.clear_merge_message = Clear merge message
|
||||||
pulls.clear_merge_message_hint = Clearing the merge message will only remove the commit message content and keep generated git trailers such as "Co-Authored-By …".
|
pulls.clear_merge_message_hint = Clearing the merge message will only remove the commit message content and keep generated git trailers such as "Co-Authored-By …".
|
||||||
pulls.reopen_failed.head_branch = The pull request cannot be reopened, because the head branch doesn't exist anymore.
|
pulls.reopen_failed.head_branch = The pull request cannot be reopened, because the head branch doesn't exist anymore.
|
||||||
|
|
|
@ -1881,6 +1881,8 @@ func ViewIssue(ctx *context.Context) {
|
||||||
}
|
}
|
||||||
prConfig := prUnit.PullRequestsConfig()
|
prConfig := prUnit.PullRequestsConfig()
|
||||||
|
|
||||||
|
ctx.Data["AutodetectManualMerge"] = prConfig.AutodetectManualMerge
|
||||||
|
|
||||||
var mergeStyle repo_model.MergeStyle
|
var mergeStyle repo_model.MergeStyle
|
||||||
// Check correct values and select default
|
// Check correct values and select default
|
||||||
if ms, ok := ctx.Data["MergeStyle"].(repo_model.MergeStyle); !ok ||
|
if ms, ok := ctx.Data["MergeStyle"].(repo_model.MergeStyle); !ok ||
|
||||||
|
|
|
@ -388,7 +388,7 @@
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
{{if and .Issue.PullRequest.HeadRepo (not .Issue.PullRequest.HasMerged) (not .Issue.IsClosed)}}
|
{{if and .Issue.PullRequest.HeadRepo (not .Issue.PullRequest.HasMerged) (not .Issue.IsClosed)}}
|
||||||
{{template "repo/issue/view_content/pull_merge_instruction" dict "PullRequest" .Issue.PullRequest "ShowMergeInstructions" .ShowMergeInstructions}}
|
{{template "repo/issue/view_content/pull_merge_instruction" dict "PullRequest" .Issue.PullRequest "ShowMergeInstructions" .ShowMergeInstructions "AutodetectManualMerge" .AutodetectManualMerge}}
|
||||||
{{end}}
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -15,7 +15,13 @@
|
||||||
<div>git checkout {{$localBranch}}</div>
|
<div>git checkout {{$localBranch}}</div>
|
||||||
</div>
|
</div>
|
||||||
{{if .ShowMergeInstructions}}
|
{{if .ShowMergeInstructions}}
|
||||||
<div><h3>{{ctx.Locale.Tr "repo.pulls.cmd_instruction_merge_title"}}</h3>{{ctx.Locale.Tr "repo.pulls.cmd_instruction_merge_desc"}}</div>
|
<div id="merge-instructions">
|
||||||
|
<h3>{{ctx.Locale.Tr "repo.pulls.cmd_instruction_merge_title"}}</h3>
|
||||||
|
{{ctx.Locale.Tr "repo.pulls.cmd_instruction_merge_desc"}}
|
||||||
|
{{if not .AutodetectManualMerge}}
|
||||||
|
<p>{{ctx.Locale.Tr "repo.pulls.cmd_instruction_merge_warning"}}</p>
|
||||||
|
{{end}}
|
||||||
|
</div>
|
||||||
<div class="ui secondary segment">
|
<div class="ui secondary segment">
|
||||||
<div data-pull-merge-style="merge">
|
<div data-pull-merge-style="merge">
|
||||||
<div>git checkout {{.PullRequest.BaseBranch}}</div>
|
<div>git checkout {{.PullRequest.BaseBranch}}</div>
|
||||||
|
|
|
@ -7,9 +7,15 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"code.gitea.io/gitea/models/db"
|
||||||
|
repo_model "code.gitea.io/gitea/models/repo"
|
||||||
|
"code.gitea.io/gitea/models/unit"
|
||||||
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/tests"
|
"code.gitea.io/gitea/tests"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestViewPulls(t *testing.T) {
|
func TestViewPulls(t *testing.T) {
|
||||||
|
@ -23,3 +29,39 @@ func TestViewPulls(t *testing.T) {
|
||||||
placeholder, _ := search.Attr("placeholder")
|
placeholder, _ := search.Attr("placeholder")
|
||||||
assert.Equal(t, "Search pulls...", placeholder)
|
assert.Equal(t, "Search pulls...", placeholder)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPullManuallyMergeWarning(t *testing.T) {
|
||||||
|
defer tests.PrepareTestEnv(t)()
|
||||||
|
|
||||||
|
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
|
||||||
|
session := loginUser(t, user2.Name)
|
||||||
|
|
||||||
|
warningMessage := `Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.`
|
||||||
|
t.Run("Autodetect disabled", func(t *testing.T) {
|
||||||
|
defer tests.PrintCurrentTest(t)()
|
||||||
|
|
||||||
|
req := NewRequest(t, "GET", "/user2/repo1/pulls/3")
|
||||||
|
resp := session.MakeRequest(t, req, http.StatusOK)
|
||||||
|
|
||||||
|
htmlDoc := NewHTMLParser(t, resp.Body)
|
||||||
|
mergeInstructions := htmlDoc.Find("#merge-instructions").Text()
|
||||||
|
assert.Contains(t, mergeInstructions, warningMessage)
|
||||||
|
})
|
||||||
|
|
||||||
|
pullRequestUnit := unittest.AssertExistsAndLoadBean(t, &repo_model.RepoUnit{RepoID: 1, Type: unit.TypePullRequests})
|
||||||
|
config := pullRequestUnit.PullRequestsConfig()
|
||||||
|
config.AutodetectManualMerge = true
|
||||||
|
_, err := db.GetEngine(db.DefaultContext).ID(pullRequestUnit.ID).Cols("config").Update(pullRequestUnit)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
t.Run("Autodetect enabled", func(t *testing.T) {
|
||||||
|
defer tests.PrintCurrentTest(t)()
|
||||||
|
|
||||||
|
req := NewRequest(t, "GET", "/user2/repo1/pulls/3")
|
||||||
|
resp := session.MakeRequest(t, req, http.StatusOK)
|
||||||
|
|
||||||
|
htmlDoc := NewHTMLParser(t, resp.Body)
|
||||||
|
mergeInstructions := htmlDoc.Find("#merge-instructions").Text()
|
||||||
|
assert.NotContains(t, mergeInstructions, warningMessage)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue