Files
music_library/backlog/completed/ml-182.3 - Wave-3-Convert-live-2-→-visit-2-for-CRUD-LiveViews-6-files.md
Claudio Ortolina 0881971635 Backlog cleanup
2026-05-19 09:48:55 +01:00

44 lines
2.5 KiB
Markdown

---
id: ML-182.3
title: "Wave 3: Convert live/2 → visit/2 for CRUD LiveViews (6 files)"
status: Done
assignee: []
created_date: "2026-05-14 22:14"
updated_date: "2026-05-16 14:23"
labels:
- testing
- refactoring
dependencies: []
modified_files:
- test/music_library_web/live/maintenance_live/index_test.exs
- test/music_library_web/live/online_store_template_live/index_test.exs
- test/music_library_web/live/record_set_live/index_test.exs
- test/music_library_web/live/record_set_live/show_test.exs
- test/music_library_web/live/scrobble_rules_live/index_test.exs
- test/music_library_web/live/scrobbled_tracks_live/rule_picker_test.exs
parent_task_id: ML-182
priority: medium
ordinal: 13000
---
## Description
<!-- SECTION:DESCRIPTION:BEGIN -->
Convert `live/2``visit/2` for standard CRUD LiveViews. Files:
- **maintenance_live/index_test.exs** ✅ Done (14 tests pass)
- **online_store_template_live/index_test.exs** ✅ Done (7 tests pass)
- **record_set_live/index_test.exs** ✅ Done (7 tests pass)
- **record_set_live/show_test.exs** ✅ Done (15 tests pass)
- **scrobble_rules_live/index_test.exs** ✅ Done (10 tests pass) — removed `import Phoenix.LiveViewTest`, added explicit `only:` for `render_change/1` and `form/3`. Fluxon `<.select>` component requires `unwrap` with `form/3` + `render_change/1` for type changes — standard `PhoenixTest.select/3` doesn't work with custom selects. Dynamic label ("Match Value"/"Album Title"/"Artist Name") handled via `set_rule_type` helper. Edit validation test uses `unwrap` with `render_change` to clear existing data before checking errors. Path assertions on patch links omit query params (not captured by PhoenixTest). Buttons: "Add" (link), "Save Rule", "Apply", "Apply rule", "Delete", "Disable rule"/"Enable rule".
- **scrobbled_tracks_live/rule_picker_test.exs** ⏸️ Blocked: clicks `<span>` badges with `phx-click` (Fluxon). PhoenixTest only supports `<a>` and `<button>`.
Key learnings for remaining files:
- Fluxon custom `<.select>` components are NOT native `<select>` elements — use `unwrap` with `form/3` + `render_change/1` instead of `PhoenixTest.select/3`
- For edit-form validation tests where existing data would pass validation, `unwrap` with `render_change` clears fields first
- `assert_path` on patch links doesn't capture query params — use path-only assertions
- `<li phx-click>` needs `unwrap` with `element/2` + `render_click/1` since PhoenixTest only supports `<a>` and `<button>` natively
<!-- SECTION:DESCRIPTION:END -->