mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2025-12-23 22:29:59 -05:00
69 lines
1.5 KiB
Go
69 lines
1.5 KiB
Go
package version_test
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/opencloud-eu/opencloud/pkg/version"
|
|
)
|
|
|
|
func TestChannel(t *testing.T) {
|
|
tests := map[string]struct {
|
|
got string
|
|
valid bool
|
|
}{
|
|
"no channel, defaults to dev": {
|
|
got: "",
|
|
valid: false,
|
|
},
|
|
"dev channel": {
|
|
got: version.EditionDev,
|
|
valid: true,
|
|
},
|
|
"rolling channel": {
|
|
got: version.EditionRolling,
|
|
valid: true,
|
|
},
|
|
"stable channel": {
|
|
got: version.EditionStable,
|
|
valid: true,
|
|
},
|
|
"lts channel without version": {
|
|
got: version.EditionLTS,
|
|
valid: false,
|
|
},
|
|
"lts-1.0.0 channel": {
|
|
got: fmt.Sprintf("%s-1", version.EditionLTS),
|
|
valid: true,
|
|
},
|
|
"lts-one invalid version": {
|
|
got: fmt.Sprintf("%s-one", version.EditionLTS),
|
|
valid: false,
|
|
},
|
|
"known channel with version": {
|
|
got: fmt.Sprintf("%s-1", version.EditionStable),
|
|
valid: false,
|
|
},
|
|
"unknown channel": {
|
|
got: "foo",
|
|
valid: false,
|
|
},
|
|
}
|
|
|
|
for name, test := range tests {
|
|
t.Run(name, func(t *testing.T) {
|
|
version.Edition = test.got
|
|
|
|
switch err := version.InitEdition(); {
|
|
case err != nil && !test.valid && version.Edition != version.Dev: // if a given edition is unknown, the value is always dev
|
|
fallthrough
|
|
case test.valid != (err == nil):
|
|
t.Fatalf("invalid edition: %s", version.Edition)
|
|
case !test.valid && !strings.Contains(err.Error(), "'"+test.got+"'"):
|
|
t.Fatalf("no mention of invalid edition '%s' in error: %s", test.got, err.Error())
|
|
}
|
|
})
|
|
}
|
|
}
|