29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
test('landing page loads with the SpaceWanderer title', async ({ page }) => {
|
|
await page.goto('/');
|
|
await expect(page.getByRole('heading', { name: 'SpaceWanderer' })).toBeVisible();
|
|
});
|
|
|
|
test('mission control layout renders scificn-ui components', async ({ page }) => {
|
|
await page.goto('/');
|
|
// Stat card, tab trigger and footer badge prove the copied component layer is wired in.
|
|
await expect(page.getByText('NEXT ENCOUNTER')).toBeVisible();
|
|
await expect(page.getByRole('button', { name: 'SYSTEMS' })).toBeVisible();
|
|
await expect(page.getByText('SYS ONLINE')).toBeVisible();
|
|
});
|
|
|
|
test('operations tabs switch panels client-side', async ({ page }) => {
|
|
await page.goto('/');
|
|
await page.getByRole('button', { name: 'LOG' }).click();
|
|
await expect(page.getByText('SHIP LOG // PLACEHOLDER FEED')).toBeVisible();
|
|
});
|
|
|
|
test('GET /api/version reports the app version as JSON', async ({ page }) => {
|
|
const res = await page.request.get('/api/version');
|
|
expect(res.status()).toBe(200);
|
|
expect(res.headers()['content-type']).toContain('application/json');
|
|
const body = (await res.json()) as { version: string };
|
|
expect(body.version).toMatch(/^\d+\.\d+\.\d+$/);
|
|
});
|