api/controller/cluster_lang_version_test.go
Rama main · réplica de lectura del repositorio original.
package controller
import (
"testing"
apimodel "github.com/goodrain/rainbond/api/model"
dbmodel "github.com/goodrain/rainbond/db/model"
)
func TestLongVersionCreateDefaults(t *testing.T) {
req := &apimodel.UpdateLangVersion{
Lang: "python",
Version: "3.11",
Show: true,
}
version := buildLangVersionForCreate(req)
if version.BuildStrategy != dbmodel.LongVersionBuildStrategySlug {
t.Fatalf("expected default build strategy %q, got %q", dbmodel.LongVersionBuildStrategySlug, version.BuildStrategy)
}
if !version.IsAllowed {
t.Fatal("expected create request to default is_allowed to true")
}
}
func TestUpdateLangVersionKeepsExistingStrategyAndAllowedWhenOmitted(t *testing.T) {
existing := &dbmodel.EnterpriseLanguageVersion{
Lang: "python",
Version: "3.11",
BuildStrategy: dbmodel.LongVersionBuildStrategyCNB,
IsAllowed: false,
Show: true,
FirstChoice: false,
}
req := &apimodel.UpdateLangVersion{
Lang: "python",
Version: "3.11",
Show: false,
FirstChoice: true,
}
version := buildLangVersionForUpdate(existing, req)
if version.BuildStrategy != dbmodel.LongVersionBuildStrategyCNB {
t.Fatalf("expected update to keep existing build strategy %q, got %q", dbmodel.LongVersionBuildStrategyCNB, version.BuildStrategy)
}
if version.IsAllowed {
t.Fatal("expected update to keep existing is_allowed=false when request omits the field")
}
if version.Show {
t.Fatal("expected update to apply new show value")
}
if !version.FirstChoice {
t.Fatal("expected update to apply new first_choice value")
}
}
func TestUpdateLangVersionHonorsExplicitStrategyAndAllowed(t *testing.T) {
existing := &dbmodel.EnterpriseLanguageVersion{
Lang: "python",
Version: "3.11",
BuildStrategy: dbmodel.LongVersionBuildStrategySlug,
IsAllowed: true,
}
buildStrategy := dbmodel.LongVersionBuildStrategyCNB
isAllowed := false
req := &apimodel.UpdateLangVersion{
Lang: "python",
Version: "3.11",
Show: true,
FirstChoice: true,
BuildStrategy: &buildStrategy,
IsAllowed: &isAllowed,
}
version := buildLangVersionForUpdate(existing, req)
if version.BuildStrategy != dbmodel.LongVersionBuildStrategyCNB {
t.Fatalf("expected update to use explicit build strategy %q, got %q", dbmodel.LongVersionBuildStrategyCNB, version.BuildStrategy)
}
if version.IsAllowed {
t.Fatal("expected update to use explicit is_allowed=false")
}
}