45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import { defineConfig, devices } from '@playwright/test';
|
|
|
|
/**
|
|
* Playwright config for Africa Alert E2E tests.
|
|
*
|
|
* Assumes both servers are already running:
|
|
* - Server on http://localhost:3001 (`cd server && npm run dev`)
|
|
* - Client on http://localhost:3000 (`cd client && npm run dev`)
|
|
*
|
|
* The client Vite dev server proxies `/api/*` to :3001, so all tests
|
|
* can navigate to `http://localhost:3000` and the auth/contacts/etc.
|
|
* calls still hit the API on 3001.
|
|
*
|
|
* To run the server + client first:
|
|
* cd server && npm run dev # in one terminal
|
|
* cd client && npm run dev # in another terminal
|
|
* Then in a third terminal:
|
|
* cd client && npm run test:e2e
|
|
*/
|
|
export default defineConfig({
|
|
testDir: './e2e',
|
|
testMatch: '**/*.spec.ts',
|
|
fullyParallel: false, // single-process to avoid port-pinning races
|
|
workers: 1,
|
|
retries: 0,
|
|
reporter: [['list']],
|
|
timeout: 30_000,
|
|
expect: { timeout: 10_000 },
|
|
use: {
|
|
baseURL: 'http://localhost:3000',
|
|
headless: true,
|
|
trace: 'retain-on-failure',
|
|
screenshot: 'only-on-failure',
|
|
viewport: { width: 1280, height: 800 },
|
|
// Demo accounts are seeded by server/src/database/init.js
|
|
// (admin/teacher/student/parent/...). See AGENTS.md.
|
|
},
|
|
projects: [
|
|
{
|
|
name: 'chromium',
|
|
use: { ...devices['Desktop Chrome'] },
|
|
},
|
|
],
|
|
});
|