close the test gaps a QA pass found, and de-flake the flaky ones

Verify the Subsonic token hash and salt freshness, and fall back to per-album
songs when the empty-search probe fails with an I/O error instead of
aborting the whole sync.

Add a real-server sync test that mirrors navidrome and gonic into Room and
reads the rows back, plus SyncManager coverage for the success, coalescing
and mid-sync-failure paths.

Cover the sort mapping and delete/ping ViewModels, the download engine's
request flags, the queue helpers, download prefs and migration data
preservation.

Drop the leaked collectors in the ViewModel/queue tests, document the
screenshot tests as render smoke tests, bind a real search term in the
trigram plan test, and assert a positive in-flight invariant alongside the
concurrency timing checks.
This commit is contained in:
austinried
2026-10-04 00:30:04 +00:00
parent 5cbe4c6839
commit 684cc5a287
27 changed files with 989 additions and 25 deletions
@@ -1 +1,5 @@
sdk=35
# The real Application starts app-scoped Koin singletons (download repo/notifier) whose collectors
# are never cancelled between tests, so they query a torn-down database at teardown. Tests build
# their own graphs; AppModuleTest starts Koin explicitly.
application=android.app.Application