package logic import ( "testing" "img_infinite_canvas/internal/domain/design" ) func TestLatestLovartThreadIDKeepsCurrentNonEmptyThread(t *testing.T) { threads := []design.AgentThreadSummary{ {AgentThreadID: "thread-current", UpdateTimestamp: 100}, {AgentThreadID: "thread-latest", UpdateTimestamp: 200}, } if got := latestLovartThreadID("thread-current", threads); got != "thread-current" { t.Fatalf("expected current non-empty thread, got %q", got) } } func TestLatestLovartThreadIDFallsBackToLatestNonEmptyThread(t *testing.T) { threads := []design.AgentThreadSummary{ {AgentThreadID: "thread-older", UpdateTimestamp: 100}, {AgentThreadID: "thread-latest", UpdateTimestamp: 300}, {AgentThreadID: "thread-middle", UpdateTimestamp: 200}, } if got := latestLovartThreadID("thread-empty", threads); got != "thread-latest" { t.Fatalf("expected latest non-empty thread, got %q", got) } } func TestLatestLovartThreadIDStaysEmptyWithoutHistory(t *testing.T) { if got := latestLovartThreadID("thread-empty", nil); got != "" { t.Fatalf("expected empty thread ID, got %q", got) } }