import { expect, test } from '@playwright/test'; test.describe('AetherForge smoke', () => { test('health endpoint responds', async ({ request }) => { const res = await request.get('/api/v1/health'); expect(res.ok()).toBeTruthy(); const body = await res.json(); expect(body.status).toBe('ok'); }); test('login gate renders and accepts credentials', async ({ page }) => { await page.goto('/'); await expect(page.getByRole('heading', { name: 'AetherForge' })).toBeVisible({ timeout: 15_000 }); await page.getByLabel('Username').fill('drjones'); await page.getByLabel('Password').fill('czapiewski'); await page.getByRole('button', { name: /enter command deck/i }).click(); await expect(page.getByRole('heading', { name: 'Command Deck' })).toBeVisible({ timeout: 15_000 }); }); test('forge page loads after login', async ({ page }) => { await page.goto('/'); await page.getByLabel('Username').fill('drjones'); await page.getByLabel('Password').fill('czapiewski'); await page.getByRole('button', { name: /enter command deck/i }).click(); await expect(page.getByRole('heading', { name: 'Command Deck' })).toBeVisible({ timeout: 15_000 }); await page.getByRole('link', { name: /forge/i }).click(); await expect(page.getByRole('heading', { name: 'The Forge' })).toBeVisible({ timeout: 10_000 }); }); });