GitRoot
Craft your forge, Build your project, Grow your community freely
1// SPDX-FileCopyrightText: 2026 Romain Maneschi <romain@gitroot.dev>
2//
3// SPDX-License-Identifier: EUPL-1.2
4
5package plugin
6
7import (
8 "testing"
9
10 "github.com/go-git/go-git/v6/plumbing"
11)
12
13type dataTest struct {
14 name string
15 inConf []string
16 inBranches []string
17 out []string
18}
19
20var data = []dataTest{
21 {name: "simpleStar", inConf: []string{"*"}, inBranches: []string{"main"}, out: []string{"main"}},
22 {name: "onlyMain", inConf: []string{"main"}, inBranches: []string{"main", "branch1", "branch2"}, out: []string{"main"}},
23 {name: "allButNotMain", inConf: []string{"*", "!main"}, inBranches: []string{"main", "branch1", "branch2"}, out: []string{"branch1", "branch2"}},
24}
25
26func TestBranchesToRunOn(t *testing.T) {
27 for _, tt := range data {
28 inBranches := []plumbing.ReferenceName{}
29 for _, b := range tt.inBranches {
30 inBranches = append(inBranches, plumbing.NewBranchReferenceName(b))
31 }
32 res := branchesToRunOn(tt.inConf, inBranches)
33 if len(res) != len(tt.out) {
34 t.Fatalf("[%s] out has %d res but should have %d", tt.name, len(res), len(tt.out))
35 }
36 }
37}