Introduce test.bat orchestrating Go/Vitest/Playwright phases, expand coverage across server, agent, and dashboard, and document in tests/README.md.
30 lines
1.3 KiB
TypeScript
30 lines
1.3 KiB
TypeScript
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 });
|
|
});
|
|
});
|