| Age | Commit message (Collapse) | Author |
|
- Remove const from PlayerApiClient constructor (Uri is not const-constructable)
- Replace .cast<String>() with .whereType<String>().toList() in Media.fromJson
to silently drop non-string and null tag elements instead of throwing TypeError
- Add regression test: tags [1, 'valid', null] deserialized as ['valid']
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
|
Wrap DateTime.parse in try/catch so a malformed or non-ISO-8601 date
string from the server degrades to null instead of throwing a
FormatException that crashes model deserialization across Media,
MediaSet, User, PodcastFeed, PodcastEpisode, PlaybackHint, Share, and
Note.
Add player-android/test/json_helpers_test.dart with 11 tests covering
null, empty, non-string, valid ISO, and malformed inputs (regression
guard for the original crash).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
|
Adds HomeScreen ('/') and NowPlayingScreen ('/now-playing') as the first two
named routes in PlayerAndroidApp, replacing the anonymous home widget. Widget
smoke tests verify that the app starts on the library screen, navigates to the
now-playing screen on button tap, and back-navigates correctly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Produces player-android/docs/testing-strategy.md as a decision gate
covering test scope, CI emulator options, integration_test vs Patrol,
and LLM access mode. Reviewed by sub-agent; all issues addressed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Add fromJson/toJson round-trip tests for all 9 Dart models (Media,
MediaSet, User, Tag, Note, Share, PodcastFeed, PodcastEpisode,
PlaybackHint) and 3 PlayerApiClient constructor tests. Each model
group covers a fully-populated round-trip (including int-to-double
cast verification and ISO-8601 DateTime value comparison) and an
exhaustive defaults-from-empty-map test. All 21 tests run via
'flutter test' with no emulator.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
|
|
|
|
|