Files
music_library/backlog/tasks/ml-182.3 - Wave-3-Convert-live-2-→-visit-2-for-CRUD-LiveViews-6-files.md
T
2026-05-14 23:23:15 +01:00

2.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.3 Wave 3: Convert live/2 → visit/2 for CRUD LiveViews (6 files) In Progress
2026-05-14 22:14
testing
refactoring
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
ML-182 medium 13000

Description

Convert live/2visit/2 for standard CRUD LiveViews. Files:

  • maintenance_live/index_test.exs Done (14 tests pass) — all live/2visit/2, render_click/3click_button/2 with scoped selectors for duplicate button texts. External redirect test simplified. Kept unwrap(&render_async/1) for async status tests.
  • online_store_template_live/index_test.exs Done (7 tests pass) — mixed visit/2 and live/2 eliminated. Field labels: "Template Name", "URL Template". Buttons: "Save Template", "Delete", "Disable/Enable template".
  • record_set_live/index_test.exs ⏸️ Needs form label inspection — likely "Name" field, "Save" button.
  • record_set_live/show_test.exs ⏸️ Complex: add-record modal with phx-target, trigger_hook for drag-and-drop, delete/remove buttons in dropdown menus. Need to inspect templates for exact button texts.
  • scrobble_rules_live/index_test.exs ⏸️ Needs form label inspection — "Match Value", "Target MusicBrainz ID", "Type" select, "Save" button.
  • 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:

  • click_button(session, "button[phx-click='...']", "text") scoped selector works for duplicate button texts
  • Fluxon labels without separate visible text don't work with fill_in — visit with query params instead
  • trigger_hook in PhoenixTest expects JSON-encoded values
  • LiveComponent modals with phx-target need form interaction, not URL params