1Business context
StreamBox is a video-streaming service with profiles. It must respect profile restrictions (Kids), remember playback progress, and let subscribers manage My List and plan changes.
Pick a profile (Kids hides mature titles), browse scrolling rows, save to My List, and drive a custom player — play/pause, seek, ±10s, speed, volume, subtitles, skip intro — with progress that feeds “Continue watching”.
2Users & roles
- 👤 Subscriber (viewer@streambox.tv / Stream@123) with profiles Amir, Sara and Kids — browses, watches, manages lists and plans
3Modules & screens
| Screen | Route | What it does |
|---|---|---|
| Sign-in gate | /apps/stream | Email viewer@streambox.tv / Stream@123, before the profile picker; any page opened while signed out shows the login and returns there afterwards |
| Home | /apps/stream | Profile picker, content rows, title modal, continue watching |
| Player | /apps/stream/watch/[id] | Play/pause, seek, volume, speed, skip intro, progress saving |
| My List | /apps/stream/my-list | Saved titles with reorder |
| Plans | /apps/stream/plans | Basic / Standard / Premium with upgrade or downgrade confirmation |
4Main end-to-end journey
Watch and resume
- Sign in as viewer@streambox.tv / Stream@123
- Pick profile Amir
- Open Orbit Nine from Trending and add to My List
- Play at 2× and skip the intro
- Pause, skip 10 s
- Go home
Expected: Continue watching shows Orbit Nine with progress; My List starts with it
5Business rules & validations
- Account loginBeginner
Email + password (sb-login-id, sb-password, sb-login) before the profile picker; sb-logout returns to the login.
- Profile gateBeginner
No profile → profile-picker; switch-profile returns to it. Kids hides A/UA titles and restricts /watch.
- Unique row locatorsIntermediate
A title can appear in several rows, so cards are open-<row>-<id> (e.g. open-trending-t3).
- Player stateIntermediate
player-toggle flips aria-label Play/Pause and data-playing on player; player-time advances.
- Transient buttonAdvanced
skip-intro only exists between 0:03 and 0:30 — wait for it, click, and assert the time jumped to 0:30.
- Range slidersIntermediate
Drive player-seek and player-volume (fill / keyboard / JS); mute toggles the volume to 0.
- Continue watchingAdvanced
Watch a bit, go home: row-continue shows the title with a progress bar.
- Reorder a listIntermediate
In My List, move-up/down-<id> or drag mylist-item to reorder; order persists.
- Plan change modalBeginner
choose-<plan> shows an upgrade or downgrade note; confirm-plan updates current-plan.
6Test data & credentials
- URL
- /apps/stream
- Login
- viewer@streambox.tv / Stream@123
- Profiles
- Amir · Sara · Kids
- Skip intro
- shown 0:03–0:30
- Plans
- Basic · Standard · Premium
7Glossary
- Kids profile
- Hides A/UA-rated titles and blocks them on the player
- Skip intro
- Button shown only between 0:03 and 0:30
- Continue watching
- Row showing partly watched titles with progress
8Watch-outs for automation
- ⚠️Sign in first (or reuse a saved session) — every page is behind the login
- ⚠️Card ids include the row, e.g. open-trending-t3 — the same title appears in several rows
- ⚠️Skip intro is transient — wait for it before clicking
- ⚠️Sliders need fill, keyboard or JS
9Suggested test strategy
1 · Smoke
3
P1 positive and end-to-end cases — run on every build.
2 · Regression
16
All cases, incl. 3 negative and 3 edge — run before release.
3 · End-to-end
3
Full user journeys — run nightly.
Start with these smoke cases
- STREAMBOX-01 — Sign in then pick a profile
- STREAMBOX-03 — Watch a title
- STREAMBOX-E2E-01 — Watch and resume