Orbit documentation

Testing and documentation screenshots

Checks

pnpm typecheck            # all packages
pnpm test                 # API and core integration tests (needs postgres + seaweedfs running)
node scripts/smoke.mjs    # quick UI smoke test against running dev servers

End-to-end suite (Playwright)

testing/ holds a Playwright suite that drives a running Orbit through its core workflows. It checks that every value it types is shown again on the saved record.

cd testing
npm install
npx playwright install chromium
cp .env.example .env      # ORBIT_URL, ORBIT_TENANT, ORBIT_EMAIL, ORBIT_PASSWORD
npm test                  # everything
npm run test:smoke        # page-render sweep only
npm run test:readonly     # skips tests that create data, so it's safe against production
npm run report            # HTML report

Everything the suite creates is named E2E <id> and deleted afterwards unless ORBIT_KEEP_DATA=1. See testing/README.md.

Regenerating documentation screenshots

scripts/doc-shots.mjs drives the running app and writes the images in documentation/assets/screenshots/.

node scripts/doc-shots.mjs                       # everything
node scripts/doc-shots.mjs --only=imports,forms  # some groups

Groups: public, shell, clients, cases, appointments, staff, employers, jobs, events, documents, imports, recipes, forms, reports, admin, settings, overseer.

Environment: BASE (default http://localhost:3100), OVERSEER (http://localhost:3101), TENANT (acme), EMAIL / PASSWORD (demo admin), SUPERADMIN_EMAIL / SUPERADMIN_PASSWORD, API_CONTAINER (areocentric-api-1).

Notes:

  • Run it against a demo tenant. Several groups create data named Docs …:
    • public applies for a job and registers for an event, then confirms both using the link from the API log (needs SMTP unset and Docker access to the API container);
    • jobs converts that application;
    • imports and recipes import the sample CSVs in documentation/assets/samples/;
    • forms builds a form, publishes it, then deactivates it;
    • reports saves a report and a schedule.
  • recipes creates records without duplicate matching on every run; run it once per tenant.
  • Screenshots use a 1440×900 viewport, light theme, Toronto timezone.