bbecf0592e
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
53 lines
1.9 KiB
Go
53 lines
1.9 KiB
Go
package store
|
|
|
|
import "testing"
|
|
|
|
// ResolveGlobalFloor makes the DB-override-vs-env-fallback precedence explicit (the 9-minute-skew
|
|
// incident's root cause: a floor could be armed via the DB with the env still showing the old
|
|
// value). Companion red-proof: swap the precedence (env before DB) → the db-wins row fails.
|
|
func TestResolveGlobalFloor(t *testing.T) {
|
|
t.Run("env only", func(t *testing.T) {
|
|
s := newTestStore(t)
|
|
s.SetDefaultMinControllerVersion("0.87.0")
|
|
r := s.ResolveGlobalFloor()
|
|
if r.Effective != "0.87.0" || r.Source != "env" || r.DBValue != "" || r.EnvValue != "0.87.0" {
|
|
t.Fatalf("env-only: %+v", r)
|
|
}
|
|
})
|
|
t.Run("db overrides env, both surfaced", func(t *testing.T) {
|
|
s := newTestStore(t)
|
|
s.SetDefaultMinControllerVersion("0.87.0")
|
|
if err := s.SetGlobalMinControllerVersion("0.113.0"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
r := s.ResolveGlobalFloor()
|
|
if r.Effective != "0.113.0" || r.Source != "db" {
|
|
t.Fatalf("db must win: %+v", r)
|
|
}
|
|
if r.DBValue != "0.113.0" || r.EnvValue != "0.87.0" {
|
|
t.Fatalf("both raw values must be surfaced: %+v", r)
|
|
}
|
|
// The precedence must match GetGlobalMinControllerVersion exactly (no forked rule).
|
|
if got := s.GetGlobalMinControllerVersion(); got != r.Effective {
|
|
t.Errorf("ResolveGlobalFloor.Effective=%q != GetGlobalMinControllerVersion=%q", r.Effective, got)
|
|
}
|
|
})
|
|
t.Run("none", func(t *testing.T) {
|
|
s := newTestStore(t)
|
|
r := s.ResolveGlobalFloor()
|
|
if r.Effective != "" || r.Source != "none" {
|
|
t.Fatalf("none: %+v", r)
|
|
}
|
|
})
|
|
t.Run("cleared db falls back to env", func(t *testing.T) {
|
|
s := newTestStore(t)
|
|
s.SetDefaultMinControllerVersion("0.87.0")
|
|
_ = s.SetGlobalMinControllerVersion("0.113.0")
|
|
_ = s.SetGlobalMinControllerVersion("") // clear the override
|
|
r := s.ResolveGlobalFloor()
|
|
if r.Effective != "0.87.0" || r.Source != "env" {
|
|
t.Fatalf("cleared → env: %+v", r)
|
|
}
|
|
})
|
|
}
|