51 lines
2.5 KiB
TypeScript
51 lines
2.5 KiB
TypeScript
import { expect, test } from '../helpers/serve-dist';
|
|
|
|
test('keeps the decorative world separate from the semantic reading path', async ({ page, distUrl }) => {
|
|
await page.goto(distUrl, { waitUntil: 'domcontentloaded' });
|
|
|
|
await expect(page.locator('#journey-scene-description')).toContainText('night');
|
|
await expect(page.locator('.journey-world')).toHaveAttribute('aria-hidden', 'true');
|
|
await expect(page.locator('.journey-poster')).toHaveAttribute('alt', '');
|
|
await expect(page.locator('.journey-poster')).toHaveAttribute('width', '1600');
|
|
await expect(page.locator('main#portfolio-content')).toBeVisible();
|
|
});
|
|
|
|
test('provides native motion and quality controls with visible state', async ({ page, distUrl }) => {
|
|
await page.goto(distUrl, { waitUntil: 'domcontentloaded' });
|
|
|
|
const quality = page.getByLabel('Quality control');
|
|
await expect(quality).toBeVisible();
|
|
await expect(page.getByRole('button', { name: 'Pause motion' })).toBeVisible();
|
|
await expect(page.getByRole('status')).toContainText('Motion:');
|
|
|
|
await page.getByRole('button', { name: 'Pause motion' }).click();
|
|
await expect(page.getByRole('button', { name: 'Resume motion' })).toBeVisible();
|
|
await expect(page.locator('.journey-canvas')).toHaveCount(0);
|
|
|
|
await page.getByRole('button', { name: 'Resume motion' }).click();
|
|
await expect(page.getByRole('button', { name: 'Pause motion' })).toBeVisible();
|
|
|
|
await quality.selectOption('static');
|
|
await expect(page.getByRole('button', { name: 'Enable motion' })).toBeVisible();
|
|
await expect(page.locator('.journey-canvas')).toHaveCount(0);
|
|
await expect(page.getByRole('status')).toContainText('Motion: static');
|
|
});
|
|
|
|
test('never creates a canvas when the system requests reduced motion', async ({ page, distUrl }) => {
|
|
await page.emulateMedia({ reducedMotion: 'reduce' });
|
|
await page.goto(distUrl, { waitUntil: 'domcontentloaded' });
|
|
|
|
await expect(page.locator('.journey-canvas')).toHaveCount(0);
|
|
await expect(page.getByRole('status')).toContainText('reduced motion requested');
|
|
await expect(page.getByLabel('Quality control')).toBeVisible();
|
|
});
|
|
|
|
test('shows ARRIVED from the authoritative section snapshot at Contact', async ({ page, distUrl }) => {
|
|
await page.goto(distUrl, { waitUntil: 'domcontentloaded' });
|
|
await page.locator('nav a[href="#contact"]').click();
|
|
|
|
await expect(page.locator('.journey-hud')).toContainText('Contact');
|
|
await expect(page.locator('.journey-hud')).toContainText('ARRIVED');
|
|
await expect(page.locator('.journey-hud')).toContainText('100%');
|
|
});
|