Wait for the boot as long as the boot takes

The specs added over this series each opened with an untimed check that the
canvas was there, which gives it Playwright's default five seconds. That is
the one wait in this suite that cannot be made faster: eight workers share a
software rasterizer, and what they are all waiting on is the same first paint.
Under a full parallel run five seconds is a coin toss, and it came up wrong on
the route-plotting spec.

Thirty, like every other wait in here that crosses a camera flight.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016jxMkwA2rbicdGxHosecYi
This commit is contained in:
2026-08-21 15:20:00 +02:00
co-authored by Claude Fable 5
parent b05324337c
commit 8ceea02875
4 changed files with 19 additions and 7 deletions
+5 -2
View File
@@ -4,7 +4,10 @@ test.describe('Route plotting', () => {
test('chains one star to another through the crossings a chosen range allows', async ({ page }) => {
test.setTimeout(90_000);
await page.goto('/?stars=4000');
await expect(page.getByTestId('scene-canvas')).toBeVisible();
// Generously timed on purpose: this suite shares one software rasterizer, and the boot
// it waits on is the slowest thing in it. The default five seconds is a coin toss
// under a full parallel run.
await expect(page.getByTestId('scene-canvas')).toBeVisible({ timeout: 30_000 });
await page.getByRole('tab', { name: 'Routes' }).click();
@@ -32,7 +35,7 @@ test.describe('Route plotting', () => {
test('says what range a crossing would need, rather than only that there is none', async ({ page }) => {
test.setTimeout(90_000);
await page.goto('/?stars=4000');
await expect(page.getByTestId('scene-canvas')).toBeVisible();
await expect(page.getByTestId('scene-canvas')).toBeVisible({ timeout: 30_000 });
await page.getByRole('tab', { name: 'Routes' }).click();
await page.locator('#route-from').fill('Sol');