ML-182: finish audit and subsequent improvements

This commit is contained in:
Claudio Ortolina
2026-05-23 07:18:25 +01:00
parent 27d3a9f285
commit 1ccd9ccc91
3 changed files with 39 additions and 36 deletions
@@ -1,10 +1,10 @@
---
id: ML-182
title: Analyze and plan elimination of LiveViewTest usage in favor of PhoenixTest
status: In Progress
status: Done
assignee: []
created_date: "2026-05-14 21:40"
updated_date: "2026-05-14 22:15"
updated_date: "2026-05-23 06:17"
labels:
- testing
- refactoring
@@ -1,34 +0,0 @@
---
id: ML-182.6
title: "Wave 6: Chat component streaming tests (send_update/3 blocker)"
status: To Do
assignee: []
created_date: "2026-05-14 22:15"
labels:
- testing
- refactoring
dependencies: []
modified_files:
- test/music_library_web/components/chat_test.exs
parent_task_id: ML-182
priority: medium
ordinal: 16000
---
## Description
<!-- SECTION:DESCRIPTION:BEGIN -->
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.
<!-- SECTION:DESCRIPTION:END -->