package flag import "testing" func TestEvaluate_GlobalEnabled(t *testing.T) { f := Flag{Key: "k", Enabled: true} if !evaluate(f, "irgendein-tenant") { t.Fatal("global aktiviertes flag sollte fuer jeden tenant true liefern") } } // Akzeptanzkriterium 1 + Pruefung 2: Zielgruppen-Strategie. func TestEvaluate_TargetTenantStrategy(t *testing.T) { f := Flag{Key: "k", Enabled: false, TargetTenantSlugs: []string{"acme"}} if !evaluate(f, "acme") { t.Fatal("erwartet true fuer tenant in zielgruppe") } if evaluate(f, "globex") { t.Fatal("erwartet false fuer tenant ausserhalb der zielgruppe") } } func TestEvaluate_RolloutPercentageBoundaries(t *testing.T) { full := Flag{Key: "k", RolloutPercentage: 100} if !evaluate(full, "beliebiger-tenant-1") || !evaluate(full, "beliebiger-tenant-2") { t.Fatal("100% rollout sollte immer true liefern") } none := Flag{Key: "k", RolloutPercentage: 0} if evaluate(none, "beliebiger-tenant") { t.Fatal("0% rollout ohne enabled/zielgruppe sollte false liefern") } } func TestEvaluate_RolloutIsDeterministicPerTenant(t *testing.T) { f := Flag{Key: "k", RolloutPercentage: 50} first := evaluate(f, "stabiler-tenant") for i := 0; i < 5; i++ { if evaluate(f, "stabiler-tenant") != first { t.Fatal("rollout-auswertung sollte fuer denselben tenant/key stabil sein") } } }