soulsync/tests/media_server
BoulderBadgeDad 85b6ddb997 Navidrome: pin music-folder selection by id, not name (survives renames)
Follow-up hardening to #789. The selection was keyed purely by folder name,
so renaming a music folder in Navidrome silently reverted the scan to all
libraries. Now persist the folder id (stable across renames) as the primary
key alongside the name (kept for display + back-compat), and restore by id
first with a name fallback. Self-heals on reconnect: pre-id installs and
drifted/renamed names get the id + fresh name written back, so the settings
dropdown keeps highlighting the right folder.

Tests: restore-by-id-after-rename (+ name heal), name-fallback self-heals id,
no-drift writes nothing.
2026-06-04 11:47:31 -07:00
..
__init__.py Phase 0: Add MediaServerClient contract + registry 2026-05-04 20:49:25 -07:00
test_conformance.py MS Cin-1 + Cin-2: Explicit contract inheritance + generic accessors 2026-05-05 16:59:05 -07:00
test_engine.py MS Cin/JohnBaumb honesty pass — drop dead wrappers, sync contract to reality 2026-05-05 22:36:05 -07:00
test_jellyfin_pinning.py A2: Pin JellyfinClient observable behavior 2026-05-04 20:53:55 -07:00
test_navidrome_pinning.py Navidrome: pin music-folder selection by id, not name (survives renames) 2026-06-04 11:47:31 -07:00
test_plex_all_libraries.py Add cross-section dedup to all-libraries listing layer 2026-05-06 16:01:37 -07:00
test_plex_non_english_section_name.py Plex: trigger_library_scan + is_library_scanning use auto-detected section — fixes #535 2026-05-10 10:22:32 -07:00
test_plex_pinning.py Add "All Libraries (combined)" mode to PlexClient 2026-05-06 15:39:19 -07:00
test_soulsync_pinning.py A4: Pin SoulSyncClient observable behavior 2026-05-04 21:03:37 -07:00