add tests for initializing filter regexes

This commit is contained in:
rhysd 2019-12-19 11:28:39 +09:00
parent 351a78b1eb
commit a4d48e7891
1 changed files with 37 additions and 0 deletions

View File

@ -2,6 +2,7 @@ package selfupdate
import (
"os"
"strings"
"testing"
)
@ -67,3 +68,39 @@ func TestGitHubEnterpriseClientInvalidURL(t *testing.T) {
t.Fatal("Invalid URL should raise an error")
}
}
func TestCompileRegexForFiltering(t *testing.T) {
filters := []string{
"^hello$",
"^(\\d\\.)+\\d$",
}
up, err := NewUpdater(Config{
Filters: filters,
})
if err != nil {
t.Fatal(err)
}
if len(up.filters) != 2 {
t.Fatalf("Wanted 2 regexes but got %d", len(up.filters))
}
for i, r := range up.filters {
want := filters[i]
got := r.String()
if want != got {
t.Errorf("Compiled regex is %q but specified was %q", got, want)
}
}
}
func TestFilterRegexIsBroken(t *testing.T) {
_, err := NewUpdater(Config{
Filters: []string{"(foo"},
})
if err == nil {
t.Fatal("Error unexpectedly did not occur")
}
msg := err.Error()
if !strings.Contains(msg, "Could not compile regular expression \"(foo\" for filtering releases") {
t.Fatalf("Error message is unexpected: %q", msg)
}
}