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(); // Radix Tabs.Trigger renders role="tab", not a plain button. await expect(page.getByRole('tab', { 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('tab', { 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+$/); });