mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-28 13:49:13 -05:00
13ca6c14f1
This commit allows chaning default branch update style through global and repository settings. The setting affects "Update branch" button in PR view (button shows when some commits are ahead of master branch). When default update style is set to "rebase", dropdown button updates branch by rebase by default. When update style is set to other value, dropdown button updates branch by merge. Any of these actions may be selected using dropdown in any case. Signed-off-by: George Bartolomey <george@bh4.ru>
88 lines
2.7 KiB
Go
88 lines
2.7 KiB
Go
// Copyright 2023 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package repo
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"code.gitea.io/gitea/models/perm"
|
|
"code.gitea.io/gitea/modules/setting"
|
|
"code.gitea.io/gitea/modules/test"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestActionsConfig(t *testing.T) {
|
|
cfg := &ActionsConfig{}
|
|
cfg.DisableWorkflow("test1.yaml")
|
|
assert.EqualValues(t, []string{"test1.yaml"}, cfg.DisabledWorkflows)
|
|
|
|
cfg.DisableWorkflow("test1.yaml")
|
|
assert.EqualValues(t, []string{"test1.yaml"}, cfg.DisabledWorkflows)
|
|
|
|
cfg.EnableWorkflow("test1.yaml")
|
|
assert.EqualValues(t, []string{}, cfg.DisabledWorkflows)
|
|
|
|
cfg.EnableWorkflow("test1.yaml")
|
|
assert.EqualValues(t, []string{}, cfg.DisabledWorkflows)
|
|
|
|
cfg.DisableWorkflow("test1.yaml")
|
|
cfg.DisableWorkflow("test2.yaml")
|
|
cfg.DisableWorkflow("test3.yaml")
|
|
assert.EqualValues(t, "test1.yaml,test2.yaml,test3.yaml", cfg.ToString())
|
|
}
|
|
|
|
func TestRepoUnitAccessMode(t *testing.T) {
|
|
assert.Equal(t, perm.AccessModeNone, UnitAccessModeNone.ToAccessMode(perm.AccessModeAdmin))
|
|
assert.Equal(t, perm.AccessModeRead, UnitAccessModeRead.ToAccessMode(perm.AccessModeAdmin))
|
|
assert.Equal(t, perm.AccessModeWrite, UnitAccessModeWrite.ToAccessMode(perm.AccessModeAdmin))
|
|
assert.Equal(t, perm.AccessModeRead, UnitAccessModeUnset.ToAccessMode(perm.AccessModeRead))
|
|
}
|
|
|
|
func TestRepoPRIsUpdateStyleAllowed(t *testing.T) {
|
|
var cfg PullRequestsConfig
|
|
cfg = PullRequestsConfig{
|
|
AllowRebaseUpdate: true,
|
|
}
|
|
assert.True(t, cfg.IsUpdateStyleAllowed(UpdateStyleMerge))
|
|
assert.True(t, cfg.IsUpdateStyleAllowed(UpdateStyleRebase))
|
|
|
|
cfg = PullRequestsConfig{
|
|
AllowRebaseUpdate: false,
|
|
}
|
|
assert.True(t, cfg.IsUpdateStyleAllowed(UpdateStyleMerge))
|
|
assert.False(t, cfg.IsUpdateStyleAllowed(UpdateStyleRebase))
|
|
}
|
|
|
|
func TestRepoPRGetDefaultUpdateStyle(t *testing.T) {
|
|
defer test.MockVariableValue(&setting.Repository.PullRequest.DefaultUpdateStyle, "merge")()
|
|
|
|
var cfg PullRequestsConfig
|
|
cfg = PullRequestsConfig{
|
|
DefaultUpdateStyle: "",
|
|
}
|
|
assert.Equal(t, UpdateStyleMerge, cfg.GetDefaultUpdateStyle())
|
|
cfg = PullRequestsConfig{
|
|
DefaultUpdateStyle: "rebase",
|
|
}
|
|
assert.Equal(t, UpdateStyleRebase, cfg.GetDefaultUpdateStyle())
|
|
cfg = PullRequestsConfig{
|
|
DefaultUpdateStyle: "merge",
|
|
}
|
|
assert.Equal(t, UpdateStyleMerge, cfg.GetDefaultUpdateStyle())
|
|
|
|
setting.Repository.PullRequest.DefaultUpdateStyle = "rebase"
|
|
cfg = PullRequestsConfig{
|
|
DefaultUpdateStyle: "",
|
|
}
|
|
assert.Equal(t, UpdateStyleRebase, cfg.GetDefaultUpdateStyle())
|
|
cfg = PullRequestsConfig{
|
|
DefaultUpdateStyle: "rebase",
|
|
}
|
|
assert.Equal(t, UpdateStyleRebase, cfg.GetDefaultUpdateStyle())
|
|
cfg = PullRequestsConfig{
|
|
DefaultUpdateStyle: "merge",
|
|
}
|
|
assert.Equal(t, UpdateStyleMerge, cfg.GetDefaultUpdateStyle())
|
|
}
|