65 lines
2.2 KiB
Markdown
65 lines
2.2 KiB
Markdown
# Playwright tests (Aether)
|
|
|
|
Quick guide for running and editing the Playwright tests in this repo.
|
|
|
|
Running tests
|
|
- Run the full test suite (uses `playwright.config.ts`):
|
|
|
|
```bash
|
|
npx playwright test -c playwright.config.ts
|
|
```
|
|
|
|
- Run a single test file:
|
|
|
|
```bash
|
|
npx playwright test tests/path/to/file.test.ts -c playwright.config.ts
|
|
```
|
|
|
|
- Run a single test by title (grep):
|
|
|
|
```bash
|
|
npx playwright test -g "Badge - interaction" -c playwright.config.ts
|
|
```
|
|
|
|
Notes
|
|
- Tests in `tests/disabled/` are ignored by default (see `playwright.config.ts`). Move flaky or environment-dependent tests there.
|
|
- The runner starts a local dev server via `npm run dev` by default (see `playwright.config.ts:webServer`). Ensure the app can start on port `5173` or update the config.
|
|
|
|
Writing / modifying tests
|
|
- Tests are TypeScript files under `tests/` and should export Playwright `test` blocks. Example header:
|
|
|
|
```ts
|
|
import { test, expect } from '@playwright/test';
|
|
|
|
test('example', async ({ page }) => {
|
|
await page.goto('/');
|
|
await expect(page).toHaveTitle(/OSIT/);
|
|
});
|
|
```
|
|
|
|
- Use `page.route('**/v3/**', handler)` to mock backend responses for deterministic tests.
|
|
- Use `page.addInitScript` to inject `ae_loc` localStorage defaults when tests need authenticated/admin state.
|
|
|
|
Adding new tests
|
|
- Create a new file `tests/my_feature.test.ts`.
|
|
- Keep tests focused and deterministic: mock network calls and avoid relying on external services.
|
|
- Place environment-sensitive tests in `tests/disabled/` so they are not run in CI by default.
|
|
|
|
Committing
|
|
- Stage and commit test changes as usual. Example:
|
|
|
|
```bash
|
|
git add tests/
|
|
git commit -m "test: add <description>"
|
|
```
|
|
|
|
Help
|
|
- If a test fails due to external network calls or platform-specific behavior, try mocking the relevant endpoints and move the test to `tests/disabled` if it cannot be made deterministic.
|
|
|
|
|
|
Development / Testing / Demo environment information
|
|
Use snake_case (or Snake_Case or Snake_case or test_NASA_example or test_API_key)
|
|
Aether test/demo base URL: 'http://demo.localhost:5173'
|
|
Aether development API: 'https://dev-api.oneskyit.com'
|
|
Aether test/demo account: '_XY7DXtc9MY' (1) "One Sky IT Demo"
|
|
Aether test/demo event: 'pjrcghqwert' (1) "Demo One Sky IT Conference" |