mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-08 17:06:15 -08:00
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:
1 parent
7790e68147
commit
4bab307152
1 file changed
+11
-3
@@ -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
|
||||
|
||||
Reference in new issue
Block a user