Files
SpaceWanderer/e2e/smoke.spec.ts

31 lines
1.4 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('game template tabs render (scificn-ui component layer wired in)', async ({ page }) => {
await page.goto('/');
// Stat card + footer badge prove the layout shell; Radix Tabs.Trigger renders role="tab".
await expect(page.getByText('NEXT ENCOUNTER')).toBeVisible();
await expect(page.getByRole('tab', { name: 'WORLD MAP' })).toBeVisible();
await expect(page.getByRole('tab', { name: 'CREW' })).toBeVisible();
await expect(page.getByRole('tab', { name: 'SKILL TREE' })).toBeVisible();
await expect(page.getByText('SYS ONLINE')).toBeVisible();
});
test('tabs switch panels client-side (event log terminal)', async ({ page }) => {
await page.goto('/');
await page.getByRole('tab', { name: 'EVENT 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+$/);
});