✨ feat: add admin smoke tests and enhance testing documentation with new strategies and configurations
This commit is contained in:
@@ -9,11 +9,13 @@ For the full current workflow, prefer the `playwright-testing` skill.
|
||||
- All tests: `yarn test`
|
||||
- E2E: `yarn test:e2e`
|
||||
- API: `yarn test:api`
|
||||
- Admin smoke: `npx playwright test tests/e2e-admin/smoke.spec.ts --project=admin`
|
||||
- Visual regression: `yarn test:visual`
|
||||
- Single file: `npx playwright test tests/e2e/filename.spec.ts`
|
||||
- Single test: `npx playwright test -g "test name"`
|
||||
- After code changes, run only affected spec files — not the full suite.
|
||||
- Prefer the configured `CODING_URL` from `.env` whenever it serves both `/` and `/api/...`.
|
||||
- Admin browser tests use `CODING_TIBIADMIN_URL` from `.env` and default to `admin/admin` unless overridden via env vars.
|
||||
- The current test baseline is deterministic and seed-driven, not demo-content-driven.
|
||||
|
||||
## BrowserSync workaround
|
||||
@@ -32,16 +34,23 @@ BrowserSync keeps a WebSocket open permanently, preventing `networkidle` and `lo
|
||||
- `tests/global-teardown.ts` removes seeded content again and disposes shared API contexts.
|
||||
- Seed data lives in `tests/api/helpers/seed-data.ts`.
|
||||
- Seeded route constants live in `tests/fixtures/test-constants.ts`.
|
||||
- Prefer a hidden `_testdata` boolean field as the last field per collection as the primary marker for seeded test data.
|
||||
- Cleanup belongs both in `globalSetup` and `globalTeardown`.
|
||||
- Seed creation/cleanup must stay run-scoped so the suite works with many workers; do not create or delete shared seeded data in per-test hooks.
|
||||
- If tests write to a collection through `ADMIN_TOKEN`, that collection must define explicit permissions like `"token:${ADMIN_TOKEN}":`.
|
||||
|
||||
## Fixtures & helpers
|
||||
|
||||
- `e2e/fixtures.ts` — Shared desktop helpers (`waitForSpaReady`, `navigateToRoute`, `clickSpaLink`) with BrowserSync-safe navigation defaults.
|
||||
- `e2e-admin/fixtures.ts` — Shared admin helpers (`loginToAdmin`, `openNovaProjectDashboard`) for committed admin smoke coverage.
|
||||
- `e2e-admin/content-config.spec.ts` — Checks that collection config is actually reflected in Nova: sensible list columns/previews, usable widgets, and working pagebuilder preview.
|
||||
- `e2e-visual/fixtures.ts` — Visual test helpers (`waitForVisualReady`, `hideDynamicContent`, `prepareForScreenshot`, `expectScreenshot`, `getDynamicMasks`).
|
||||
- `e2e-mobile/fixtures.ts` — Mobile helpers (`openHamburgerMenu`, `isMobileViewport`, `isTabletViewport`, `isBelowLg`).
|
||||
- `api/fixtures.ts` — API fixtures (`api`, `adminApi`).
|
||||
- `api/helpers/` — API test utilities (`admin-api.ts`, `seed-data.ts`, `maildev.ts`).
|
||||
- `fixtures/test-constants.ts` — Central constants (`ADMIN_TOKEN`, `API_BASE`, `TEST_BASE_URL`, `SEEDED_TEST_CONTENT`).
|
||||
- Use committed admin smoke tests for stable admin contracts. Use one-shot MCP/browser checks only as exploratory supplements, not as the sole regression guard for important admin paths.
|
||||
- Use admin tests specifically to catch broken collection configuration: empty/bad list previews, missing widgets, broken dependsOn behavior, or non-rendering pagebuilder previews.
|
||||
- `api/helpers/test-user.ts` is legacy starter scaffolding and should only be reused if the project really needs JWT-user coverage again.
|
||||
|
||||
## Visual regression
|
||||
|
||||
Reference in New Issue
Block a user