package hostclaim import "testing" // m-2: transition authority and observation catch-up are different questions. func TestPlan9Fix2ObservationCatchesUpAcrossAdjacentTableEdgesOnly(t *testing.T) { for _, c := range []struct { kind, from, to string observes bool }{ {KindLanding, PhaseLandingProbing, PhaseLandingProbing, true}, {KindLanding, PhaseLandingProbing, PhaseLandingProbed, true}, {KindLanding, PhaseLandingProbing, PhaseLandingCommitted, true}, {KindLanding, PhaseLandingProbed, PhaseLandingCommitted, true}, {KindLanding, PhaseLandingCommitted, PhaseLandingProbed, false}, {KindLanding, PhaseLandingProbed, PhaseLandingProbing, false}, {KindLanding, PhaseLandingProbing, "restored", false}, {KindLanding, "restored", PhaseLandingCommitted, false}, {KindRestoring, "releasing", "released", false}, {"", PhaseLandingProbing, PhaseLandingProbed, false}, } { if got := SessionObserves(c.kind, c.from, c.to); got != c.observes { t.Errorf("SessionObserves(%q,%q,%q) = %v, want %v", c.kind, c.from, c.to, got, c.observes) } } // Write authority for an actual transition still never skips a step. if SessionContinues(KindLanding, PhaseLandingProbing, PhaseLandingCommitted) { t.Fatal("SessionContinues allows a skipped transition") } }