This checklist ensures the framework workflow completes successfully and all deliverables meet quality standards.
Before starting the workflow:
package.json, pyproject.toml, pom.xml, build.gradle, go.mod, *.csproj, Gemfile, or Cargo.toml)frontend, backend, or fullstack)package.json, pyproject.toml, pom.xml, go.mod, etc.)config.test_framework)tests/ root directory createdtests/e2e/ directory created (or user’s preferred structure)tests/support/ directory created (critical pattern)tests/support/fixtures/ directory createdtests/support/fixtures/factories/ directory createdtests/support/helpers/ directory createdtests/support/page-objects/ directory created (if applicable)Note: Test organization is flexible (e2e/, api/, integration/). The support/ folder is the key pattern.
playwright.config.ts or cypress.config.ts)use_typescript: true)retain-on-failure-and-retries, screenshot to only-on-failure, video to retain-on-failure.env.example created in project rootTEST_ENV variable definedBASE_URL variable defined with defaultAPI_URL variable defined (if applicable).nvmrc created with appropriate Node versiontests/support/fixtures/index.ts createdcleanup() methodtests/e2e/example.spec.ts)tests/README.md createdpackage.json for frontend, Makefile/pyproject.toml/build.gradle for backend)any unless necessary)fixture-architecture.mddata-factories.mdnetwork-first.mdplaywright-config.md or test-config.mdtest-quality.mdtea_use_pactjs_utils enabled)vitest.config.pact.ts is minimal (no pool/coverage/setup copied from unit config)test:pact:consumer, publish:pact, can:i:deploy:consumer, record:consumer:deployment)env-setup.sh inline in package.jsonpact-broker not npx pact-brokerPACTICIPANT env var pattern (not hardcoded service names)can-i-deploy.sh has --retry-while-unknown=10 --retry-interval=30record-deployment.sh has branch guard (only records on main/master)env-setup.sh uses set -eu; broker scripts use set -euo pipefail — each with explanatory commentcontract-test-consumer.ymldetect-breaking-change step before installPACT_BREAKING_CHANGE != 'true' condition.github/actions/detect-breaking-change/action.yml exists.pacttest.ts extensionaddInteraction() builder (not PactV3 fluent API)fetch()setApiUrl(), env var, or constructor param)@seontechnologies/pactjs-utils not installed.gitignore includes /pacts/ and pact-logs/ci workflow after completiontest-design workflow after completionatdd workflow after completionAll of the following must be true:
npm run test:e2e, pytest, go test ./..., etc.)User must complete:
.env.example to .env.envnpm install to install test dependenciesnpm run test:e2e to verify setuptests/README.md for project-specific guidanceRecommended next workflows:
ci workflow to set up CI/CD pipelinetest-design workflow to plan test coverageatdd workflow when ready to develop storiesIf workflow fails and needs to be rolled back:
tests/ directory.env.example (if created).nvmrc (if created)npm install to clean up node_modulesIssue: Config file has TypeScript errors
@playwright/test or cypress types are installedIssue: Sample test fails to run
Issue: Fixture cleanup not working
Issue: Network interception not working
Playwright:
npx playwright show-traceCypress:
Checklist Complete: Sign off when all items checked and validated.
Completed by: {name} Date: {date} Framework: { Playwright / Cypress or something else} Notes: {notes}