Commit Graph

232 Commits

Author SHA1 Message Date
Claudio Ortolina 88906e10ad Add ex_slop, configure it, run it and fix issues 2026-04-12 22:07:27 +01:00
Claudio Ortolina 49d26e1fd0 Switch the release component to a form to enable recovery 2026-04-08 18:22:44 +01:00
Claudio Ortolina 851bbd54af Setup swoosh sandbox 2026-04-02 15:26:15 +01:00
Claudio Ortolina e0a277e215 Always open chat links in new tabs 2026-03-31 19:17:58 +01:00
Claudio Ortolina 92a36b915a Harden public asset endpoint against invalid payloads
Closes #143
2026-03-30 14:56:40 +01:00
Claudio Ortolina 45fd414f1b Use friendly error messages in Last.fm callback
Closes #145
2026-03-30 14:42:20 +01:00
Claudio Ortolina 8f8eb0a656 Enable quick actions from universal search 2026-03-29 23:07:53 +01:00
Claudio Ortolina 2e22ace7cf Move RecordsOnThisDayEmail to MusicLibraryWeb namespace 2026-03-28 10:25:03 +00:00
Claudio Ortolina 61dd3f45c7 Move refresh config and callers to ListeningStats 2026-03-27 23:14:09 +00:00
Claudio Ortolina 96836ae715 Improve tests: better assertions, meaningful tests
Track resulting principles in project conventions
2026-03-27 15:46:31 +00:00
Claudio Ortolina 1301f888f3 Remove "it" from the test descriptions 2026-03-27 08:38:41 +00:00
Claudio Ortolina bf379b9887 Remove unnecessary test 2026-03-26 23:03:42 +00:00
Claudio Ortolina f5d3d90043 Use correct fixture for test 2026-03-26 11:55:44 +00:00
Claudio Ortolina dec564b840 Move test in correct describe block 2026-03-26 11:55:27 +00:00
Claudio Ortolina 170a52b3e4 Fix test descriptions for consistency 2026-03-26 11:54:47 +00:00
Claudio Ortolina 69983d9dac Fix incorrect tests 2026-03-26 11:53:49 +00:00
Claudio Ortolina c9283d7f28 Compute artist play count from db 2026-03-24 15:07:50 +00:00
Claudio Ortolina 0edd5f317c Extract biography helpers from ArtistLive.Show
Closes #124
2026-03-22 08:07:06 +00:00
Claudio Ortolina 56d9d6bfd7 Use MDEx streaming to render chat content 2026-03-20 23:42:10 +00:00
Claudio Ortolina f1e3b22f91 Make online store templates searchable 2026-03-16 11:56:39 +00:00
Claudio Ortolina 654b172ddb Fix UI inconsistencies across templates
- Replace .separator with .dropdown_separator in 4 dropdown menus
- Change gray-* to zinc-* color classes in online store templates
- Wrap hardcoded page titles in gettext() in online store templates
- Add consistent dark:text-zinc-200 to maintenance h3 subsections
- Add text-zinc-900 dark:text-zinc-200 to scrobble section headers
- Fix heading hierarchy (h1/h2 → h2/h3) in record set items
- Align artist form modal header to text-lg font-semibold
- Use size="xs" prop instead of class override on format badge
- Add external link icon to wishlist online store buttons
2026-03-16 11:37:29 +00:00
Claudio Ortolina 5752d1fe27 Add tests for scrobble rules search/sort 2026-03-16 08:06:48 +00:00
Claudio Ortolina 43b054b34a Search scrobble rules, improved layout 2026-03-16 07:58:21 +00:00
Claudio Ortolina abb6a5f8f4 Update dependencies
fluxon 2.3.4 => 2.3.5

Includes a test fix due to some internal changes in Fluxon.
2026-03-15 10:18:07 +00:00
Claudio Ortolina 4d1ac9652c Link the scrobbled count in stats 2026-03-14 09:59:09 +00:00
Claudio Ortolina d057f29ba1 Split ScrobbleActivity into focused modules
Move track CRUD/listing to ListeningStats and diagnostics
to Maintenance, leaving ScrobbleActivity for scrobbling only.

Closes #111
2026-03-12 16:51:33 +00:00
Claudio Ortolina d516c6a815 Improve tests for scrobble show page 2026-03-10 21:04:19 +00:00
Claudio Ortolina fa535393e0 Fix toggling/scrobbling event handlers in scrobble anything show view 2026-03-10 20:04:39 +00:00
Claudio Ortolina f86800368d Streamline test suite
record_set_live/index_test.exs — Removed 3 describe blocks ("Delete set", "Remove record from set", "Drag-and-drop reorder") that were duplicated in ShowTest. Removed 3 tests.

