hub v0.45.0: floor-UI separation + effective-floor source + per-box MinAgent conditional floor
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
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)
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user