Ctrl K
ComunidadGuías…

internal/branch/pattern_test.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package branch

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestMatchPattern(t *testing.T) {
	cases := []struct {
		pattern string
		name    string
		want    bool
	}{
		{"production", "production", true},
		{"production", "Production", false}, // branch names are case sensitive
		{"production", "production-eu", false},
		{"*", "anything", true},
		{"*", "", true},
		{"pr-*", "pr-482", true},
		{"pr-*", "pr-", true},
		{"pr-*", "pr", false},
		{"pr-*", "release-pr-482", false},
		{"*-staging", "eu-staging", true},
		{"*-staging", "staging", false},
		{"pr-*-eu", "pr-482-eu", true},
		{"pr-*-eu", "pr-eu", false}, // the two anchors would have to overlap
		{"ab*ba", "aba", false},
		{"ab*ba", "abba", true},
		{"a*b*c", "azzbzzc", true},
		{"a*b*c", "azzc", false},
		// A literal "[" is a branch name, not a character class.
		{"beta[eu]", "beta[eu]", true},
	}
	for _, tc := range cases {
		t.Run(tc.pattern+"/"+tc.name, func(t *testing.T) {
			assert.Equal(t, tc.want, MatchPattern(tc.pattern, tc.name))
		})
	}
}

func TestCollapseWildcards(t *testing.T) {
	assert.Equal(t, "*", CollapseWildcards("**"))
	assert.Equal(t, "*", CollapseWildcards("****"))
	assert.Equal(t, "pr-*", CollapseWildcards("pr-**"))
	assert.Equal(t, "pr-*-eu", CollapseWildcards("pr-***-eu"))
	assert.Equal(t, "production", CollapseWildcards("production"))
}