52 lines
1.7 KiB
Go
52 lines
1.7 KiB
Go
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)
|
|
}
|
|
}
|