record_set_live/show_test.exs — Replaced context-level assertion in "Remove record" with UI assertion (refute has_element?). Removed redundant assert_raise from "Delete set" (kept assert_redirect).

scrobble_rules_live/index_test.exs — Removed "Form validation" describe block (2 tests duplicated in "saves new scrobble_rule" and changeset tests). Kept the "updates form labels" test, moved into "Index"
  block. Replaced ScrobbleRules.get_scrobble_rule! assertions in toggle test with UI assertions checking button text.
online_store_template_live/index_test.exs — Replaced context-level assertions with UI assertions in Create, Edit, Delete, and Toggle tests. Removed OnlineStoreTemplates alias.

scrobbled_tracks_live/index_test.exs — Collapsed 3 search tests into 1. Removed 2 tests.
2026-03-09 18:55:07 +00:00
Claudio Ortolina 1bc01a2346 Fix flaky collection live index test 2026-03-09 13:38:24 +00:00
Claudio Ortolina 4584b7bcb8 Remove drop down from record set items
Have just a bin icon, and rely on drag and drop.

This solves a massive performance issue with the page, which is
traceable to the Fluxon dropdowns, particularly the Class.merge logic
used to merge Tailwind classes
2026-03-08 13:21:33 +00:00
Claudio Ortolina 52815bde2f When doing markdown to HTML, sanitize HTML
Closes #101
Closes #102
2026-03-07 19:05:37 +00:00
Claudio Ortolina f75485e5db Small optimizations to speed up the test suite
Shaves off 1 second on M1
2026-03-07 09:13:02 +00:00
Claudio Ortolina c3cb510892 Convert phoenix_test assertions to simplified syntax 2026-03-06 06:41:06 +00:00
Claudio Ortolina 08f7565d44 Replace inspect(reason) with friendly error messages
Closes #81
2026-03-05 20:25:13 +00:00
Claudio Ortolina 4b1f6bb245 Fix inconsistent toast arity in form components
Closes #94
2026-03-05 17:06:23 +00:00
Claudio Ortolina 42a51b9539 Add test coverage for ScrobbleLive Index and Show 2026-03-05 14:52:58 +00:00
Claudio Ortolina de14ec3e25 Consolidate completely stateless tests into doctests
Removing dupes
2026-03-03 11:30:52 +00:00
Claudio Ortolina a0df11d26f Use new style for MB link and copy button in artist page 2026-03-01 20:19:46 +00:00
Claudio Ortolina bfbb74d601 BETA: new layout for record details page 2026-02-26 08:49:40 +00:00
Claudio Ortolina 23d6e736e7 Uniform ux/ui of adding a new record to a set 2026-02-15 14:24:02 +00:00
Claudio Ortolina fe748782c7 Reorder record sets via drag and drop 2026-02-10 11:16:41 +00:00
Claudio Ortolina f82e764c94 Add tests for Last.fm controller 2026-02-09 11:12:38 +00:00
Claudio Ortolina fc307a0aba Add tests for health controller 2026-02-09 11:12:02 +00:00
Claudio Ortolina 356efb1c65 Add tests for archive controller 2026-02-09 11:11:41 +00:00
Claudio Ortolina 68956978e1 Add show route for record sets 2026-02-07 16:09:26 +00:00
Claudio Ortolina 29dc57abdb Simplify record sets page structure (no title, better margins) 2026-02-07 13:47:42 +00:00
Claudio Ortolina 84159a1c0d Improve test coverage
Files Created (8 files, 54 new tests)

  Fixtures

  1. test/support/fixtures/music_library/record_sets.ex — record_set/1
and record_set_with_records/2 helpers
  2. test/support/fixtures/music_library/online_store_templates.ex —
online_store_template/1 helper

  Context Tests

  3. test/music_library/record_sets_test.exs — 20 tests covering search,
count, CRUD, add/remove/move records
  4. test/music_library/online_store_templates_test.exs — 8 tests
covering list, CRUD, URL generation, validation
  5. test/music_library/search_test.exs — 5 tests covering universal
search and search counts
  6. test/music_library/notes_test.exs — 4 tests covering get, create,
update

  LiveView Tests

  7. test/music_library_web/live/record_set_live/index_test.exs — 11
tests covering listing, empty state, search, ordering,
create/edit/delete sets, remove records, reorder records
  8.
test/music_library_web/live/online_store_template_live/index_test.exs —
6 tests covering listing, create/edit/delete, toggle enabled

  Results

  - 297 tests, 0 failures (up from 243 — 54 new tests added)
  - All existing tests continue to pass

There's a remaining gettext warning that needs to be investigated
2026-02-07 10:39:22 +00:00
Claudio Ortolina 9666b24b4a Standardize button labels 2025-12-14 09:25:41 +03:00
Claudio Ortolina 0df348ae19 Add pagination for scrobble rules 2025-12-14 09:21:13 +03:00