// internal/session/history_test.go package session_test import ( "testing" "time" "github.com/mathiasbq/supervisor/internal/session" "github.com/stretchr/testify/assert" ) func TestFormatHistoryEmpty(t *testing.T) { result := session.FormatHistory(nil, "") assert.Equal(t, "", result) } func TestFormatHistoryFormatsEntries(t *testing.T) { entries := []session.Entry{ { Skill: "tdd", Phase: "red", FinalStatus: "pass", FilePath: "internal/foo/foo_test.go", Message: "wrote failing test for Foo", Timestamp: time.Now(), }, } result := session.FormatHistory(entries, "") assert.Contains(t, result, "## Session history") assert.Contains(t, result, "Phase: red") assert.Contains(t, result, "wrote failing test for Foo") assert.Contains(t, result, "internal/foo/foo_test.go") } func TestFormatHistoryExcludesCurrentPhase(t *testing.T) { entries := []session.Entry{ {Skill: "tdd", Phase: "red", Message: "red done", FinalStatus: "pass"}, {Skill: "tdd", Phase: "green", Message: "green done", FinalStatus: "pass"}, } result := session.FormatHistory(entries, "green") assert.Contains(t, result, "red done") assert.NotContains(t, result, "green done") }