Files
2026-05-27 23:29:53 +01:00

2.4 KiB

Archived 2026-04-19: all tasks retroactively ticked; package shipped under universal/dev/testing-e2e.

1. Catalogs and skeleton

  • 1.1 Confirm @playwright/test is in catalogs.testing; add if missing.
  • 1.2 Create packages/universal/testing-e2e/ skeleton: package.json (version 0.1.0, runtime deps = @playwright/test, @opentelemetry/api, zod, tslib; devDep = @suaveplan/testing), tsconfig.lib.json, vite.config.ts, vitest.config.ts, README.md.
  • 1.3 Verify runtime closure has zero @suaveplan/*.

2. Errors

  • 2.1 src/errors/codes.ts — TESTING_E2E.<DOMAIN>.<REASON> constants
  • 2.2 src/errors/testing-e2e-error.ts — base + subclasses (NavigationError, WaitTimeoutError, ConfigError, FixtureError, AbortedError)
  • 2.3 Co-located tests + docs

3. Config factory

  • 3.1 src/config/create-playwright-config.ts — factory with WSL2/CI defaults
  • 3.2 Co-located tests covering: defaults, CI mode overrides, caller overrides

4. Page object base class

  • 4.1 src/page-objects/page-object.ts — abstract PageObject with navigate, waitForReady, findByRole/findByLabel/findByText
  • 4.2 Co-located tests using a mock Playwright Page shape

5. Helpers

  • 5.1 src/helpers/wait-for-network-idle.ts
  • 5.2 src/helpers/screenshot-on-failure.ts
  • 5.3 src/helpers/dismiss-dialog.ts
  • 5.4 src/helpers/mock-geolocation.ts
  • 5.5 src/helpers/mock-clipboard.ts
  • 5.6 Co-located tests for each (mocking the Playwright surface)

6. Test extension

  • 6.1 src/fixtures/extended-test.ts — extendedTest = test.extend({ apiContext, freshPage })
  • 6.2 Co-located shape test (cannot real-test without launching browsers)

7. Observability (gated)

  • 7.1 src/observability/instrumented.ts — gated wrapper, mirroring testing-dom

8. Cross-cutting tests

  • 8.1 tests/dep-graph.test.ts
  • 8.2 tests/no-disallowed.test.ts
  • 8.3 tests/tree-shake.test.ts

9. Pre-publish gate

  • 9.1 bunx turbo lint typecheck test --filter=@suaveplan/testing-e2e green
  • 9.2 ≥ 95% coverage on every dimension
  • 9.3 openspec validate enterprise-testing-e2e --type change passes

10. Publish (USER APPROVAL REQUIRED)

  • 10.1 Surface audit and STOP for approval
  • 10.2 On approval: bun scripts/publish.ts --package @suaveplan/testing-e2e
  • 10.3 Archive change to openspec/archive/<yyyy-mm-dd>-enterprise-testing-e2e/