package skdg import "testing" func TestShortRecommendDefaultsPreserveLegacyDeployment(t *testing.T) { var nilConfig *GlobalConfig if !nilConfig.ShortRecommendEnabled() { t.Fatal("nil config should default to enabled") } if got := nilConfig.ShortRecommendCron(); got != defaultShortRecommendCron { t.Fatalf("cron = %q, want %q", got, defaultShortRecommendCron) } if got := nilConfig.ShortRecommendKeyTTL(); got != 72 { t.Fatalf("TTL hours = %d, want 72", got) } } func TestShortRecommendExplicitConfig(t *testing.T) { disabled := false cfg := &GlobalConfig{} cfg.ShortRecommend.Enabled = &disabled cfg.ShortRecommend.Cron = "0 0 5 * * ?" cfg.ShortRecommend.KeyTTLHours = 96 initializationLimit := int64(10_000) cfg.ShortRecommend.MaxInitializationWrites = &initializationLimit if cfg.ShortRecommendEnabled() { t.Fatal("configured disabled should be honored") } if got := cfg.ShortRecommendCron(); got != cfg.ShortRecommend.Cron { t.Fatalf("cron = %q", got) } if got := cfg.ShortRecommendKeyTTL(); got != 96 { t.Fatalf("TTL hours = %d", got) } if got := cfg.ShortRecommendInitializationLimit(); got != 10_000 { t.Fatalf("initialization limit = %d", got) } } func TestShortRecommendProductionDefaultsToFailClosedInitializationGuard(t *testing.T) { cfg := &GlobalConfig{} cfg.Base.Env = "prod" if got := cfg.ShortRecommendInitializationLimit(); got != defaultProdInitializationLimit { t.Fatalf("initialization limit = %d, want %d", got, defaultProdInitializationLimit) } unlimited := int64(0) cfg.ShortRecommend.MaxInitializationWrites = &unlimited if got := cfg.ShortRecommendInitializationLimit(); got != 0 { t.Fatalf("explicit initialization limit = %d, want 0", got) } }