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}