38 lines
1.5 KiB
Markdown
38 lines
1.5 KiB
Markdown
---
|
|
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"
|
|
updated_date: "2026-05-23 06:16"
|
|
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 -->
|
|
|
|
## Decision: Keep send_update/3 (Accepted Blocker)
|
|
|
|
After reviewing the implementation plan against the project's testing conventions, the decision is to **keep `send_update/3`** rather than rewrite the three streaming state-transition tests as SSE pipeline integration tests.
|
|
|
|
### Rationale
|
|
|
|
The testing skill at `.agents/skills/testing/SKILL.md` already documents `send_update/3` in the "Known Blockers for Full PhoenixTest Migration" table with the workaround: **"Keep `send_update` for these tests."** This is the project's documented convention — `send_update/3` is an accepted escape hatch for unit-level LiveComponent streaming-state testing.
|
|
|
|
The proposed SSE integration approach would work technically but carries disproportionate cost (4-6h estimated) for three tests, introduces async timing fragility, requires new DOM selectors in the template, and masks the unit-level coverage of `update/2` clause logic behind a full-pipeline integration test.
|
|
|
|
### Action
|
|
|
|
Import `send_update/3` explicitly in `chat_test.exs`, keep the three streaming state-transition tests as-is, and close this task. No other changes needed.
|
|
|
|
<!-- SECTION:DESCRIPTION:END -->
|