Claudio Ortolina
66fb688b2a
Fix toasts not appearing for notes and barcode scan
2026-05-21 07:49:36 +01:00
Claudio Ortolina
2983313426
ML-192: add high value missing tests
...
- Record editing + cover search
- Barcode scan errors + cart editing
- Notes
- Scrobble rules application over set of tracks
- Image conversion
2026-05-21 06:38:02 +01:00
Claudio Ortolina
23960b5b23
ML-169.10.1: Add delete coverage
...
Cover current delete behavior across LiveView index and show paths, and strengthen existing delete tests with persistence assertions.\n\nValidation: mise run dev:precommit
2026-05-20 18:04:29 +01:00
Claudio Ortolina
e204e555bd
ML-188: guard PubSub record updates during edit mode
...
Add live_action guard to handle_info({:update, record}) in both
CollectionLive.Show and WishlistLive.Show. When the user is editing,
background worker updates are skipped and a warning toast is shown
instead of overwriting the socket. Normal show-mode updates and
mismatched-ID no-ops are unchanged.
6 tests added covering all three code paths.
2026-05-19 11:38:42 +01:00
Claudio Ortolina
4ae55ea0ad
Use negative assertion to debug CI failures
2026-05-17 21:34:00 +01:00
Claudio Ortolina
122c07836b
ML-182.5: migrate blocked LiveView tests
...
Replace direct LiveView PID and isolated component test patterns with PhoenixTest-backed page flows while keeping narrow unwrap bridges where PhoenixTest cannot express the component interaction.
Precommit: mise run dev:precommit
2026-05-17 21:24:29 +01:00
Claudio Ortolina
90ac4fa23a
Extract LiveView async test helper
2026-05-16 22:27:46 +01:00
Claudio Ortolina
a59dd22a18
ML-168: broadcast index_changed event after background import
...
Import workers now broadcast :records_index_changed on
"records:index_changed" after successful import via
Records.broadcast_index_changed/0.
CollectionLive.Index and WishlistLive.Index subscribe to the
topic in mount/3 and reload their record streams on receipt,
with a live_action guard to skip reloads when the grid is
hidden behind a modal (:import, :barcode_scan).
IndexActions.handle_index_changed/1 refreshes total_entries
before reloading to keep the pagination bar accurate.
2026-05-14 17:15:06 +01:00
Claudio Ortolina
f7f38d580e
Enable unaliased modules ex_slop check
2026-04-22 20:37:09 +01:00
Claudio Ortolina
0776700170
ML-142: Improve scrobble UI in the release component
...
- Sticky bar for easier track-based scrobbling
- Support setting custom finish time
2026-04-22 17:19:35 +01:00
Claudio Ortolina
9851a5c6bf
Use cart with barcode scanner
2026-04-20 15:46:40 +01:00
Claudio Ortolina
eaece07193
Count formats in results
2026-04-20 15:15:29 +01:00
Claudio Ortolina
c4ebe636ff
Fix ML-143 review: security, worker, and test improvements
...
Closes ML-143 review findings:
- cast_id/1 uses Integer.parse instead of String.to_integer
- add_to_cart validates against server-side release_groups
- JS.push payload trimmed to {id, format} only
- Oban.insert_all result checked for partial failures
- handle_async success resets @importing? to false
- ImportFromMusicbrainzReleaseGroup gets unique constraint
- Record.parse_datetime/1 made public with safe match
- Workers delegate to Record.parse_datetime/1
- Test coverage: change_format, clear_cart, wishlist single import
2026-04-20 15:15:29 +01:00
Claudio Ortolina
3f5ce060b1
Implement ML-143: Cart-style multi record import
...
Closes ML-143.
2026-04-20 15:15:29 +01:00
Claudio Ortolina
726b7d5ef8
Add tests for chat auto-open via query param
2026-04-13 13:16:28 +01:00
Claudio Ortolina
a509248625
Wire up Chat component in CollectionLive.Index
2026-04-13 10:12:49 +01:00
Claudio Ortolina
8f8eb0a656
Enable quick actions from universal search
2026-03-29 23:07:53 +01:00
Claudio Ortolina
1301f888f3
Remove "it" from the test descriptions
2026-03-27 08:38:41 +00:00
Claudio Ortolina
dec564b840
Move test in correct describe block
2026-03-26 11:55:27 +00:00
Claudio Ortolina
1bc01a2346
Fix flaky collection live index test
2026-03-09 13:38:24 +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
bfbb74d601
BETA: new layout for record details page
2026-02-26 08:49:40 +00:00
Claudio Ortolina
5692be4e63
Update dependencies
...
credo 1.7.13 => 1.7.14 - requires updates to pass updated checks
2025-12-01 16:09:51 +00:00
Claudio Ortolina
ed99f6bda8
Implement dense grid as variation of normal grid
2025-11-03 09:49:51 +00:00
Claudio Ortolina
12272608bc
Default collection and wishlist to a grid layout
2025-11-03 09:49:50 +00:00
Claudio Ortolina
90b3fa1fdc
Refactor Records.Cover to Assets.Image
2025-09-20 07:42:38 +03:00
Claudio Ortolina
e158345674
Change /covers to /assets
2025-09-18 21:26:16 +03:00
Claudio Ortolina
0996b78c7b
Use Transforms to serve covers at the right size
2025-09-17 10:26:38 +03:00
Claudio Ortolina
0cb46e4ec7
Capture warning location
2025-09-04 08:31:44 +03:00
Claudio Ortolina
dc77d337c0
Migrate from embedded covers to assets
2025-09-01 16:20:41 +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
1d78f6c4dc
Make test faster by deterministically reducing size
2025-06-14 20:04:09 +03:00
Claudio Ortolina
d7060697b2
Format dates in release summary and label
2025-06-01 16:58:04 +01:00
Claudio Ortolina
676c2e4290
Enable quokka with :module_directives rule
2025-05-28 19:41:57 +01:00
Claudio Ortolina
1298d711a3
Remove unnecessary selected_release_label/1
2025-05-25 08:56:24 +01:00
Claudio Ortolina
b44693b022
Move Artist and ArtistInfo under Artists context
2025-05-23 20:11:57 +01:00
Claudio Ortolina
f21a289008
Load release when opening collection show page
...
Includes small fixes to make both logic and tests more robust
2025-05-11 11:04:28 +01:00
Claudio Ortolina
38f49e9a90
Skip failing test
...
To fix, need to move the test to a separate component test
2025-05-09 21:04:28 +01:00
Claudio Ortolina
327fd231cf
Test that side panel renders tracks
2025-05-08 09:45:13 +01:00
Claudio Ortolina
f4fe638a95
Display tracks for records with a selected release
2025-05-04 21:10:40 +01:00
Claudio Ortolina
bc213caa45
Store selected release id when scanning a record
2025-05-01 19:36:47 +01:00
Claudio Ortolina
3e7341d4ca
Support choosing a selected release
2025-05-01 17:42:40 +01:00
Claudio Ortolina
e083950138
Rename record.release to record.release_date
...
Includes changes to dependent tables (i.e. the record search index) and
related functions.
2025-05-01 14:04:57 +01:00
Claudio Ortolina
995773f673
Default covers to 2000px
2025-04-14 10:58:21 +01:00
Claudio Ortolina
8b846298a7
Make collection ordered by purchase by default
2025-04-04 13:58:25 +01:00
Claudio Ortolina
91a1141441
Rename Import -> Add, and avoid surfacing MusicBrainz where unneeded
2025-03-07 15:10:22 +00:00
Claudio Ortolina
fee2799d50
Show barcodes that are not found inside the results UI
...
Includes a refactor to extract/cleanup barcode scan logic from the
component to a separate context with a better API.
2025-03-07 11:22:23 +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