test: Add e2e release gate (script + manual checklist)

Releases need more than eyeballs: scripts/e2e-api-check.sh now runs
18 assertions over the live instance (login/refresh, listings, private
rows, subscriptions incl. remote channels, watching + stored position,
file token, playlist reachability) and TESTS.md defines the manual
D-pad checkout that a script cannot do.

Also switch the channels screen to the user's own channels (the
search-based local listing rejects empty queries) and resolve the real
account name at login since logins accept email addresses.
This commit is contained in:
Jeena 2026-10-10 11:02:22 +00:00
parent 764fa8b34c
commit 83dde8ba74
10 changed files with 284 additions and 8 deletions

View file

@ -65,7 +65,13 @@ setup/login screen, `Ready` renders `HomeScreen`, which switches content on a
- `GET /api/v1/videos/{shortUuid}` for playback URLs: prefer
`streamingPlaylists[].playlistUrl` (HLS) else `files[].fileUrl`.
- Private/internal media: attach `Authorization: Bearer` to playlist, segment and file
requests (configured on the Media3 `HttpDataSource.Factory`).
requests (configured on the Media3 `HttpDataSource.Factory`) AND — for instances
whose media lives in a private object-storage bucket — pass the short-lived
`POST /api/v1/videos/{shortUuid}/token` token as `?videoFileToken=` on those URLs
(response shape: `{ files: { token, expires } }`; verified live).
- tube.jeena.net itself streams non-public media from a **publicly readable R2
bucket** (`pub-….r2.dev`): no auth is enforced there today, but do not rely on
that — always request the file token for non-public videos.
## Conventions