package release import "testing" func TestReleaseSourceAndPrefix(t *testing.T) { var c RepoConfig if got := c.ReleaseSource(); got != SourceTag { t.Errorf("default ReleaseSource = %q, want %q", got, SourceTag) } if got := c.Prefix(); got != "release/" { t.Errorf("default Prefix = %q, want release/", got) } c.Brew.Source = "bookmark" c.Brew.BookmarkPrefix = "rel/" if got := c.ReleaseSource(); got != SourceBookmark { t.Errorf("ReleaseSource = %q, want %q", got, SourceBookmark) } if got := c.Prefix(); got != "rel/" { t.Errorf("Prefix = %q, want rel/", got) } } func TestBookmarkVersion(t *testing.T) { cases := []struct { short, prefix, want string ok bool }{ {"release/v1.2.3", "release/", "v1.2.3", true}, {"rel/v0.1.0", "rel/", "v0.1.0", true}, {"release/v1.2.3", "rel/", "", false}, // wrong prefix {"release/main", "release/", "", false}, // not semver {"main", "release/", "", false}, // no prefix {"release/v1.2", "release/", "", false}, // not 3-part } for _, c := range cases { got, ok := BookmarkVersion(c.short, c.prefix) if ok != c.ok || got != c.want { t.Errorf("BookmarkVersion(%q,%q) = %q,%v; want %q,%v", c.short, c.prefix, got, ok, c.want, c.ok) } } }