package store import ( "testing" "github.com/cosmic-clash/cosmic-clash/server/domain" ) func TestLoadTierPolicyRejectsMissingDatabase(t *testing.T) { if _, err := LoadTierPolicy(nil, nil); err == nil { t.Fatal("a nil database was accepted") } } func TestTierBandSelectIsOrderedByThreshold(t *testing.T) { // domain.NewTierPolicy requires strictly ascending thresholds, so the // ORDER BY is part of the contract rather than presentation. if !contains(TierBandSelectSQL, "ORDER BY min_rating") { t.Fatalf("tier band query is not ordered: %q", TierBandSelectSQL) } } // PROVISIONAL is derived from a player's ranked game count, not their rating. // A durable band claiming it would be unreachable at best, and would shadow a // real tier at worst. func TestProvisionalIsNotAValidDurableBand(t *testing.T) { if _, ok := validTierBandTiers[domain.RankTierProvisional]; ok { t.Fatal("PROVISIONAL is accepted as a durable tier band") } for _, tier := range []domain.RankTier{ domain.RankTierBronze, domain.RankTierSilver, domain.RankTierGold, domain.RankTierPlatinum, domain.RankTierDiamond, } { if _, ok := validTierBandTiers[tier]; !ok { t.Fatalf("%q is not accepted as a durable tier band", tier) } } }