@@ -0,0 +1,51 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user