Repository navigation
test(mobile): guard playback when downloads finish - #435
Merged
Merged
Conversation
Deploying podnotes with
|
| Latest commit: |
30cd481
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://20b95bde.podnotes.pages.dev |
| Branch Preview URL: | https://fix-android-download-swap.podnotes.pages.dev |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #389. The production fix is already in #401: a download no longer replaces the source of the playing episode. This PR adds regression coverage only.
mobile:downloadnow requires active playback and checks the same media element, unchanged source, no media errors or backward jumps, and at least two seconds of playback after download registration. The existing desktop offline journey also checks stream continuity and playback from the downloaded file after restart.Verification
edb9447. Downloaded Lex Fridman #501, DHH, 249,955,445 bytes, while playing from 60 seconds. Released exited 2: empty source, media error 4, position reset from 232.59 seconds to zero. Master exited 0: source unchanged, no errors or resets, playback advanced from 198.28 to 200.28 seconds after registration. Both app and renderer survived.http://podnotes.test:33453/feed.xml. Released also reset to zero with error 4. Master kept its stream and advanced. Android and desktop both played the downloaded file on the next load while offline.npm run lint,npm run format:check,npm run typecheck,npm run build,npm run test(1,740 tests),npm run test:tooling(10 tests),npm run docs:build(18 pages),npm run size, andnpm run test:e2e(77 tests). After review changes, static checks andnpm run test:e2e -- -t J-EDGE-03passed again (2 tests), as did the final Android comparison. Node 22.23.2 throughout.State dumps, log excerpts, exact reproduction steps, checks and review decisions. Released before download / master before download. Android offline playback. Desktop after download: released / master.
The Android emulator and isolated desktop instance are stopped. iOS was not tested.
Release impact
None. No production or schema changes. The bundle is byte-identical to master: 285,622 raw bytes and 90,884 gzip bytes, both deltas zero.
Docs at release
Update
docs/src/content/docs/local_files.mdanddocs/src/content/docs/mobile.mdto state that completing the playing episode's download preserves its stream and playback position; the next load uses the downloaded file. Published documentation remains unchanged in this PR.Note
Test that downloads don't interrupt actively playing episodes
Macroscope summarized 30cd481.