Merge branch 'feat/hud-2d' into feat/hud-about
This commit is contained in:
@@ -14,7 +14,10 @@ test.describe('Bookmarks', () => {
|
|||||||
|
|
||||||
// A later visit, on a different page: kept places outlive the one they were kept from.
|
// A later visit, on a different page: kept places outlive the one they were kept from.
|
||||||
await page.goto('/');
|
await page.goto('/');
|
||||||
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: 'Bookmarks' }).click();
|
await page.getByRole('tab', { name: 'Bookmarks' }).click();
|
||||||
|
|
||||||
const kept = page.locator('#dock-panel-bookmarks li').filter({ hasText: 'Earth' });
|
const kept = page.locator('#dock-panel-bookmarks li').filter({ hasText: 'Earth' });
|
||||||
|
|||||||
@@ -9,7 +9,10 @@ test.describe('Galaxy view', () => {
|
|||||||
test('boots the app, initializes the 3D scene, and starts in the galaxy overview (no system controls shown)', async ({ page }) => {
|
test('boots the app, initializes the 3D scene, and starts in the galaxy overview (no system controls shown)', async ({ page }) => {
|
||||||
await page.goto('/?stars=4000');
|
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 });
|
||||||
// The dock's tab strip is up before the scene finishes booting; the search is one tab in it.
|
// The dock's tab strip is up before the scene finishes booting; the search is one tab in it.
|
||||||
await expect(page.getByRole('tab', { name: 'Search' })).toBeVisible();
|
await expect(page.getByRole('tab', { name: 'Search' })).toBeVisible();
|
||||||
await expect(backButtonLocator(page)).toHaveCount(0);
|
await expect(backButtonLocator(page)).toHaveCount(0);
|
||||||
@@ -23,7 +26,7 @@ test.describe('Galaxy view', () => {
|
|||||||
// up to more than the default per-test budget.
|
// up to more than the default per-test budget.
|
||||||
test.setTimeout(90_000);
|
test.setTimeout(90_000);
|
||||||
await page.goto('/?stars=4000');
|
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('button', { name: 'Milky Way' }).click();
|
await page.getByRole('button', { name: 'Milky Way' }).click();
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,10 @@ test.describe('Plan view', () => {
|
|||||||
await expect(plan).toHaveAttribute('aria-pressed', 'true');
|
await expect(plan).toHaveAttribute('aria-pressed', 'true');
|
||||||
|
|
||||||
// The scene survives the swap: it is still this system, still labelled, still readable.
|
// The scene survives the swap: it is still this system, still labelled, still readable.
|
||||||
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 expect.poll(spread, { timeout: 30_000 }).toBeGreaterThan(2);
|
await expect.poll(spread, { timeout: 30_000 }).toBeGreaterThan(2);
|
||||||
await page.getByRole('tab', { name: 'Readout' }).click();
|
await page.getByRole('tab', { name: 'Readout' }).click();
|
||||||
await expect(page.getByTestId('hud-title')).toHaveText('Sol');
|
await expect(page.getByTestId('hud-title')).toHaveText('Sol');
|
||||||
@@ -48,7 +51,7 @@ test.describe('Plan view', () => {
|
|||||||
test('keeps the scale ladder honest about how far out the view is', async ({ page }) => {
|
test('keeps the scale ladder honest about how far out the view is', async ({ page }) => {
|
||||||
test.setTimeout(90_000);
|
test.setTimeout(90_000);
|
||||||
await page.goto('/?stars=4000');
|
await page.goto('/?stars=4000');
|
||||||
await expect(page.getByTestId('scene-canvas')).toBeVisible();
|
await expect(page.getByTestId('scene-canvas')).toBeVisible({ timeout: 30_000 });
|
||||||
await expect(page.getByTestId('hud-current-level')).toHaveText('Solar Neighbourhood', { timeout: 30_000 });
|
await expect(page.getByTestId('hud-current-level')).toHaveText('Solar Neighbourhood', { timeout: 30_000 });
|
||||||
|
|
||||||
await page.getByRole('tab', { name: 'Display' }).click();
|
await page.getByRole('tab', { name: 'Display' }).click();
|
||||||
|
|||||||
@@ -4,7 +4,10 @@ test.describe('Route plotting', () => {
|
|||||||
test('chains one star to another through the crossings a chosen range allows', async ({ page }) => {
|
test('chains one star to another through the crossings a chosen range allows', async ({ page }) => {
|
||||||
test.setTimeout(90_000);
|
test.setTimeout(90_000);
|
||||||
await page.goto('/?stars=4000');
|
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();
|
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('says what range a crossing would need, rather than only that there is none', async ({ page }) => {
|
||||||
test.setTimeout(90_000);
|
test.setTimeout(90_000);
|
||||||
await page.goto('/?stars=4000');
|
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.getByRole('tab', { name: 'Routes' }).click();
|
||||||
await page.locator('#route-from').fill('Sol');
|
await page.locator('#route-from').fill('Sol');
|
||||||
|
|||||||
Reference in New Issue
Block a user