Commit Graph

48 Commits

Author SHA1 Message Date
Claudio Ortolina e64f2b12c4 ML-200: switch to a vertical chart 2026-05-31 22:02:12 +03:00
Claudio Ortolina e67b172d64 ML-200: daily scrobble count charts 2026-05-31 21:52:06 +03:00
Claudio Ortolina dd24258f33 Make stats formats and types counters sync 2026-05-27 23:45:29 +03:00
Claudio Ortolina 2d8989a8d0 ML-169.8: keep latest record query synchronous
get_latest_record is a single fast ORDER BY LIMIT 1 query --
no reason to async-load it. Removes the <.async_result> wrapper
and the now-unnecessary render_async() from its test.
2026-05-25 09:42:14 +03:00
Claudio Ortolina f347f56218 ML-169.8: reduce Stats mount sync queries to 3
Move 7 non-critical queries out of synchronous mount into assign_async
and start_async tasks with skeleton loading placeholders.

Only scalar badge counters (collection count, wishlist count, scrobble
count) remain synchronous. All async sections use <.async_result> with
loading and failed slots. Scrobble activity preserves LiveView streams
via handle_async. On-this-day date changes use AsyncResult.ok/2.
2026-05-25 09:31:43 +03:00
Claudio Ortolina ec6980eea0 ML-193: add secondary parser, search, and API coverage tests
Add ~80 focused tests across 10 files covering:

- Record set search by name, description, contained record title, artist name
- Navigation events for records, artists, record sets, links, and view-all actions
- MusicBrainz.ReleaseGroup parser (artist credits, included RGs, release IDs, types)
- MusicBrainz.ReleaseSearchResult edge cases (missing RG, unknown formats)
- LastFm.Session XML edge cases (non-subscriber, missing nodes)
- MusicLibrary.HttpError default status-kind mapping
- Discogs.API.ErrorResponse fallback message and retry-delay behavior
- ArtistRefreshWikipediaData {:cancel, :no_english_wikipedia} worker path
- StatsComponents grouped on-this-day records and anniversary labels
2026-05-21 10:45:29 +01:00
Claudio Ortolina 90ac4fa23a Extract LiveView async test helper 2026-05-16 22:27:46 +01:00
Claudio Ortolina 9f5a26198f ML-182.4: convert tests to phoenix_test 2026-05-16 16:30:42 +01:00
Claudio Ortolina 8911afad94 Add tests for Top Albums component 2026-04-23 16:41:44 +01:00
Claudio Ortolina 851cb36858 Fix dl accessibility violations on stats dashboard 2026-04-15 14:16:24 +01:00
Claudio Ortolina 61dd3f45c7 Move refresh config and callers to ListeningStats 2026-03-27 23:14:09 +00:00
Claudio Ortolina 1301f888f3 Remove "it" from the test descriptions 2026-03-27 08:38:41 +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 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 71f7a38fee Don't use streams for records on this day 2025-11-26 18:50:35 +00:00
Claudio Ortolina f4808c25c2 Update dependencies
phoenix_test 0.8.2 => 0.8.3

