Fixture Architecture Playbook
- Build helpers as pure functions first, then expose them via Playwright
extend or Cypress commands so logic stays testable in isolation.
- Compose capabilities with
mergeTests (Playwright) or layered Cypress commands instead of inheritance; each fixture should solve one concern (auth, api, logs, network).
- Keep HTTP helpers framework agnostic—accept all required params explicitly and return results so unit tests and runtime fixtures can share them.
- Export fixtures through package subpaths (
"./api-request", "./api-request/fixtures") to make reuse trivial across suites and projects.
- Treat fixture files as infrastructure: document dependencies, enforce deterministic timeouts, and ban hidden retries that mask flakiness.
Source: Murat Testing Philosophy, cy-vs-pw comparison, SEON production patterns.