aboutsummaryrefslogtreecommitdiffstats
path: root/models/git/protected_branch_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/git/protected_branch_test.go')
-rw-r--r--models/git/protected_branch_test.go78
1 files changed, 78 insertions, 0 deletions
diff --git a/models/git/protected_branch_test.go b/models/git/protected_branch_test.go
index 1962859a8c..49d433f845 100644
--- a/models/git/protected_branch_test.go
+++ b/models/git/protected_branch_test.go
@@ -7,6 +7,10 @@ import (
"fmt"
"testing"
+ "code.gitea.io/gitea/models/db"
+ repo_model "code.gitea.io/gitea/models/repo"
+ "code.gitea.io/gitea/models/unittest"
+
"github.com/stretchr/testify/assert"
)
@@ -76,3 +80,77 @@ func TestBranchRuleMatch(t *testing.T) {
)
}
}
+
+func TestUpdateProtectBranchPriorities(t *testing.T) {
+ assert.NoError(t, unittest.PrepareTestDatabase())
+
+ repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
+
+ // Create some test protected branches with initial priorities
+ protectedBranches := []*ProtectedBranch{
+ {
+ RepoID: repo.ID,
+ RuleName: "master",
+ Priority: 1,
+ },
+ {
+ RepoID: repo.ID,
+ RuleName: "develop",
+ Priority: 2,
+ },
+ {
+ RepoID: repo.ID,
+ RuleName: "feature/*",
+ Priority: 3,
+ },
+ }
+
+ for _, pb := range protectedBranches {
+ _, err := db.GetEngine(db.DefaultContext).Insert(pb)
+ assert.NoError(t, err)
+ }
+
+ // Test updating priorities
+ newPriorities := []int64{protectedBranches[2].ID, protectedBranches[0].ID, protectedBranches[1].ID}
+ err := UpdateProtectBranchPriorities(db.DefaultContext, repo, newPriorities)
+ assert.NoError(t, err)
+
+ // Verify new priorities
+ pbs, err := FindRepoProtectedBranchRules(db.DefaultContext, repo.ID)
+ assert.NoError(t, err)
+
+ expectedPriorities := map[string]int64{
+ "feature/*": 1,
+ "master": 2,
+ "develop": 3,
+ }
+
+ for _, pb := range pbs {
+ assert.Equal(t, expectedPriorities[pb.RuleName], pb.Priority)
+ }
+}
+
+func TestNewProtectBranchPriority(t *testing.T) {
+ assert.NoError(t, unittest.PrepareTestDatabase())
+ repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
+
+ err := UpdateProtectBranch(db.DefaultContext, repo, &ProtectedBranch{
+ RepoID: repo.ID,
+ RuleName: "branch-1",
+ Priority: 1,
+ }, WhitelistOptions{})
+ assert.NoError(t, err)
+
+ newPB := &ProtectedBranch{
+ RepoID: repo.ID,
+ RuleName: "branch-2",
+ // Priority intentionally omitted
+ }
+
+ err = UpdateProtectBranch(db.DefaultContext, repo, newPB, WhitelistOptions{})
+ assert.NoError(t, err)
+
+ savedPB2, err := GetFirstMatchProtectedBranchRule(db.DefaultContext, repo.ID, "branch-2")
+ assert.NoError(t, err)
+ assert.Equal(t, int64(2), savedPB2.Priority)
+}