Skip to content

Latest commit

 

History

History
78 lines (53 loc) · 2.01 KB

File metadata and controls

78 lines (53 loc) · 2.01 KB

Maintainers

This guide covers maintainer-focused workflows and CI details.

Test Commands

npm run setup
npm run lint
npm run lint:typed
npm run typecheck:prod
npm test
npm run quality:ci
npm run test:parity:headed
npm run test:flake:soak
npm run test:coverage
npm run build
npm run test:smoke

npm test includes architecture boundary checks (see src/architecture/layer-boundaries.test.ts).

Optional strictness ratchet for tests:

npm run typecheck:test

typecheck:test is currently non-blocking in CI.

Packaging Validation

Before publishing/consuming from a repo branch:

npm run build
npm run test:smoke

Release preflight:

npm pack --dry-run

CI Runner

Workflows run on GitHub-hosted ubuntu-latest runners.

Primary CI workflow (.github/workflows/ci.yml) has these jobs:

  • quality-ci: runs as a Node 20/22 matrix, installs Chromium, runs npm run quality:ci, then npm run test:coverage.
  • headed-parity: installs Chromium, runs xvfb-run -a npm run test:parity:headed; suite resolution fails fast if configured parity suites resolve to zero files.
  • build: runs as a Node 20/22 matrix and executes npm run build, npm run typecheck:prod, and packaging/install dry-run checks.
  • consumer-smoke: runs npm run test:smoke after quality-ci, headed-parity, and build succeed.

Optional soak workflow:

  • .github/workflows/flake-soak.yml: scheduled/manual multi-iteration integration soak; uploads JSON failure-rate report artifact.

Recorder Architecture Note

The current recorder is Playwright-codegen-first. Chrome DevTools Recorder JSON remains supported as an import path, and legacy YAML may still contain older codegen-jsonl / codegen-fallback source tags.

Coverage Thresholds

Configured in vitest.config.ts:

  • Lines: 82%
  • Functions: 90%
  • Branches: 65%
  • Statements: 80%

See snapshot notes in docs/test-coverage-report.md.

Legal / Notices

  • Project license: MIT (LICENSE)
  • Playwright attribution: THIRD_PARTY_NOTICES.md