test(e2e): give the DASH collection round-trip its cold-load budget (#1632)

The "ClearKey reopens from recent and favorites collections" spec does
five cold `page.goto` loads of the dev-served app. On the CI runner each
one costs ~6 s, so the default 30 s test timeout expired on the last
route: every attempt in the affected runs ended as `timedOut`, and the
retry trace's final screencast frame shows `/workspace/global-favorites`
still on the startup screen at 29.7 s. The two reported "shapes" were
just where the clock ran out.

Size the test like the other multi-load specs (`test.setTimeout(90_000)`)
and assert the "All playlists" radio is checked before waiting for a row
only that scope can show, so a lost click fails on the toggle instead of
surfacing as a missing row.

Closes #1630

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Fable 5.1 authored and GitHub committed 2026-09-19 12:47:51 +02:00
1 parent 7790e68147
commit 4bab307152
1 file changed
+11 -3
+11 -3
View File
@@ -181,6 +181,10 @@ test('@web @m3u @dash ClearKey and clear DASH channels play inline', async ({
test('@web @m3u @dash ClearKey reopens from recent and favorites collections', async ({
page,
}) => {
// Five cold loads of the dev-served app (import + four collection routes)
// cost ~6 s each on the CI runner, so the default 30 s budget expired on
// the last route (#1630). Sized like the other multi-load specs.
test.setTimeout(90_000);
await serveDashFixtures(page);
await importDashPlaylist(page);
await page.getByText('1. ClearKey DASH').click();
@@ -203,10 +207,14 @@ test('@web @m3u @dash ClearKey reopens from recent and favorites collections', a
// Full navigation also proves persisted channels survive a cold load.
await page.goto(route);
if (route.startsWith('/workspace/global-')) {
await page
const allPlaylists = page
.locator('.scope-toggle')
.getByText('All playlists', { exact: true })
.click();
.getByRole('radio', { name: 'All playlists' });
await allPlaylists.click();
// The global routes default to the active playlist's scope; make
// sure the toggle took before waiting for a row only "All
// playlists" can show, or a lost click surfaces as a missing row.
await expect(allPlaylists).toBeChecked();
}
const collection = page.locator('app-unified-live-tab');
await collection