Includes a test fix due to PhoenixTest having changed the logic used to
match text content in a nested selector.
2025-10-27 15:21:26 +00:00
Claudio Ortolina 5aaa7708ee Add tests for On This Day functionality 2025-09-10 17:52:11 +03:00
Claudio Ortolina 08bc50d5dd Use tabs for scrobble activity toggle 2025-06-25 12:05:23 +03:00
Claudio Ortolina adc44e056e Reduce data size to speedup test
Suggested and executed by Claude
2025-06-14 21:15:26 +03:00
Claudio Ortolina 07d9db6011 Speed up tests by caching cover data
Suggested and executed by Claude
2025-06-14 21:15:06 +03:00
Claudio Ortolina 06511f89db Cache Last.fm tracks raw data when parsing api response 2025-05-30 16:52:07 +01:00
Claudio Ortolina 676c2e4290 Enable quokka with :module_directives rule 2025-05-28 19:41:57 +01:00
Claudio Ortolina 2e5c90593e Make test completely deterministic 2025-05-04 16:47:17 +01:00
Claudio Ortolina 02dafb1a9f Extend assertions for scrobble activity test
Tests that information actually changes when toggling from albums to
tracks.
2025-03-22 08:31:30 +00:00
Claudio Ortolina 22de7ed85f Default displaying albums in scrobble activity 2025-03-22 08:24:22 +00:00
Claudio Ortolina 93f6b260b2 Extract test fixture for release_group_releases 2025-03-01 07:40:00 +00:00
Claudio Ortolina a218942110 Remove mox in favour of built-in Req stubs 2025-02-28 16:41:16 +00:00
Claudio Ortolina 7df136c890 Sort aliases 2025-02-20 15:27:01 +00:00
Claudio Ortolina 94a2784020 Move function in MusicBrainz main module 2025-02-17 22:07:49 +00:00
Claudio Ortolina e218b06350 Rename APIBehaviourMock -> APIMock 2025-02-17 21:41:50 +00:00
Claudio Ortolina 513ce6363f Rename RecordsFixtures -> Fixtures.Records 2025-02-17 16:08:19 +00:00
Claudio Ortolina ea7b5b646a Namespace MusicBrainz fixtures 2025-02-17 16:03:23 +00:00
Claudio Ortolina 6ad28f1271 When importing a record, stream all its releases 2025-02-05 15:31:08 +00:00
Claudio Ortolina f29dd1f0ab Fetch 100 releases when importing a record
The release group contains only 25 releases, which breaks tracking
scrobble status. Albums like "Toto IV" or "Hounds of Love" end up
looking like they're not part of the collections because the individual
releases are not stored.

Still error prone, because this change doesn't paginate to more than 100
records, but that will be addressed in a future commit.
2025-02-05 10:12:27 +00:00
Claudio Ortolina 9e1f00c9a8 Refactor type/format labels to enable translations 2025-01-29 11:04:19 +00:00
Claudio Ortolina 53d82e661a Extract LiveTestHelpers.escape/1 2025-01-19 16:14:59 +00:00
Claudio Ortolina ed6ef2c7ef Rename record_fixture* to record* 2025-01-06 14:20:36 +00:00
Claudio Ortolina 04f5c6e5a1 Rewrite LV tests using PhoenixTest 2025-01-05 11:29:33 +00:00
Claudio Ortolina 019d2fb7f2 Reduce size of test data in stats test
Test is equally effective and a few times faster.
2024-12-15 18:57:48 +03:00
Claudio Ortolina 4ede4e3736 Add test for importing a record from scrobble activity 2024-12-14 23:41:39 +03:00
Claudio Ortolina ccefc6e697 Update to new interpolation syntax
Includes a fix to a brittle test that failed due to changes in the
number of linebreaks.
2024-12-03 00:08:32 +00:00
Claudio Ortolina eef60a66a8 Shorten "No MusicBrainz ID" -> "No MB ID"
So that it's inline with other UI elements, and fits nicely in mobile UI
2024-11-26 08:03:34 +00:00
Claudio Ortolina 93b347ad8d Add badge for tracks whose albums cannot be imported
Includes a small optimization that removes "" release IDs from the list
of IDs checked against releases in the database.
2024-11-23 22:57:25 +00:00
Claudio Ortolina 0073b15125 Fix unused variable warnings 2024-11-21 09:38:42 +00:00
Claudio Ortolina 81e332d00d Fix sr text for wishlisting from scrobble activity
Includes an integration test for the scrobble activity feed.
2024-11-21 09:20:36 +00:00
Claudio Ortolina b8f3bb9b2c Promote Collection to proper namespace 2024-11-20 15:37:04 +00:00