@
Add star-map Angular app, ETL pipeline, and caveman plugin Angular 3D star map (galaxy/system/body views, Three.js rendering, navigation store) plus the NASA ETL tooling that builds the star, exoplanet and solar-system datasets, Playwright e2e suite, and the cs:caveman Claude Code plugin (command, agent, skill). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> @
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# End-to-end tests (Playwright)
|
||||
|
||||
These tests run the real Angular dev server in a real Chromium browser, covering interactions
|
||||
that unit/component tests (under `src/**/*.spec.ts`, run via `npm test`) can only approximate
|
||||
under jsdom — most importantly the galaxy↔system **camera-flight transitions** (real WebGPU/
|
||||
WebGL2 initialization + raycaster picking) and cross-view **search navigation**.
|
||||
|
||||
## Running
|
||||
|
||||
```bash
|
||||
npm run e2e # headless run against a freshly started dev server
|
||||
npx playwright test --ui # interactive UI mode
|
||||
npx playwright show-report
|
||||
```
|
||||
|
||||
`playwright.config.ts` starts `npm run start -- --port=4300` automatically and waits for it to
|
||||
respond before running the suite (`webServer.reuseExistingServer` is `true` outside CI, so an
|
||||
already-running `ng serve` on port 4300 is reused instead of starting a second one). Port 4300
|
||||
is used instead of the Angular CLI's conventional 4200 to avoid colliding with an unrelated
|
||||
server a developer might already have running there.
|
||||
|
||||
## Notes
|
||||
|
||||
- The Sun (`Sol`) is always placed at the coordinate-system origin (`x=0,y=0,z=0`), which is
|
||||
exactly where the default galaxy-view camera looks. `camera-flight.spec.ts` relies on this to
|
||||
reliably click-select it by clicking the center of the canvas, without needing pixel-perfect
|
||||
knowledge of the star field's on-screen layout.
|
||||
- Data (bootstrap fetch of `stars.bin`/`stars-index.json`/`bodies.json`/`exoplanets.json`) loads
|
||||
asynchronously after the page loads, so tests poll (re-click/re-check) rather than assume the
|
||||
scene is interactive immediately after `page.goto()`.
|
||||
Reference in New Issue
Block a user