navidrome/tests
Deluan 80e9921d45 fix(subsonic): return error 70 when scrobble contains invalid IDs
Implements OpenSubsonic API clarification from PR #202: the scrobble
endpoint now validates all media file IDs before processing and returns
error code 70 (data not found) if any ID is invalid. This ensures the
entire operation fails atomically - no scrobbles are submitted when any
ID in the batch is invalid, matching the OpenSubsonic specification.

Changes include updating MediaFileRepository.Exists() to accept variadic
IDs for efficient batch validation via a single COUNT query.

See: https://github.com/opensubsonic/open-subsonic-api/pull/202
Signed-off-by: Deluan <deluan@navidrome.org>
2026-02-04 18:08:02 -05:00
..
fixtures feat(agents): support multiple languages for Last.fm and Deezer metadata (#4952) 2026-01-29 13:05:51 -05:00
fake_http_client.go Retry calls to Last.FM without MBIDs when if returns artist invalid (#1138) 2021-05-27 20:53:24 -04:00
init_tests.go Allow configuring cache folder (#2357) 2023-06-02 17:14:11 -04:00
mock_album_repo.go fix(server): optimize search3 performance with multi-library (#4382) 2025-07-25 18:53:40 -04:00
mock_artist_repo.go fix(server): optimize search3 performance with multi-library (#4382) 2025-07-25 18:53:40 -04:00
mock_data_store.go feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
mock_ffmpeg.go refactor(server): remove ffmpeg unused code 2024-10-20 19:35:16 -04:00
mock_genre_repo.go refactor: external_metadata -> external.Provider (#3903) 2025-04-08 21:11:09 -04:00
mock_library_repo.go feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
mock_library_service.go feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
mock_mediafile_repo.go fix(subsonic): return error 70 when scrobble contains invalid IDs 2026-02-04 18:08:02 -05:00
mock_playlist_repo.go Add getShares and createShare Subsonic endpoints 2023-01-24 18:36:46 -05:00
mock_playqueue_repo.go feat(server): add update and clear play queue endpoints to native API (#4215) 2025-06-11 12:02:31 -04:00
mock_plugin_manager.go feat(plugins): add JSONForms-based plugin configuration UI (#4911) 2026-01-19 20:51:00 -05:00
mock_plugin_repo.go feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
mock_property_repo.go refactor: external_metadata -> external.Provider (#3903) 2025-04-08 21:11:09 -04:00
mock_radio_repository.go refactor: external_metadata -> external.Provider (#3903) 2025-04-08 21:11:09 -04:00
mock_scanner.go feat(scanner): implement selective folder scanning and file system watcher improvements (#4674) 2025-11-14 22:15:43 -05:00
mock_scrobble_buffer_repo.go feat(ui): add EnableNowPlaying configuration (default true) (#4219) 2025-06-13 00:06:08 -04:00
mock_scrobble_repo.go feat(server): track scrobble/linstens history (#4770) 2025-12-06 11:07:18 -05:00
mock_share_repo.go Fix tests and lint errors, plus a bit of refactor 2023-01-24 18:36:46 -05:00
mock_transcoding_repo.go Add global Downsampling feature (#1575) 2022-12-06 19:41:16 -05:00
mock_user_props_repo.go refactor: external_metadata -> external.Provider (#3903) 2025-04-08 21:11:09 -04:00
mock_user_repo.go feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
mock_user_service.go feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
navidrome-test.toml feat(plugins): experimental support for plugins (#3998) 2025-06-22 20:45:38 -04:00
test_helpers.go fix: album statistics not updating after deleting missing files (#4668) 2025-11-08 20:11:00 -05:00