mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.5 KiB
78 lines
1.5 KiB
// Copyright 2022 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
|
|
package git |
|
|
|
import ( |
|
"fmt" |
|
"testing" |
|
|
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func TestBranchRuleMatch(t *testing.T) { |
|
kases := []struct { |
|
Rule string |
|
BranchName string |
|
ExpectedMatch bool |
|
}{ |
|
{ |
|
Rule: "release/*", |
|
BranchName: "release/v1.17", |
|
ExpectedMatch: true, |
|
}, |
|
{ |
|
Rule: "release/**/v1.17", |
|
BranchName: "release/test/v1.17", |
|
ExpectedMatch: true, |
|
}, |
|
{ |
|
Rule: "release/**/v1.17", |
|
BranchName: "release/test/1/v1.17", |
|
ExpectedMatch: true, |
|
}, |
|
{ |
|
Rule: "release/*/v1.17", |
|
BranchName: "release/test/1/v1.17", |
|
ExpectedMatch: false, |
|
}, |
|
{ |
|
Rule: "release/v*", |
|
BranchName: "release/v1.16", |
|
ExpectedMatch: true, |
|
}, |
|
{ |
|
Rule: "*", |
|
BranchName: "release/v1.16", |
|
ExpectedMatch: false, |
|
}, |
|
{ |
|
Rule: "**", |
|
BranchName: "release/v1.16", |
|
ExpectedMatch: true, |
|
}, |
|
{ |
|
Rule: "main", |
|
BranchName: "main", |
|
ExpectedMatch: true, |
|
}, |
|
{ |
|
Rule: "master", |
|
BranchName: "main", |
|
ExpectedMatch: false, |
|
}, |
|
} |
|
|
|
for _, kase := range kases { |
|
pb := ProtectedBranch{RuleName: kase.Rule} |
|
var should, infact string |
|
if !kase.ExpectedMatch { |
|
should = " not" |
|
} else { |
|
infact = " not" |
|
} |
|
assert.EqualValues(t, kase.ExpectedMatch, pb.Match(kase.BranchName), |
|
fmt.Sprintf("%s should%s match %s but it is%s", kase.BranchName, should, kase.Rule, infact), |
|
) |
|
} |
|
}
|
|
|