1.3 KiB
1.3 KiB
id, title, status, assignee, created_date, labels, dependencies, modified_files, parent_task_id, priority, ordinal
| id | title | status | assignee | created_date | labels | dependencies | modified_files | parent_task_id | priority | ordinal | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ML-182.6 | Wave 6: Chat component streaming tests (send_update/3 blocker) | To Do | 2026-05-14 22:15 |
|
|
ML-182 | medium | 16000 |
Description
The hardest file — components/chat_test.exs uses Phoenix.LiveView.send_update(view.pid, Chat, [chunk: ..., done: ..., error: ...]) to drive the Chat component's internal update/2 callback directly with streaming state tuples. This is unit-level LiveComponent testing with no PhoenixTest equivalent — PhoenixTest has no concept of LiveComponent PIDs.
3 tests affected in "update/2 streaming state transitions" describe block:
- "chunk clause appends to the streaming doc"
- "done clause finalizes the assistant message and clears loading"
- "error clause surfaces the error and a retry button"
Workaround: Rewrite as integration tests through the actual SSE streaming pipeline (stub OpenAI.API to emit controlled SSE events, use visit/2 + assert_has/3).
Effort: High (4-6h). Requires understanding the SSE streaming protocol and Chat component internals.