Files
ss/internal/automation/match_test.go

45 lines
1.4 KiB
Go

package automation
import "testing"
func TestMatchProxies_NamePattern(t *testing.T) {
proxies := []ProxyRef{
{OriginalName: "HK 01 | 1.0x", DisplayName: "sub-a | HK 01 | 1.0x", Subscription: "sub-a"},
{OriginalName: "HK 02 | 2.5x", DisplayName: "sub-a | HK 02 | 2.5x", Subscription: "sub-a"},
{OriginalName: "SG 01 | 0.5x", DisplayName: "sub-b | SG 01 | 0.5x", Subscription: "sub-b"},
}
matched, err := matchProxies(proxies, MatchRule{NamePattern: `^HK \d+`})
if err != nil {
t.Fatalf("matchProxies() error = %v", err)
}
if len(matched) != 2 {
t.Fatalf("expected 2 matches, got %#v", matched)
}
}
func TestMatchProxies_NamePatternAndOtherDimensionsAreANDed(t *testing.T) {
proxies := []ProxyRef{
{OriginalName: "HK 01 | 1.0x", DisplayName: "sub-a | HK 01 | 1.0x", Subscription: "sub-a"},
{OriginalName: "HK 02 | 2.5x", DisplayName: "sub-b | HK 02 | 2.5x", Subscription: "sub-b"},
}
matched, err := matchProxies(proxies, MatchRule{
Subscriptions: []string{"sub-a"},
NamePattern: `^HK`,
})
if err != nil {
t.Fatalf("matchProxies() error = %v", err)
}
if len(matched) != 1 || matched[0].DisplayName != "sub-a | HK 01 | 1.0x" {
t.Fatalf("unexpected matches: %#v", matched)
}
}
func TestMatchProxies_InvalidNamePattern(t *testing.T) {
_, err := matchProxies(nil, MatchRule{NamePattern: "("})
if err == nil {
t.Fatal("expected error for invalid name-pattern regexp, got nil")
}
}