package session_test import ( "testing" "github.com/mathiasbq/supervisor/internal/exec" "github.com/mathiasbq/supervisor/internal/session" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestAttemptsFromEmpty(t *testing.T) { result := session.AttemptsFrom(nil) assert.Empty(t, result) } func TestAttemptsFromSetsIndex(t *testing.T) { records := []exec.AttemptRecord{ {Model: "ollama/phi4", Tier: "local", DurationMs: 1200, WarmStart: true, Verdict: "escalate", Feedback: "too vague"}, {Model: "claude-sonnet-4-6", Tier: "subagent", DurationMs: 3400, WarmStart: false, Verdict: "accept"}, } result := session.AttemptsFrom(records) require.Len(t, result, 2) assert.Equal(t, 1, result[0].Attempt) assert.Equal(t, "ollama/phi4", result[0].Model) assert.Equal(t, "local", result[0].Tier) assert.Equal(t, int64(1200), result[0].DurationMs) assert.True(t, result[0].WarmStart) assert.Equal(t, "escalate", result[0].Verdict) assert.Equal(t, "too vague", result[0].Feedback) assert.False(t, result[0].Verified) assert.Equal(t, 2, result[1].Attempt) assert.Equal(t, "claude-sonnet-4-6", result[1].Model) assert.True(t, result[1].Verified) }