package engine import ( "testing" "github.com/stretchr/testify/assert" ) func TestStatusTransitions_Valid(t *testing.T) { cases := []struct { from Status to Status ok bool }{ {StatusIdle, StatusStarting, true}, {StatusStarting, StatusActive, true}, {StatusStarting, StatusFailed, true}, {StatusActive, StatusIdle, true}, // user clicked Stop {StatusActive, StatusFailed, true}, // crash {StatusFailed, StatusStarting, true}, // user clicked Retry // Invalid transitions {StatusIdle, StatusActive, false}, {StatusIdle, StatusFailed, false}, {StatusActive, StatusStarting, false}, } for _, c := range cases { got := isValidTransition(c.from, c.to) assert.Equalf(t, c.ok, got, "%s → %s", c.from, c.to) } }