feat: preserve fixed upstream versions with fork suffixes
Gitbump CI / test (push) Successful in 46s
Gitbump CI / build (push) Successful in 28s
Gitbump CI / notify-failure (push) Skipped

This commit is contained in:
meda committed 2026-09-25 10:02:33 +02:00
1 parent d6cf715a4a
commit 54a7b1e6d8
4 files changed
+201 -23

No files matched your search

+86
View File
@@ -12,3 +12,89 @@ func TestParseVersion(t *testing.T) {
t.Fatal("version does not match")
}
}
func TestParseTaggedVersion(t *testing.T) {
version, err := parseTaggedVersion("v0.10.50-meda.2", "v")
if err != nil {
t.Fatal(err)
}
if version.major != 0 || version.minor != 10 || version.patch != 50 {
t.Fatalf("base version does not match: %+v", version)
}
if !version.hasSuffix || version.suffixLabel != "meda" || version.suffixRevision != 2 {
t.Fatalf("suffix does not match: %+v", version)
}
}
func TestParseVersionRejectsSuffix(t *testing.T) {
if _, _, _, err := parseVersion("v0.10.50-meda.2", "v"); err == nil {
t.Fatal("expected suffixed version to be rejected")
}
}
func TestGetEnvActionInput(t *testing.T) {
t.Setenv("BUMP", "")
t.Setenv("SUFFIX", "")
t.Setenv("INPUT_BUMP", "suffix")
t.Setenv("INPUT_SUFFIX", "meda")
if value := getEnv("BUMP", ""); value != "suffix" {
t.Fatalf("expected suffix bump, got %s", value)
}
if value := getEnv("SUFFIX", ""); value != "meda" {
t.Fatalf("expected meda suffix, got %s", value)
}
}
func TestCalculateSuffixVersion(t *testing.T) {
tests := []struct {
name string
version taggedVersion
suffix string
expected string
expectsErr bool
}{
{
name: "first suffix",
version: taggedVersion{major: 0, minor: 10, patch: 50},
suffix: "meda",
expected: "v0.10.50-meda.1",
},
{
name: "increment suffix",
version: taggedVersion{major: 0, minor: 10, patch: 50, suffixLabel: "meda", suffixRevision: 1, hasSuffix: true},
suffix: "meda",
expected: "v0.10.50-meda.2",
},
{
name: "missing label",
version: taggedVersion{major: 0, minor: 10, patch: 50},
expectsErr: true,
},
{
name: "label mismatch",
version: taggedVersion{major: 0, minor: 10, patch: 50, suffixLabel: "meda", suffixRevision: 1, hasSuffix: true},
suffix: "other",
expectsErr: true,
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
actual, err := calculateSuffixVersion(test.version, test.suffix, "v")
if test.expectsErr {
if err == nil {
t.Fatal("expected an error")
}
return
}
if err != nil {
t.Fatal(err)
}
if actual != test.expected {
t.Fatalf("expected %s, got %s", test.expected, actual)
}
})
}
}