Files
OSIT-AE-App-Svelte/tests
..
2024-03-08 00:09:17 -05:00

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):
npx playwright test -c playwright.config.ts
  • Run a single test file:
npx playwright test tests/path/to/file.test.ts -c playwright.config.ts
  • Run a single test by title (grep):
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:
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:
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"
  • Aether test/demo Event Session: 'DOW3h7v6H42' (703) "How To Do Things"
  • Aether test/demo Event Presentation: '7U2eXSjR6H4' (1670) "Build a House"
  • Aether test/demo Event Presenter: 'gT-hxnifb-0' (2202) "Bob The Builder"
  • Aether test/demo Event File: 'OOsHXtng5mr' (2985) "1 Quick Test for macOS.mp4"
  • Aether test/demo Journal: 'BVYE-94-46-29' (42) "Testing Things"
  • Aether test/demo Journal Entry: 'xRx-Y4-h3-fU' (233) "Another Journal Entry in the Test Journal"