froid-plane-test-architecture-enterprise 1.23.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +52 -0
- package/.coderabbit.yaml +40 -0
- package/.github/CODE_OF_CONDUCT.md +128 -0
- package/.github/FUNDING.yaml +15 -0
- package/.github/ISSUE_TEMPLATE/config.yaml +8 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +70 -0
- package/.github/ISSUE_TEMPLATE/issue.md +61 -0
- package/.github/ISSUE_TEMPLATE/rule_quality_report.md +46 -0
- package/.github/workflows/docs.yaml +66 -0
- package/.github/workflows/publish.yaml +193 -0
- package/.github/workflows/quality.yaml +171 -0
- package/.github/workflows/tea-test-review.yaml +240 -0
- package/.husky/pre-commit +20 -0
- package/.markdownlint-cli2.yaml +36 -0
- package/.nvmrc +1 -0
- package/.prettierignore +9 -0
- package/.vscode/settings.json +47 -0
- package/AGENTS.md +32 -0
- package/CHANGELOG.md +582 -0
- package/CONTRIBUTING.md +268 -0
- package/DESIGN-CRITERIA-REGISTRY.md +336 -0
- package/LICENSE +26 -0
- package/README.md +782 -0
- package/SECURITY.md +85 -0
- package/cli/examples/README.md +53 -0
- package/cli/examples/pr-test-review.yml +315 -0
- package/cli/lib/agent-adapters.js +256 -0
- package/cli/lib/build-prompt.js +327 -0
- package/cli/lib/changed-tests.js +479 -0
- package/cli/lib/convention-baseline.js +237 -0
- package/cli/lib/isolate.js +353 -0
- package/cli/lib/parse-report.js +1081 -0
- package/cli/lib/registry-rows.js +60 -0
- package/cli/lib/resolve-skill.js +44 -0
- package/cli/lib/resolve-tea-config.js +229 -0
- package/cli/lib/run-agent.js +146 -0
- package/cli/test-review.js +874 -0
- package/docs/404.md +20 -0
- package/docs/explanation/engagement-models.md +191 -0
- package/docs/explanation/eval-quality-roadmap.md +164 -0
- package/docs/explanation/fixture-architecture.md +350 -0
- package/docs/explanation/knowledge-base-system.md +158 -0
- package/docs/explanation/network-first-patterns.md +342 -0
- package/docs/explanation/risk-based-testing.md +189 -0
- package/docs/explanation/step-file-architecture.md +227 -0
- package/docs/explanation/tea-overview.md +244 -0
- package/docs/explanation/test-quality-standards.md +475 -0
- package/docs/explanation/test-review-cli-architecture.md +159 -0
- package/docs/explanation/testing-as-engineering.md +124 -0
- package/docs/explanation/verification-architecture.md +129 -0
- package/docs/glossary/index.md +160 -0
- package/docs/how-to/brownfield/use-tea-for-enterprise.md +394 -0
- package/docs/how-to/brownfield/use-tea-with-existing-tests.md +499 -0
- package/docs/how-to/customization/configure-browser-automation.md +213 -0
- package/docs/how-to/customization/extend-tea-with-custom-workflows.md +102 -0
- package/docs/how-to/customization/integrate-pactjs-utils.md +184 -0
- package/docs/how-to/customization/integrate-playwright-utils.md +886 -0
- package/docs/how-to/install-behind-firewall.md +43 -0
- package/docs/how-to/workflows/run-atdd.md +453 -0
- package/docs/how-to/workflows/run-automate.md +673 -0
- package/docs/how-to/workflows/run-nfr-assess.md +723 -0
- package/docs/how-to/workflows/run-test-design.md +155 -0
- package/docs/how-to/workflows/run-test-review.md +622 -0
- package/docs/how-to/workflows/run-trace.md +973 -0
- package/docs/how-to/workflows/setup-ci.md +741 -0
- package/docs/how-to/workflows/setup-test-framework.md +130 -0
- package/docs/how-to/workflows/teach-me-testing.md +287 -0
- package/docs/index.md +67 -0
- package/docs/reference/commands.md +394 -0
- package/docs/reference/configuration.md +561 -0
- package/docs/reference/execution-targets.md +106 -0
- package/docs/reference/knowledge-base.md +271 -0
- package/docs/reference/live-verification-results.md +193 -0
- package/docs/reference/tea-test-review-cli.md +282 -0
- package/docs/reference/troubleshooting.md +362 -0
- package/docs/tutorials/learn-testing-tea-academy.md +67 -0
- package/docs/tutorials/tea-lite-quickstart.md +459 -0
- package/eslint.config.mjs +146 -0
- package/package.json +139 -0
- package/prettier.config.mjs +32 -0
- package/src/agents/froid-tea/SKILL.md +86 -0
- package/src/agents/froid-tea/customize.toml +108 -0
- package/src/agents/froid-tea/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
- package/src/agents/froid-tea/resources/knowledge/api-request.md +572 -0
- package/src/agents/froid-tea/resources/knowledge/api-testing-patterns.md +931 -0
- package/src/agents/froid-tea/resources/knowledge/auth-session.md +553 -0
- package/src/agents/froid-tea/resources/knowledge/burn-in.md +273 -0
- package/src/agents/froid-tea/resources/knowledge/ci-burn-in.md +717 -0
- package/src/agents/froid-tea/resources/knowledge/component-tdd.md +522 -0
- package/src/agents/froid-tea/resources/knowledge/confidence-gate.md +73 -0
- package/src/agents/froid-tea/resources/knowledge/contract-testing.md +1066 -0
- package/src/agents/froid-tea/resources/knowledge/data-factories.md +539 -0
- package/src/agents/froid-tea/resources/knowledge/email-auth.md +721 -0
- package/src/agents/froid-tea/resources/knowledge/error-handling.md +725 -0
- package/src/agents/froid-tea/resources/knowledge/evidence-integrity.md +265 -0
- package/src/agents/froid-tea/resources/knowledge/feature-flags.md +750 -0
- package/src/agents/froid-tea/resources/knowledge/file-utils.md +456 -0
- package/src/agents/froid-tea/resources/knowledge/fixture-architecture.md +401 -0
- package/src/agents/froid-tea/resources/knowledge/fixtures-composition.md +385 -0
- package/src/agents/froid-tea/resources/knowledge/intercept-network-call.md +426 -0
- package/src/agents/froid-tea/resources/knowledge/library-integration-mandate.md +93 -0
- package/src/agents/froid-tea/resources/knowledge/log.md +432 -0
- package/src/agents/froid-tea/resources/knowledge/maestro-flows.md +540 -0
- package/src/agents/froid-tea/resources/knowledge/mobile-ci-device-lab.md +208 -0
- package/src/agents/froid-tea/resources/knowledge/mobile-test-strategy.md +127 -0
- package/src/agents/froid-tea/resources/knowledge/network-error-monitor.md +402 -0
- package/src/agents/froid-tea/resources/knowledge/network-first.md +486 -0
- package/src/agents/froid-tea/resources/knowledge/network-recorder.md +527 -0
- package/src/agents/froid-tea/resources/knowledge/nfr-criteria.md +670 -0
- package/src/agents/froid-tea/resources/knowledge/overview.md +290 -0
- package/src/agents/froid-tea/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/src/agents/froid-tea/resources/knowledge/pact-consumer-di.md +310 -0
- package/src/agents/froid-tea/resources/knowledge/pact-consumer-framework-setup.md +704 -0
- package/src/agents/froid-tea/resources/knowledge/pact-mcp.md +242 -0
- package/src/agents/froid-tea/resources/knowledge/pactjs-utils-consumer-helpers.md +379 -0
- package/src/agents/froid-tea/resources/knowledge/pactjs-utils-mandate.md +204 -0
- package/src/agents/froid-tea/resources/knowledge/pactjs-utils-overview.md +219 -0
- package/src/agents/froid-tea/resources/knowledge/pactjs-utils-provider-verifier.md +397 -0
- package/src/agents/froid-tea/resources/knowledge/pactjs-utils-request-filter.md +224 -0
- package/src/agents/froid-tea/resources/knowledge/pactjs-utils-zod-to-pact.md +262 -0
- package/src/agents/froid-tea/resources/knowledge/playwright-cli.md +280 -0
- package/src/agents/froid-tea/resources/knowledge/playwright-config.md +734 -0
- package/src/agents/froid-tea/resources/knowledge/playwright-utils-mandate.md +183 -0
- package/src/agents/froid-tea/resources/knowledge/probability-impact.md +593 -0
- package/src/agents/froid-tea/resources/knowledge/recurse.md +433 -0
- package/src/agents/froid-tea/resources/knowledge/risk-governance.md +625 -0
- package/src/agents/froid-tea/resources/knowledge/selective-testing.md +732 -0
- package/src/agents/froid-tea/resources/knowledge/selector-resilience.md +527 -0
- package/src/agents/froid-tea/resources/knowledge/test-healing-patterns.md +644 -0
- package/src/agents/froid-tea/resources/knowledge/test-levels-framework.md +473 -0
- package/src/agents/froid-tea/resources/knowledge/test-priorities-matrix.md +382 -0
- package/src/agents/froid-tea/resources/knowledge/test-quality.md +848 -0
- package/src/agents/froid-tea/resources/knowledge/timing-debugging.md +464 -0
- package/src/agents/froid-tea/resources/knowledge/visual-debugging.md +527 -0
- package/src/agents/froid-tea/resources/knowledge/webhook-module-setup.md +122 -0
- package/src/agents/froid-tea/resources/knowledge/webhook-providers.md +155 -0
- package/src/agents/froid-tea/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/src/agents/froid-tea/resources/knowledge/webhook-template-matchers.md +160 -0
- package/src/agents/froid-tea/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/src/agents/froid-tea/resources/knowledge/webhook-timeout-error.md +130 -0
- package/src/agents/froid-tea/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/src/agents/froid-tea/resources/tea-index.csv +60 -0
- package/src/module-help.csv +11 -0
- package/src/module.yaml +332 -0
- package/src/workflows/testarch/froid-teach-me-testing/SKILL.md +129 -0
- package/src/workflows/testarch/froid-teach-me-testing/checklist.md +198 -0
- package/src/workflows/testarch/froid-teach-me-testing/customize.toml +38 -0
- package/src/workflows/testarch/froid-teach-me-testing/data/curriculum.yaml +129 -0
- package/src/workflows/testarch/froid-teach-me-testing/data/quiz-questions.yaml +206 -0
- package/src/workflows/testarch/froid-teach-me-testing/data/role-paths.yaml +136 -0
- package/src/workflows/testarch/froid-teach-me-testing/data/session-content-map.yaml +222 -0
- package/src/workflows/testarch/froid-teach-me-testing/data/tea-resources-index.yaml +483 -0
- package/src/workflows/testarch/froid-teach-me-testing/instructions.md +129 -0
- package/src/workflows/testarch/froid-teach-me-testing/resources/tea-completion-summary.example.md +102 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-c/step-01-init.md +235 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-c/step-01b-continue.md +147 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-c/step-02-assess.md +258 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-c/step-03-session-menu.md +219 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-c/step-04-session-01.md +460 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-c/step-04-session-02.md +465 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-c/step-04-session-03.md +301 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-c/step-04-session-04.md +234 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-c/step-04-session-05.md +234 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-c/step-04-session-06.md +209 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-c/step-04-session-07.md +243 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-c/step-05-completion.md +343 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-e/step-e-01-assess-workflow.md +141 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-e/step-e-02-apply-edits.md +130 -0
- package/src/workflows/testarch/froid-teach-me-testing/steps-v/step-v-01-validate.md +278 -0
- package/src/workflows/testarch/froid-teach-me-testing/templates/completion-summary-template.md +82 -0
- package/src/workflows/testarch/froid-teach-me-testing/templates/progress-template.yaml +95 -0
- package/src/workflows/testarch/froid-teach-me-testing/templates/session-notes-template.md +83 -0
- package/src/workflows/testarch/froid-testarch-atdd/SKILL.md +85 -0
- package/src/workflows/testarch/froid-testarch-atdd/atdd-checklist-template.md +394 -0
- package/src/workflows/testarch/froid-testarch-atdd/checklist.md +408 -0
- package/src/workflows/testarch/froid-testarch-atdd/customize.toml +38 -0
- package/src/workflows/testarch/froid-testarch-atdd/instructions.md +44 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/atdd-checklist-2-4-guest-checkout.example.md +594 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/api-request.md +572 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/api-testing-patterns.md +931 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/auth-session.md +553 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/burn-in.md +273 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/ci-burn-in.md +717 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/component-tdd.md +522 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/confidence-gate.md +73 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/contract-testing.md +1066 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/data-factories.md +539 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/email-auth.md +721 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/error-handling.md +725 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/evidence-integrity.md +265 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/feature-flags.md +750 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/file-utils.md +456 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/fixture-architecture.md +401 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/fixtures-composition.md +385 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/intercept-network-call.md +426 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/library-integration-mandate.md +93 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/log.md +432 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/maestro-flows.md +540 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/mobile-ci-device-lab.md +208 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/mobile-test-strategy.md +127 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/network-error-monitor.md +402 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/network-first.md +486 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/network-recorder.md +527 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/nfr-criteria.md +670 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/overview.md +290 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/pact-consumer-di.md +310 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/pact-consumer-framework-setup.md +704 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/pact-mcp.md +242 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/pactjs-utils-consumer-helpers.md +379 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/pactjs-utils-mandate.md +204 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/pactjs-utils-overview.md +219 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/pactjs-utils-provider-verifier.md +397 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/pactjs-utils-request-filter.md +224 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/pactjs-utils-zod-to-pact.md +262 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/playwright-cli.md +280 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/playwright-config.md +734 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/playwright-utils-mandate.md +183 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/probability-impact.md +593 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/recurse.md +433 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/risk-governance.md +625 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/selective-testing.md +732 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/selector-resilience.md +527 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/test-healing-patterns.md +644 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/test-levels-framework.md +473 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/test-priorities-matrix.md +382 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/test-quality.md +848 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/timing-debugging.md +464 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/visual-debugging.md +527 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/webhook-module-setup.md +122 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/webhook-providers.md +155 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/webhook-template-matchers.md +160 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/webhook-timeout-error.md +130 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/src/workflows/testarch/froid-testarch-atdd/resources/tea-index.csv +60 -0
- package/src/workflows/testarch/froid-testarch-atdd/steps-c/step-01-preflight-and-context.md +256 -0
- package/src/workflows/testarch/froid-testarch-atdd/steps-c/step-01b-resume.md +96 -0
- package/src/workflows/testarch/froid-testarch-atdd/steps-c/step-02-generation-mode.md +125 -0
- package/src/workflows/testarch/froid-testarch-atdd/steps-c/step-03-test-strategy.md +110 -0
- package/src/workflows/testarch/froid-testarch-atdd/steps-c/step-04-generate-tests.md +362 -0
- package/src/workflows/testarch/froid-testarch-atdd/steps-c/step-04a-subagent-api-failing.md +323 -0
- package/src/workflows/testarch/froid-testarch-atdd/steps-c/step-04b-subagent-e2e-failing.md +305 -0
- package/src/workflows/testarch/froid-testarch-atdd/steps-c/step-04c-aggregate.md +430 -0
- package/src/workflows/testarch/froid-testarch-atdd/steps-c/step-05-validate-and-complete.md +123 -0
- package/src/workflows/testarch/froid-testarch-atdd/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/froid-testarch-atdd/steps-e/step-02-apply-edit.md +68 -0
- package/src/workflows/testarch/froid-testarch-atdd/steps-v/step-01-validate.md +85 -0
- package/src/workflows/testarch/froid-testarch-atdd/workflow.yaml +46 -0
- package/src/workflows/testarch/froid-testarch-automate/SKILL.md +85 -0
- package/src/workflows/testarch/froid-testarch-automate/checklist.md +645 -0
- package/src/workflows/testarch/froid-testarch-automate/customize.toml +38 -0
- package/src/workflows/testarch/froid-testarch-automate/instructions.md +49 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/automation-summary.example.md +76 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/api-request.md +572 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/api-testing-patterns.md +931 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/auth-session.md +553 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/burn-in.md +273 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/ci-burn-in.md +717 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/component-tdd.md +522 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/confidence-gate.md +73 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/contract-testing.md +1066 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/data-factories.md +539 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/email-auth.md +721 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/error-handling.md +725 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/evidence-integrity.md +265 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/feature-flags.md +750 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/file-utils.md +456 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/fixture-architecture.md +401 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/fixtures-composition.md +385 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/intercept-network-call.md +426 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/library-integration-mandate.md +93 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/log.md +432 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/maestro-flows.md +540 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/mobile-ci-device-lab.md +208 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/mobile-test-strategy.md +127 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/network-error-monitor.md +402 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/network-first.md +486 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/network-recorder.md +527 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/nfr-criteria.md +670 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/overview.md +290 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/pact-consumer-di.md +310 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/pact-consumer-framework-setup.md +704 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/pact-mcp.md +242 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/pactjs-utils-consumer-helpers.md +379 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/pactjs-utils-mandate.md +204 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/pactjs-utils-overview.md +219 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/pactjs-utils-provider-verifier.md +397 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/pactjs-utils-request-filter.md +224 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/pactjs-utils-zod-to-pact.md +262 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/playwright-cli.md +280 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/playwright-config.md +734 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/playwright-utils-mandate.md +183 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/probability-impact.md +593 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/recurse.md +433 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/risk-governance.md +625 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/selective-testing.md +732 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/selector-resilience.md +527 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/test-healing-patterns.md +644 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/test-levels-framework.md +473 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/test-priorities-matrix.md +382 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/test-quality.md +848 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/timing-debugging.md +464 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/visual-debugging.md +527 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/webhook-module-setup.md +122 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/webhook-providers.md +155 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/webhook-template-matchers.md +160 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/webhook-timeout-error.md +130 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/src/workflows/testarch/froid-testarch-automate/resources/tea-index.csv +60 -0
- package/src/workflows/testarch/froid-testarch-automate/steps-c/step-01-preflight-and-context.md +261 -0
- package/src/workflows/testarch/froid-testarch-automate/steps-c/step-01b-resume.md +94 -0
- package/src/workflows/testarch/froid-testarch-automate/steps-c/step-02-identify-targets.md +182 -0
- package/src/workflows/testarch/froid-testarch-automate/steps-c/step-03-generate-tests.md +458 -0
- package/src/workflows/testarch/froid-testarch-automate/steps-c/step-03a-subagent-api.md +333 -0
- package/src/workflows/testarch/froid-testarch-automate/steps-c/step-03b-subagent-backend.md +248 -0
- package/src/workflows/testarch/froid-testarch-automate/steps-c/step-03b-subagent-e2e.md +282 -0
- package/src/workflows/testarch/froid-testarch-automate/steps-c/step-03b-subagent-mobile.md +162 -0
- package/src/workflows/testarch/froid-testarch-automate/steps-c/step-03c-aggregate.md +494 -0
- package/src/workflows/testarch/froid-testarch-automate/steps-c/step-04-validate-and-summarize.md +120 -0
- package/src/workflows/testarch/froid-testarch-automate/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/froid-testarch-automate/steps-e/step-02-apply-edit.md +68 -0
- package/src/workflows/testarch/froid-testarch-automate/steps-v/step-01-validate.md +85 -0
- package/src/workflows/testarch/froid-testarch-automate/workflow.yaml +53 -0
- package/src/workflows/testarch/froid-testarch-ci/SKILL.md +85 -0
- package/src/workflows/testarch/froid-testarch-ci/azure-pipelines-template.yaml +155 -0
- package/src/workflows/testarch/froid-testarch-ci/checklist.md +289 -0
- package/src/workflows/testarch/froid-testarch-ci/customize.toml +38 -0
- package/src/workflows/testarch/froid-testarch-ci/github-actions-template.yaml +328 -0
- package/src/workflows/testarch/froid-testarch-ci/gitlab-ci-template.yaml +158 -0
- package/src/workflows/testarch/froid-testarch-ci/harness-pipeline-template.yaml +160 -0
- package/src/workflows/testarch/froid-testarch-ci/instructions.md +44 -0
- package/src/workflows/testarch/froid-testarch-ci/jenkins-pipeline-template.groovy +129 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/ci-pipeline-progress.example.md +121 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/api-request.md +572 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/api-testing-patterns.md +931 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/auth-session.md +553 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/burn-in.md +273 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/ci-burn-in.md +717 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/component-tdd.md +522 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/confidence-gate.md +73 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/contract-testing.md +1066 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/data-factories.md +539 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/email-auth.md +721 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/error-handling.md +725 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/evidence-integrity.md +265 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/feature-flags.md +750 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/file-utils.md +456 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/fixture-architecture.md +401 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/fixtures-composition.md +385 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/intercept-network-call.md +426 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/library-integration-mandate.md +93 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/log.md +432 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/maestro-flows.md +540 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/mobile-ci-device-lab.md +208 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/mobile-test-strategy.md +127 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/network-error-monitor.md +402 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/network-first.md +486 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/network-recorder.md +527 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/nfr-criteria.md +670 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/overview.md +290 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/pact-consumer-di.md +310 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/pact-consumer-framework-setup.md +704 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/pact-mcp.md +242 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/pactjs-utils-consumer-helpers.md +379 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/pactjs-utils-mandate.md +204 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/pactjs-utils-overview.md +219 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/pactjs-utils-provider-verifier.md +397 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/pactjs-utils-request-filter.md +224 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/pactjs-utils-zod-to-pact.md +262 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/playwright-cli.md +280 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/playwright-config.md +734 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/playwright-utils-mandate.md +183 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/probability-impact.md +593 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/recurse.md +433 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/risk-governance.md +625 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/selective-testing.md +732 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/selector-resilience.md +527 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/test-healing-patterns.md +644 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/test-levels-framework.md +473 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/test-priorities-matrix.md +382 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/test-quality.md +848 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/timing-debugging.md +464 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/visual-debugging.md +527 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/webhook-module-setup.md +122 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/webhook-providers.md +155 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/webhook-template-matchers.md +160 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/webhook-timeout-error.md +130 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/src/workflows/testarch/froid-testarch-ci/resources/tea-index.csv +60 -0
- package/src/workflows/testarch/froid-testarch-ci/steps-c/step-01-preflight.md +173 -0
- package/src/workflows/testarch/froid-testarch-ci/steps-c/step-01b-resume.md +110 -0
- package/src/workflows/testarch/froid-testarch-ci/steps-c/step-02-generate-pipeline.md +305 -0
- package/src/workflows/testarch/froid-testarch-ci/steps-c/step-03-configure-quality-gates.md +164 -0
- package/src/workflows/testarch/froid-testarch-ci/steps-c/step-04-validate-and-summary.md +100 -0
- package/src/workflows/testarch/froid-testarch-ci/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/froid-testarch-ci/steps-e/step-02-apply-edit.md +68 -0
- package/src/workflows/testarch/froid-testarch-ci/steps-v/step-01-validate.md +99 -0
- package/src/workflows/testarch/froid-testarch-ci/workflow.yaml +48 -0
- package/src/workflows/testarch/froid-testarch-framework/SKILL.md +85 -0
- package/src/workflows/testarch/froid-testarch-framework/checklist.md +370 -0
- package/src/workflows/testarch/froid-testarch-framework/customize.toml +38 -0
- package/src/workflows/testarch/froid-testarch-framework/instructions.md +44 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/framework-setup-progress.example.md +195 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/hooks/tea-enforce.cjs +1098 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/api-request.md +572 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/api-testing-patterns.md +931 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/auth-session.md +553 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/burn-in.md +273 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/ci-burn-in.md +717 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/component-tdd.md +522 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/confidence-gate.md +73 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/contract-testing.md +1066 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/data-factories.md +539 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/email-auth.md +721 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/error-handling.md +725 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/evidence-integrity.md +265 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/feature-flags.md +750 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/file-utils.md +456 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/fixture-architecture.md +401 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/fixtures-composition.md +385 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/intercept-network-call.md +426 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/library-integration-mandate.md +93 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/log.md +432 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/maestro-flows.md +540 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/mobile-ci-device-lab.md +208 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/mobile-test-strategy.md +127 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/network-error-monitor.md +402 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/network-first.md +486 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/network-recorder.md +527 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/nfr-criteria.md +670 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/overview.md +290 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/pact-consumer-di.md +310 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/pact-consumer-framework-setup.md +704 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/pact-mcp.md +242 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/pactjs-utils-consumer-helpers.md +379 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/pactjs-utils-mandate.md +204 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/pactjs-utils-overview.md +219 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/pactjs-utils-provider-verifier.md +397 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/pactjs-utils-request-filter.md +224 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/pactjs-utils-zod-to-pact.md +262 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/playwright-cli.md +280 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/playwright-config.md +734 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/playwright-utils-mandate.md +183 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/probability-impact.md +593 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/recurse.md +433 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/risk-governance.md +625 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/selective-testing.md +732 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/selector-resilience.md +527 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/test-healing-patterns.md +644 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/test-levels-framework.md +473 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/test-priorities-matrix.md +382 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/test-quality.md +848 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/timing-debugging.md +464 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/visual-debugging.md +527 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/webhook-module-setup.md +122 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/webhook-providers.md +155 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/webhook-template-matchers.md +160 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/webhook-timeout-error.md +130 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/src/workflows/testarch/froid-testarch-framework/resources/tea-index.csv +60 -0
- package/src/workflows/testarch/froid-testarch-framework/steps-c/step-01-preflight.md +145 -0
- package/src/workflows/testarch/froid-testarch-framework/steps-c/step-01b-resume.md +116 -0
- package/src/workflows/testarch/froid-testarch-framework/steps-c/step-02-select-framework.md +131 -0
- package/src/workflows/testarch/froid-testarch-framework/steps-c/step-03-scaffold-framework.md +444 -0
- package/src/workflows/testarch/froid-testarch-framework/steps-c/step-04-docs-and-scripts.md +210 -0
- package/src/workflows/testarch/froid-testarch-framework/steps-c/step-05-validate-and-summary.md +101 -0
- package/src/workflows/testarch/froid-testarch-framework/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/froid-testarch-framework/steps-e/step-02-apply-edit.md +68 -0
- package/src/workflows/testarch/froid-testarch-framework/steps-v/step-01-validate.md +85 -0
- package/src/workflows/testarch/froid-testarch-framework/workflow.yaml +48 -0
- package/src/workflows/testarch/froid-testarch-nfr/SKILL.md +85 -0
- package/src/workflows/testarch/froid-testarch-nfr/checklist.md +405 -0
- package/src/workflows/testarch/froid-testarch-nfr/customize.toml +38 -0
- package/src/workflows/testarch/froid-testarch-nfr/instructions.md +45 -0
- package/src/workflows/testarch/froid-testarch-nfr/nfr-report-template.md +454 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/api-request.md +572 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/api-testing-patterns.md +931 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/auth-session.md +553 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/burn-in.md +273 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/ci-burn-in.md +717 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/component-tdd.md +522 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/confidence-gate.md +73 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/contract-testing.md +1066 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/data-factories.md +539 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/email-auth.md +721 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/error-handling.md +725 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/evidence-integrity.md +265 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/feature-flags.md +750 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/file-utils.md +456 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/fixture-architecture.md +401 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/fixtures-composition.md +385 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/intercept-network-call.md +426 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/library-integration-mandate.md +93 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/log.md +432 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/maestro-flows.md +540 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/mobile-ci-device-lab.md +208 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/mobile-test-strategy.md +127 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/network-error-monitor.md +402 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/network-first.md +486 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/network-recorder.md +527 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/nfr-criteria.md +670 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/overview.md +290 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/pact-consumer-di.md +310 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/pact-consumer-framework-setup.md +704 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/pact-mcp.md +242 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/pactjs-utils-consumer-helpers.md +379 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/pactjs-utils-mandate.md +204 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/pactjs-utils-overview.md +219 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/pactjs-utils-provider-verifier.md +397 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/pactjs-utils-request-filter.md +224 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/pactjs-utils-zod-to-pact.md +262 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/playwright-cli.md +280 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/playwright-config.md +734 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/playwright-utils-mandate.md +183 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/probability-impact.md +593 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/recurse.md +433 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/risk-governance.md +625 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/selective-testing.md +732 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/selector-resilience.md +527 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/test-healing-patterns.md +644 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/test-levels-framework.md +473 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/test-priorities-matrix.md +382 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/test-quality.md +848 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/timing-debugging.md +464 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/visual-debugging.md +527 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/webhook-module-setup.md +122 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/webhook-providers.md +155 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/webhook-template-matchers.md +160 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/webhook-timeout-error.md +130 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/nfr-assessment.example.md +497 -0
- package/src/workflows/testarch/froid-testarch-nfr/resources/tea-index.csv +60 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-c/nfr-status-definitions.md +37 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-c/step-01-load-context.md +138 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-c/step-01b-resume.md +106 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-c/step-02-define-thresholds.md +120 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-c/step-03-gather-evidence.md +108 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-c/step-04-evaluate-and-score.md +254 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-c/step-04a-subagent-security.md +135 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-c/step-04b-subagent-performance.md +97 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-c/step-04c-subagent-reliability.md +93 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-c/step-04d-subagent-maintainability.md +104 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-c/step-04e-aggregate-nfr.md +294 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-c/step-05-generate-report.md +116 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-e/step-02-apply-edit.md +68 -0
- package/src/workflows/testarch/froid-testarch-nfr/steps-v/step-01-validate.md +85 -0
- package/src/workflows/testarch/froid-testarch-nfr/workflow.yaml +48 -0
- package/src/workflows/testarch/froid-testarch-test-design/SKILL.md +89 -0
- package/src/workflows/testarch/froid-testarch-test-design/checklist.md +486 -0
- package/src/workflows/testarch/froid-testarch-test-design/customize.toml +38 -0
- package/src/workflows/testarch/froid-testarch-test-design/instructions.md +104 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/api-request.md +572 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/api-testing-patterns.md +931 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/auth-session.md +553 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/burn-in.md +273 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/ci-burn-in.md +717 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/component-tdd.md +522 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/confidence-gate.md +73 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/contract-testing.md +1066 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/data-factories.md +539 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/email-auth.md +721 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/error-handling.md +725 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/evidence-integrity.md +265 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/feature-flags.md +750 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/file-utils.md +456 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/fixture-architecture.md +401 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/fixtures-composition.md +385 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/intercept-network-call.md +426 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/library-integration-mandate.md +93 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/log.md +432 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/maestro-flows.md +540 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/mobile-ci-device-lab.md +208 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/mobile-test-strategy.md +127 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/network-error-monitor.md +402 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/network-first.md +486 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/network-recorder.md +527 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/nfr-criteria.md +670 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/overview.md +290 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/pact-consumer-di.md +310 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/pact-consumer-framework-setup.md +704 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/pact-mcp.md +242 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/pactjs-utils-consumer-helpers.md +379 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/pactjs-utils-mandate.md +204 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/pactjs-utils-overview.md +219 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/pactjs-utils-provider-verifier.md +397 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/pactjs-utils-request-filter.md +224 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/pactjs-utils-zod-to-pact.md +262 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/playwright-cli.md +280 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/playwright-config.md +734 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/playwright-utils-mandate.md +183 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/probability-impact.md +593 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/recurse.md +433 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/risk-governance.md +625 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/selective-testing.md +732 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/selector-resilience.md +527 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/test-healing-patterns.md +644 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/test-levels-framework.md +473 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/test-priorities-matrix.md +382 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/test-quality.md +848 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/timing-debugging.md +464 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/visual-debugging.md +527 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/webhook-module-setup.md +122 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/webhook-providers.md +155 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/webhook-template-matchers.md +160 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/webhook-timeout-error.md +130 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/tea-index.csv +60 -0
- package/src/workflows/testarch/froid-testarch-test-design/resources/test-design-epic-3.example.md +300 -0
- package/src/workflows/testarch/froid-testarch-test-design/steps-c/step-01-detect-mode.md +187 -0
- package/src/workflows/testarch/froid-testarch-test-design/steps-c/step-01b-resume.md +141 -0
- package/src/workflows/testarch/froid-testarch-test-design/steps-c/step-02-load-context.md +268 -0
- package/src/workflows/testarch/froid-testarch-test-design/steps-c/step-03-risk-and-testability.md +133 -0
- package/src/workflows/testarch/froid-testarch-test-design/steps-c/step-04-coverage-plan.md +148 -0
- package/src/workflows/testarch/froid-testarch-test-design/steps-c/step-05-generate-output.md +241 -0
- package/src/workflows/testarch/froid-testarch-test-design/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/froid-testarch-test-design/steps-e/step-02-apply-edit.md +68 -0
- package/src/workflows/testarch/froid-testarch-test-design/steps-v/step-01-validate.md +85 -0
- package/src/workflows/testarch/froid-testarch-test-design/test-design-architecture-template.md +250 -0
- package/src/workflows/testarch/froid-testarch-test-design/test-design-handoff-template.md +70 -0
- package/src/workflows/testarch/froid-testarch-test-design/test-design-qa-template.md +414 -0
- package/src/workflows/testarch/froid-testarch-test-design/test-design-template.md +367 -0
- package/src/workflows/testarch/froid-testarch-test-design/workflow.yaml +77 -0
- package/src/workflows/testarch/froid-testarch-test-review/SKILL.md +97 -0
- package/src/workflows/testarch/froid-testarch-test-review/checklist.md +506 -0
- package/src/workflows/testarch/froid-testarch-test-review/customize.toml +66 -0
- package/src/workflows/testarch/froid-testarch-test-review/instructions.md +50 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/api-request.md +572 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/api-testing-patterns.md +931 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/auth-session.md +553 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/burn-in.md +273 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/ci-burn-in.md +717 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/component-tdd.md +522 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/confidence-gate.md +73 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/contract-testing.md +1066 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/data-factories.md +539 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/email-auth.md +721 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/error-handling.md +725 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/evidence-integrity.md +265 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/feature-flags.md +750 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/file-utils.md +456 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/fixture-architecture.md +401 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/fixtures-composition.md +385 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/intercept-network-call.md +426 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/library-integration-mandate.md +93 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/log.md +432 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/maestro-flows.md +540 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/mobile-ci-device-lab.md +208 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/mobile-test-strategy.md +127 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/network-error-monitor.md +402 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/network-first.md +486 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/network-recorder.md +527 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/nfr-criteria.md +670 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/overview.md +290 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/pact-consumer-di.md +310 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/pact-consumer-framework-setup.md +704 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/pact-mcp.md +242 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/pactjs-utils-consumer-helpers.md +379 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/pactjs-utils-mandate.md +204 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/pactjs-utils-overview.md +219 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/pactjs-utils-provider-verifier.md +397 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/pactjs-utils-request-filter.md +224 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/pactjs-utils-zod-to-pact.md +262 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/playwright-cli.md +280 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/playwright-config.md +734 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/playwright-utils-mandate.md +183 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/probability-impact.md +593 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/recurse.md +433 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/risk-governance.md +625 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/selective-testing.md +732 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/selector-resilience.md +527 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/test-healing-patterns.md +644 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/test-levels-framework.md +473 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/test-priorities-matrix.md +382 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/test-quality.md +848 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/timing-debugging.md +464 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/visual-debugging.md +527 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/webhook-module-setup.md +122 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/webhook-providers.md +155 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/webhook-template-matchers.md +160 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/webhook-timeout-error.md +130 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/tea-index.csv +60 -0
- package/src/workflows/testarch/froid-testarch-test-review/resources/test-review.example.md +297 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-c/criteria-registry.md +230 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-c/step-01-load-context.md +236 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-c/step-01b-resume.md +104 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-c/step-02-discover-tests.md +271 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-c/step-03-quality-evaluation.md +296 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-c/step-03a-subagent-determinism.md +336 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-c/step-03b-subagent-isolation.md +142 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-c/step-03c-subagent-maintainability.md +173 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-c/step-03e-subagent-performance.md +145 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-c/step-03f-aggregate-scores.md +409 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-c/step-04-generate-report.md +122 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-e/step-02-apply-edit.md +68 -0
- package/src/workflows/testarch/froid-testarch-test-review/steps-v/step-01-validate.md +85 -0
- package/src/workflows/testarch/froid-testarch-test-review/test-review-template.md +469 -0
- package/src/workflows/testarch/froid-testarch-test-review/workflow.yaml +55 -0
- package/src/workflows/testarch/froid-testarch-trace/SKILL.md +87 -0
- package/src/workflows/testarch/froid-testarch-trace/checklist.md +677 -0
- package/src/workflows/testarch/froid-testarch-trace/customize.toml +38 -0
- package/src/workflows/testarch/froid-testarch-trace/instructions.md +45 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/api-request.md +572 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/api-testing-patterns.md +931 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/auth-session.md +553 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/burn-in.md +273 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/ci-burn-in.md +717 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/component-tdd.md +522 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/confidence-gate.md +73 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/contract-testing.md +1066 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/data-factories.md +539 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/email-auth.md +721 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/error-handling.md +725 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/evidence-integrity.md +265 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/feature-flags.md +750 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/file-utils.md +456 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/fixture-architecture.md +401 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/fixtures-composition.md +385 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/intercept-network-call.md +426 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/library-integration-mandate.md +93 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/log.md +432 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/maestro-flows.md +540 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/mobile-ci-device-lab.md +208 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/mobile-test-strategy.md +127 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/network-error-monitor.md +402 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/network-first.md +486 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/network-recorder.md +527 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/nfr-criteria.md +670 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/overview.md +290 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/pact-consumer-di.md +310 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/pact-consumer-framework-setup.md +704 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/pact-mcp.md +242 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/pactjs-utils-consumer-helpers.md +379 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/pactjs-utils-mandate.md +204 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/pactjs-utils-overview.md +219 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/pactjs-utils-provider-verifier.md +397 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/pactjs-utils-request-filter.md +224 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/pactjs-utils-zod-to-pact.md +262 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/playwright-cli.md +280 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/playwright-config.md +734 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/playwright-utils-mandate.md +183 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/probability-impact.md +593 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/recurse.md +433 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/risk-governance.md +625 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/selective-testing.md +732 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/selector-resilience.md +527 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/test-healing-patterns.md +644 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/test-levels-framework.md +473 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/test-priorities-matrix.md +382 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/test-quality.md +848 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/timing-debugging.md +464 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/visual-debugging.md +527 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/webhook-module-setup.md +122 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/webhook-providers.md +155 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/webhook-template-matchers.md +160 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/webhook-timeout-error.md +130 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/live-verification-results.example.json +37 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/tea-index.csv +60 -0
- package/src/workflows/testarch/froid-testarch-trace/resources/traceability-matrix.example.md +346 -0
- package/src/workflows/testarch/froid-testarch-trace/steps-c/step-01-load-context.md +166 -0
- package/src/workflows/testarch/froid-testarch-trace/steps-c/step-01b-resume.md +102 -0
- package/src/workflows/testarch/froid-testarch-trace/steps-c/step-02-discover-tests.md +292 -0
- package/src/workflows/testarch/froid-testarch-trace/steps-c/step-03-map-criteria.md +149 -0
- package/src/workflows/testarch/froid-testarch-trace/steps-c/step-04-analyze-gaps.md +795 -0
- package/src/workflows/testarch/froid-testarch-trace/steps-c/step-05-gate-decision.md +795 -0
- package/src/workflows/testarch/froid-testarch-trace/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/froid-testarch-trace/steps-e/step-02-apply-edit.md +68 -0
- package/src/workflows/testarch/froid-testarch-trace/steps-v/step-01-validate.md +85 -0
- package/src/workflows/testarch/froid-testarch-trace/trace-template.md +716 -0
- package/src/workflows/testarch/froid-testarch-trace/workflow.yaml +98 -0
- package/test/README.md +57 -0
- package/test/eval-all.js +213 -0
- package/test/eval-fragment-selection.js +521 -0
- package/test/eval-test-review.js +525 -0
- package/test/evals/froid-testarch-atdd/evals.json +98 -0
- package/test/evals/froid-testarch-automate/evals.json +198 -0
- package/test/evals/froid-testarch-ci/evals.json +78 -0
- package/test/evals/froid-testarch-framework/evals.json +111 -0
- package/test/evals/froid-testarch-nfr/evals.json +78 -0
- package/test/evals/froid-testarch-test-design/evals.json +136 -0
- package/test/evals/froid-testarch-test-review/evals.json +76 -0
- package/test/evals/froid-testarch-trace/evals.json +62 -0
- package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +30 -0
- package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +22 -0
- package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +20 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +31 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +29 -0
- package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +31 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +28 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +28 -0
- package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
- package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +28 -0
- package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
- package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
- package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
- package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +22 -0
- package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +27 -0
- package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +31 -0
- package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +22 -0
- package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +38 -0
- package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +31 -0
- package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +34 -0
- package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +22 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +28 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +30 -0
- package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +24 -0
- package/test/fixtures/test-review-cli/project/_froid/tea/workflows/testarch/froid-testarch-test-review/SKILL.md +1 -0
- package/test/fixtures/test-review-cli/project-claude/.claude/skills/froid-testarch-test-review/SKILL.md +1 -0
- package/test/fixtures/test-review-cli/project-empty/.gitkeep +0 -0
- package/test/fixtures/test-review-cli/reports/approve-low-score.md +54 -0
- package/test/fixtures/test-review-cli/reports/approve-with-high.md +61 -0
- package/test/fixtures/test-review-cli/reports/approve.md +54 -0
- package/test/fixtures/test-review-cli/reports/bad-value.md +38 -0
- package/test/fixtures/test-review-cli/reports/block.md +102 -0
- package/test/fixtures/test-review-cli/reports/bonus-not-multiple.md +71 -0
- package/test/fixtures/test-review-cli/reports/colon-in-bold.md +51 -0
- package/test/fixtures/test-review-cli/reports/conflicting.md +38 -0
- package/test/fixtures/test-review-cli/reports/context-basis-without-manifest.md +61 -0
- package/test/fixtures/test-review-cli/reports/context-none-with-manifest.md +66 -0
- package/test/fixtures/test-review-cli/reports/context-overlaps-reviewed.md +67 -0
- package/test/fixtures/test-review-cli/reports/context-pr-diff.md +86 -0
- package/test/fixtures/test-review-cli/reports/convention-baseline-unavailable.md +61 -0
- package/test/fixtures/test-review-cli/reports/convention-fabricated.md +62 -0
- package/test/fixtures/test-review-cli/reports/convention-honest-absent.md +61 -0
- package/test/fixtures/test-review-cli/reports/critical-approve.md +38 -0
- package/test/fixtures/test-review-cli/reports/duplicate-breakdown-heading.md +87 -0
- package/test/fixtures/test-review-cli/reports/empty-steps-flow.md +56 -0
- package/test/fixtures/test-review-cli/reports/fenced-recommendation.md +59 -0
- package/test/fixtures/test-review-cli/reports/key-strengths-weaknesses.md +72 -0
- package/test/fixtures/test-review-cli/reports/lowercase.md +53 -0
- package/test/fixtures/test-review-cli/reports/malformed.md +12 -0
- package/test/fixtures/test-review-cli/reports/missing-breakdown.md +46 -0
- package/test/fixtures/test-review-cli/reports/missing-context-basis.md +59 -0
- package/test/fixtures/test-review-cli/reports/missing-decision.md +53 -0
- package/test/fixtures/test-review-cli/reports/missing-frontmatter.md +45 -0
- package/test/fixtures/test-review-cli/reports/missing-reviewed-files.md +49 -0
- package/test/fixtures/test-review-cli/reports/missing-score.md +52 -0
- package/test/fixtures/test-review-cli/reports/missing-violations.md +36 -0
- package/test/fixtures/test-review-cli/reports/plain-bullets-key-strengths.md +62 -0
- package/test/fixtures/test-review-cli/reports/request-changes-critical.md +98 -0
- package/test/fixtures/test-review-cli/reports/request-changes.md +91 -0
- package/test/fixtures/test-review-cli/reports/score-140.md +38 -0
- package/test/fixtures/test-review-cli/reports/score-mismatch.md +57 -0
- package/test/fixtures/test-review-cli/reports/table-breakdown.md +65 -0
- package/test/fixtures/test-review-cli/reports/wrapped-steps-flow.md +58 -0
- package/test/fixtures/test-review-cli/stub-agent.js +398 -0
- package/test/fixtures/test-review-eval/clean/profile.spec.ts +36 -0
- package/test/fixtures/test-review-eval/ground-truth.json +60 -0
- package/test/fixtures/test-review-eval/seeded/checkout.spec.ts +42 -0
- package/test/fixtures/test-review-eval/seeded/orders.service.spec.ts +40 -0
- package/test/schema/agent.js +491 -0
- package/test/test-agent-schema.js +387 -0
- package/test/test-enforce-hook.js +413 -0
- package/test/test-installation-components.js +510 -0
- package/test/test-knowledge-base.js +445 -0
- package/test/test-release-metadata.js +71 -0
- package/test/test-stamp-changelog.js +102 -0
- package/test/test-test-review-cli.js +4830 -0
- package/tools/build-docs.js +575 -0
- package/tools/fix-doc-links.js +288 -0
- package/tools/schema/agent.js +491 -0
- package/tools/stamp-changelog.js +123 -0
- package/tools/validate-agent-schema.js +284 -0
- package/tools/validate-criteria-fragments.js +446 -0
- package/tools/validate-doc-links.js +440 -0
- package/tools/validate-tea-workflow-descriptions.js +123 -0
- package/website/README.md +137 -0
- package/website/astro.config.mjs +189 -0
- package/website/package-lock.json +6856 -0
- package/website/package.json +24 -0
- package/website/public/favicon.ico +0 -0
- package/website/public/img/tea-logo.svg +7 -0
- package/website/public/robots.txt +37 -0
- package/website/src/components/Banner.astro +74 -0
- package/website/src/components/Header.astro +121 -0
- package/website/src/components/MobileMenuFooter.astro +53 -0
- package/website/src/content/config.ts +6 -0
- package/website/src/lib/site-url.js +25 -0
- package/website/src/pages/404.astro +11 -0
- package/website/src/rehype-base-paths.js +89 -0
- package/website/src/rehype-markdown-links.js +117 -0
- package/website/src/styles/custom.css +518 -0
- package/website/tsconfig.json +9 -0
|
@@ -0,0 +1,886 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Integrate Playwright Utils with TEA'
|
|
3
|
+
description: Add production-ready fixtures and utilities to your TEA-generated tests
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Integrate Playwright Utils with TEA
|
|
7
|
+
|
|
8
|
+
Integrate `@seontechnologies/playwright-utils` with TEA to get production-ready fixtures, utilities, and patterns in your test suite.
|
|
9
|
+
|
|
10
|
+
## What is Playwright Utils?
|
|
11
|
+
|
|
12
|
+
A production-ready utility library that provides:
|
|
13
|
+
|
|
14
|
+
- Typed API request helper
|
|
15
|
+
- Authentication session management
|
|
16
|
+
- Network recording and replay (HAR)
|
|
17
|
+
- Network request interception
|
|
18
|
+
- Async polling (recurse)
|
|
19
|
+
- Structured logging
|
|
20
|
+
- File validation (CSV, PDF, XLSX, ZIP)
|
|
21
|
+
- Burn-in testing utilities
|
|
22
|
+
- Network error monitoring
|
|
23
|
+
|
|
24
|
+
**Repository:** [https://github.com/seontechnologies/playwright-utils](https://github.com/seontechnologies/playwright-utils)
|
|
25
|
+
|
|
26
|
+
**npm Package:** `@seontechnologies/playwright-utils`
|
|
27
|
+
|
|
28
|
+
## When to Use This
|
|
29
|
+
|
|
30
|
+
- You want production-ready fixtures (not DIY)
|
|
31
|
+
- Your team benefits from standardized patterns
|
|
32
|
+
- You need utilities like API testing, auth handling, network mocking
|
|
33
|
+
- You want TEA to generate tests using these utilities
|
|
34
|
+
- You're building reusable test infrastructure
|
|
35
|
+
|
|
36
|
+
**Don't use if:**
|
|
37
|
+
|
|
38
|
+
- You're just learning testing (keep it simple first)
|
|
39
|
+
- You have your own fixture library
|
|
40
|
+
- You don't need the utilities
|
|
41
|
+
|
|
42
|
+
## Prerequisites
|
|
43
|
+
|
|
44
|
+
- Test framework setup complete (Playwright)
|
|
45
|
+
- Node.js v18 or later
|
|
46
|
+
|
|
47
|
+
**Note:** Playwright Utils is for Playwright only (not Cypress).
|
|
48
|
+
|
|
49
|
+
## Installation
|
|
50
|
+
|
|
51
|
+
### Step 1: Install Package
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npm install -D @seontechnologies/playwright-utils
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Step 2: Enable in TEA Config
|
|
58
|
+
|
|
59
|
+
Edit `_froid/tea/config.yaml`:
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
tea_use_playwright_utils: true
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Note:** If you enabled this during Froid installation, it's already set.
|
|
66
|
+
|
|
67
|
+
### Step 3: Verify Installation
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Check package installed
|
|
71
|
+
npm list @seontechnologies/playwright-utils
|
|
72
|
+
|
|
73
|
+
# Check TEA config
|
|
74
|
+
grep tea_use_playwright_utils _froid/tea/config.yaml
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Should show (4.4.0 is the current release; yours may be newer):
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
└── @seontechnologies/playwright-utils@4.4.0
|
|
81
|
+
tea_use_playwright_utils: true
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## What Changes When Enabled
|
|
85
|
+
|
|
86
|
+
### The Short Version: It Becomes the Default, Not an Option
|
|
87
|
+
|
|
88
|
+
`tea_use_playwright_utils: true` does not mean "the library is available if you ask for it." It makes `@seontechnologies/playwright-utils` the implementation TEA reaches for on every capability the package covers, without you naming a utility in your prompt. The rule lives in the `playwright-utils-mandate` knowledge fragment, which every generating and reviewing workflow loads first.
|
|
89
|
+
|
|
90
|
+
Two enforcement levels:
|
|
91
|
+
|
|
92
|
+
**REQUIRED** — drop-in, nothing to wire. Generating the vanilla equivalent instead is a defect:
|
|
93
|
+
|
|
94
|
+
| You need | TEA emits | Not |
|
|
95
|
+
| -------------------------------------------- | --------------------------------------------------- | --------------------------------------------------------- |
|
|
96
|
+
| Observe or stub an app API call in a UI test | `interceptNetworkCall({ url, fulfillResponse? })` | `page.route`, `page.waitForResponse` |
|
|
97
|
+
| An HTTP call from a test | `apiRequest({ method, path, body? })` | `request.get/post/...`, `await response.json()` |
|
|
98
|
+
| Wait for an eventually consistent condition | `recurse(fn, predicate, { timeout })` | `page.waitForTimeout`, a `while` loop, bare `expect.poll` |
|
|
99
|
+
| Output the report should show | `log.step` / `log.info` | `console.log` |
|
|
100
|
+
| A test's entry point (spec files) | `import { test } from '../support/merged-fixtures'` | `import { test } from '@playwright/test'` |
|
|
101
|
+
| Reading a downloaded CSV/XLSX/PDF/ZIP | `handleDownload` plus `readCSV` / `readXLSX` / … | a parser per format |
|
|
102
|
+
| Catching a 4xx/5xx a green UI hides | the `network-error-monitor` fixture | per-spec `page.on('response')` handlers |
|
|
103
|
+
|
|
104
|
+
**RECOMMENDED** — needs project-side wiring, so TEA proposes it and scaffolds the wiring when the workflow's scope covers setup: `auth-session` (an auth provider), `network-recorder` (a HAR directory), the webhook module (a mock provider), `burn-in` (a config file and a script). TEA never silently drops to the vanilla equivalent without saying so in the output.
|
|
105
|
+
|
|
106
|
+
**Real exceptions still ship.** `page.route` blocking analytics, fonts, or third-party scripts is correct and is not a deviation. Where a genuine gap exists, the generated code carries `// playwright-utils deviation: <reason>` and the workflow's summary lists it, so nothing slips through unexplained.
|
|
107
|
+
|
|
108
|
+
The entry-point rule is about **spec files**. The merged-fixtures module itself imports `mergeTests` and re-exports `expect` from `@playwright/test`, and the examples below show exactly that; it is the one file that must reach for Playwright directly.
|
|
109
|
+
|
|
110
|
+
**Scope.** The mandate covers JavaScript/TypeScript suites on the Playwright runner, browser and API alike. Cypress, Maestro flows, Pact/Vitest contract suites, and backend suites in pytest, JUnit, Go test, xUnit, or RSpec are untouched by it.
|
|
111
|
+
|
|
112
|
+
### `framework` Workflow
|
|
113
|
+
|
|
114
|
+
**Vanilla Playwright:**
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
// Basic Playwright fixtures only
|
|
118
|
+
import { test, expect } from '@playwright/test';
|
|
119
|
+
|
|
120
|
+
test('api test', async ({ request }) => {
|
|
121
|
+
const response = await request.get('/api/users');
|
|
122
|
+
const users = await response.json();
|
|
123
|
+
expect(response.status()).toBe(200);
|
|
124
|
+
});
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**With Playwright Utils (Merged Fixtures):**
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
// Merge the fixtures your project needs into one test object
|
|
131
|
+
import { expect, mergeTests } from '@playwright/test';
|
|
132
|
+
import { log } from '@seontechnologies/playwright-utils';
|
|
133
|
+
import { test as apiRequestFixture } from '@seontechnologies/playwright-utils/api-request/fixtures';
|
|
134
|
+
// Auth fixture built in your project (setAuthProvider + createAuthFixtures)
|
|
135
|
+
import { test as authFixture } from './support/auth/auth-fixture';
|
|
136
|
+
|
|
137
|
+
const test = mergeTests(authFixture, apiRequestFixture);
|
|
138
|
+
|
|
139
|
+
test('api test', async ({ apiRequest, authToken }) => {
|
|
140
|
+
const { status, body } = await apiRequest({
|
|
141
|
+
method: 'GET',
|
|
142
|
+
path: '/api/users',
|
|
143
|
+
headers: { Authorization: `Bearer ${authToken}` },
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
await log.info('Fetched users');
|
|
147
|
+
expect(status).toBe(200);
|
|
148
|
+
});
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**With Playwright Utils (Selective Merge):**
|
|
152
|
+
|
|
153
|
+
```typescript
|
|
154
|
+
import { expect, mergeTests } from '@playwright/test';
|
|
155
|
+
import { log } from '@seontechnologies/playwright-utils';
|
|
156
|
+
import { test as apiRequestFixture } from '@seontechnologies/playwright-utils/api-request/fixtures';
|
|
157
|
+
import { test as interceptNetworkCallFixture } from '@seontechnologies/playwright-utils/intercept-network-call/fixtures';
|
|
158
|
+
|
|
159
|
+
export const test = mergeTests(apiRequestFixture, interceptNetworkCallFixture);
|
|
160
|
+
export { expect, log };
|
|
161
|
+
|
|
162
|
+
test('api test', async ({ apiRequest }) => {
|
|
163
|
+
await log.info('Fetching users');
|
|
164
|
+
const { status, body } = await apiRequest({
|
|
165
|
+
method: 'GET',
|
|
166
|
+
path: '/api/users',
|
|
167
|
+
});
|
|
168
|
+
expect(status).toBe(200);
|
|
169
|
+
});
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### `atdd` and `automate` Workflows
|
|
173
|
+
|
|
174
|
+
**Without Playwright Utils:**
|
|
175
|
+
|
|
176
|
+
```typescript
|
|
177
|
+
// Manual API calls
|
|
178
|
+
test('should fetch profile', async ({ page, request }) => {
|
|
179
|
+
const response = await request.get('/api/profile');
|
|
180
|
+
const profile = await response.json();
|
|
181
|
+
// Manual parsing and validation
|
|
182
|
+
});
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**With Playwright Utils:**
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
import { test } from '@seontechnologies/playwright-utils/api-request/fixtures';
|
|
189
|
+
|
|
190
|
+
test('should fetch profile', async ({ apiRequest }) => {
|
|
191
|
+
const { status, body } = await apiRequest({
|
|
192
|
+
method: 'GET',
|
|
193
|
+
path: '/api/profile', // 'path' not 'url'
|
|
194
|
+
}).validateSchema(ProfileSchema); // Chained validation
|
|
195
|
+
|
|
196
|
+
expect(status).toBe(200);
|
|
197
|
+
// body is type-safe: { id: string, name: string, email: string }
|
|
198
|
+
});
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### `test-review` Workflow
|
|
202
|
+
|
|
203
|
+
**Without Playwright Utils:**
|
|
204
|
+
Reviews against generic Playwright patterns
|
|
205
|
+
|
|
206
|
+
**With Playwright Utils:**
|
|
207
|
+
Reviews against playwright-utils best practices:
|
|
208
|
+
|
|
209
|
+
- Fixture composition patterns
|
|
210
|
+
- Utility usage (apiRequest, authSession, etc.)
|
|
211
|
+
- Network-first patterns
|
|
212
|
+
- Structured logging
|
|
213
|
+
|
|
214
|
+
### `ci` Workflow
|
|
215
|
+
|
|
216
|
+
**Without Playwright Utils:**
|
|
217
|
+
|
|
218
|
+
- Parallel sharding
|
|
219
|
+
- Burn-in loops (basic shell scripts)
|
|
220
|
+
- CI triggers (PR, push, schedule)
|
|
221
|
+
- Artifact collection
|
|
222
|
+
|
|
223
|
+
**With Playwright Utils:**
|
|
224
|
+
Enhanced with smart testing:
|
|
225
|
+
|
|
226
|
+
- Burn-in utility (git diff-based, volume control)
|
|
227
|
+
- Selective testing (skip config/docs/types changes)
|
|
228
|
+
- Test prioritization by file changes
|
|
229
|
+
|
|
230
|
+
## Available Utilities
|
|
231
|
+
|
|
232
|
+
### api-request
|
|
233
|
+
|
|
234
|
+
Typed HTTP client with schema validation.
|
|
235
|
+
|
|
236
|
+
**Official Docs:** <https://seontechnologies.github.io/playwright-utils/api-request.html>
|
|
237
|
+
|
|
238
|
+
**Why Use This?**
|
|
239
|
+
|
|
240
|
+
| Vanilla Playwright | api-request Utility |
|
|
241
|
+
| ------------------------------------------- | ------------------------------------ |
|
|
242
|
+
| Manual `await response.json()` | Automatic JSON parsing |
|
|
243
|
+
| `response.status()` + separate body parsing | Returns `{ status, body }` structure |
|
|
244
|
+
| No built-in retry | Automatic retry for 5xx errors |
|
|
245
|
+
| No schema validation | Single-line `.validateSchema()` |
|
|
246
|
+
| Verbose status checking | Clean destructuring |
|
|
247
|
+
|
|
248
|
+
**Usage:**
|
|
249
|
+
|
|
250
|
+
```typescript
|
|
251
|
+
import { test } from '@seontechnologies/playwright-utils/api-request/fixtures';
|
|
252
|
+
import { expect } from '@playwright/test';
|
|
253
|
+
import { z } from 'zod';
|
|
254
|
+
|
|
255
|
+
const UserSchema = z.object({
|
|
256
|
+
id: z.string(),
|
|
257
|
+
name: z.string(),
|
|
258
|
+
email: z.string().email(),
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
test('should create user', async ({ apiRequest }) => {
|
|
262
|
+
const { status, body } = await apiRequest({
|
|
263
|
+
method: 'POST',
|
|
264
|
+
path: '/api/users', // Note: 'path' not 'url'
|
|
265
|
+
body: { name: 'Test User', email: 'test@example.com' }, // Note: 'body' not 'data'
|
|
266
|
+
}).validateSchema(UserSchema); // Chained method (can await separately if needed)
|
|
267
|
+
|
|
268
|
+
expect(status).toBe(201);
|
|
269
|
+
expect(body.id).toBeDefined();
|
|
270
|
+
expect(body.email).toBe('test@example.com');
|
|
271
|
+
});
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
**Benefits:**
|
|
275
|
+
|
|
276
|
+
- Returns `{ status, body }` structure
|
|
277
|
+
- Schema validation with `.validateSchema()` chained method
|
|
278
|
+
- Automatic retry for 5xx errors
|
|
279
|
+
- Type-safe response body
|
|
280
|
+
|
|
281
|
+
### auth-session
|
|
282
|
+
|
|
283
|
+
Authentication session management with token persistence.
|
|
284
|
+
|
|
285
|
+
**Official Docs:** <https://seontechnologies.github.io/playwright-utils/auth-session.html>
|
|
286
|
+
|
|
287
|
+
**Why Use This?**
|
|
288
|
+
|
|
289
|
+
| Vanilla Playwright Auth | auth-session |
|
|
290
|
+
| ------------------------------------- | ------------------------------------ |
|
|
291
|
+
| Re-authenticate every test run (slow) | Authenticate once, persist to disk |
|
|
292
|
+
| Single user per setup | Multi-user support (roles, accounts) |
|
|
293
|
+
| No token expiration handling | Automatic token renewal |
|
|
294
|
+
| Manual session management | Provider pattern (flexible auth) |
|
|
295
|
+
|
|
296
|
+
**Usage:**
|
|
297
|
+
|
|
298
|
+
```typescript
|
|
299
|
+
import { test as base, expect } from '@playwright/test';
|
|
300
|
+
import { createAuthFixtures, setAuthProvider } from '@seontechnologies/playwright-utils/auth-session';
|
|
301
|
+
import myCustomProvider from './support/auth/provider';
|
|
302
|
+
|
|
303
|
+
setAuthProvider(myCustomProvider); // Register before creating the fixtures
|
|
304
|
+
const test = base.extend(createAuthFixtures());
|
|
305
|
+
|
|
306
|
+
test('should access protected route', async ({ page, authToken }) => {
|
|
307
|
+
// authToken automatically fetched and persisted
|
|
308
|
+
// No manual login needed - handled by fixture
|
|
309
|
+
|
|
310
|
+
await page.goto('/dashboard');
|
|
311
|
+
await expect(page).toHaveURL('/dashboard');
|
|
312
|
+
|
|
313
|
+
// Token is reused across tests (persisted to disk)
|
|
314
|
+
});
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
**Configuration required** (see auth-session docs for provider setup):
|
|
318
|
+
|
|
319
|
+
```typescript
|
|
320
|
+
// global-setup.ts
|
|
321
|
+
import { authStorageInit, setAuthProvider, authGlobalInit } from '@seontechnologies/playwright-utils/auth-session';
|
|
322
|
+
|
|
323
|
+
async function globalSetup() {
|
|
324
|
+
authStorageInit();
|
|
325
|
+
setAuthProvider(myCustomProvider); // Define your auth mechanism
|
|
326
|
+
await authGlobalInit(); // Fetch token once
|
|
327
|
+
}
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
**Benefits:**
|
|
331
|
+
|
|
332
|
+
- Token fetched once, reused across all tests
|
|
333
|
+
- Persisted to disk (faster subsequent runs)
|
|
334
|
+
- Multi-user support via `authOptions.userIdentifier`
|
|
335
|
+
- Automatic token renewal if expired
|
|
336
|
+
|
|
337
|
+
### network-recorder
|
|
338
|
+
|
|
339
|
+
Record and replay network traffic (HAR) for offline testing.
|
|
340
|
+
|
|
341
|
+
**Official Docs:** <https://seontechnologies.github.io/playwright-utils/network-recorder.html>
|
|
342
|
+
|
|
343
|
+
**Why Use This?**
|
|
344
|
+
|
|
345
|
+
| Vanilla Playwright HAR | network-recorder |
|
|
346
|
+
| ------------------------------------- | ------------------------------------------- |
|
|
347
|
+
| Manual `routeFromHAR()` configuration | Automatic HAR management with `PW_NET_MODE` |
|
|
348
|
+
| Separate record/playback test files | Same test, switch env var |
|
|
349
|
+
| No CRUD detection | Stateful mocking (POST/PUT/DELETE work) |
|
|
350
|
+
| Manual HAR file paths | Auto-organized by test name |
|
|
351
|
+
|
|
352
|
+
**Usage:**
|
|
353
|
+
|
|
354
|
+
```typescript
|
|
355
|
+
import { test } from '@seontechnologies/playwright-utils/network-recorder/fixtures';
|
|
356
|
+
|
|
357
|
+
// Record mode: Set environment variable
|
|
358
|
+
process.env.PW_NET_MODE = 'record';
|
|
359
|
+
|
|
360
|
+
test('should work with recorded traffic', async ({ page, context, networkRecorder }) => {
|
|
361
|
+
// Setup recorder (records or replays based on PW_NET_MODE)
|
|
362
|
+
await networkRecorder.setup(context);
|
|
363
|
+
|
|
364
|
+
// Your normal test code
|
|
365
|
+
await page.goto('/dashboard');
|
|
366
|
+
await page.click('#add-item');
|
|
367
|
+
|
|
368
|
+
// First run (record): Saves traffic to HAR file
|
|
369
|
+
// Subsequent runs (playback): Uses HAR file, no backend needed
|
|
370
|
+
});
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
**Switch modes:**
|
|
374
|
+
|
|
375
|
+
```bash
|
|
376
|
+
# Record traffic
|
|
377
|
+
PW_NET_MODE=record npx playwright test
|
|
378
|
+
|
|
379
|
+
# Playback traffic (offline)
|
|
380
|
+
PW_NET_MODE=playback npx playwright test
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
**Benefits:**
|
|
384
|
+
|
|
385
|
+
- Offline testing (no backend needed)
|
|
386
|
+
- Deterministic responses (same every time)
|
|
387
|
+
- Faster execution (no network latency)
|
|
388
|
+
- Stateful mocking (CRUD operations work)
|
|
389
|
+
|
|
390
|
+
### intercept-network-call
|
|
391
|
+
|
|
392
|
+
Spy or stub network requests with automatic JSON parsing.
|
|
393
|
+
|
|
394
|
+
**Official Docs:** <https://seontechnologies.github.io/playwright-utils/intercept-network-call.html>
|
|
395
|
+
|
|
396
|
+
**Why Use This?**
|
|
397
|
+
|
|
398
|
+
| Vanilla Playwright | interceptNetworkCall |
|
|
399
|
+
| ----------------------------------------------- | --------------------------------------- |
|
|
400
|
+
| Route setup + response waiting (separate steps) | Single declarative call |
|
|
401
|
+
| Manual `await response.json()` | Automatic JSON parsing (`responseJson`) |
|
|
402
|
+
| Complex filter predicates | Simple glob patterns (`**/api/**`) |
|
|
403
|
+
| Verbose syntax | Concise, readable API |
|
|
404
|
+
|
|
405
|
+
**Usage:**
|
|
406
|
+
|
|
407
|
+
```typescript
|
|
408
|
+
import { expect } from '@playwright/test';
|
|
409
|
+
import { test } from '@seontechnologies/playwright-utils/intercept-network-call/fixtures';
|
|
410
|
+
|
|
411
|
+
test('should handle API errors', async ({ page, interceptNetworkCall }) => {
|
|
412
|
+
// Stub API to return error (set up BEFORE navigation)
|
|
413
|
+
const profileCall = interceptNetworkCall({
|
|
414
|
+
method: 'GET',
|
|
415
|
+
url: '**/api/profile',
|
|
416
|
+
fulfillResponse: {
|
|
417
|
+
status: 500,
|
|
418
|
+
body: { error: 'Server error' },
|
|
419
|
+
},
|
|
420
|
+
});
|
|
421
|
+
|
|
422
|
+
await page.goto('/profile');
|
|
423
|
+
|
|
424
|
+
// Wait for the intercepted response
|
|
425
|
+
const { status, responseJson } = await profileCall;
|
|
426
|
+
|
|
427
|
+
expect(status).toBe(500);
|
|
428
|
+
expect(responseJson.error).toBe('Server error');
|
|
429
|
+
await expect(page.getByText('Server error occurred')).toBeVisible();
|
|
430
|
+
});
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
**Benefits:**
|
|
434
|
+
|
|
435
|
+
- Automatic JSON parsing (`responseJson` ready to use)
|
|
436
|
+
- Spy mode (observe real traffic) or stub mode (mock responses)
|
|
437
|
+
- Glob pattern URL matching
|
|
438
|
+
- Returns promise with `{ status, responseJson, requestJson }`
|
|
439
|
+
|
|
440
|
+
### recurse
|
|
441
|
+
|
|
442
|
+
Async polling for eventual consistency (Cypress-style).
|
|
443
|
+
|
|
444
|
+
**Official Docs:** <https://seontechnologies.github.io/playwright-utils/recurse.html>
|
|
445
|
+
|
|
446
|
+
**Why Use This?**
|
|
447
|
+
|
|
448
|
+
| Manual Polling | recurse Utility |
|
|
449
|
+
| ----------------------------------- | -------------------------------------- |
|
|
450
|
+
| `while` loops with `waitForTimeout` | Smart polling with exponential backoff |
|
|
451
|
+
| Hard-coded retry logic | Configurable timeout/interval |
|
|
452
|
+
| No logging visibility | Optional logging with custom messages |
|
|
453
|
+
| Verbose, error-prone | Clean, readable API |
|
|
454
|
+
|
|
455
|
+
**Usage:**
|
|
456
|
+
|
|
457
|
+
```typescript
|
|
458
|
+
import { expect, mergeTests } from '@playwright/test';
|
|
459
|
+
import { test as apiRequestFixture } from '@seontechnologies/playwright-utils/api-request/fixtures';
|
|
460
|
+
import { test as recurseFixture } from '@seontechnologies/playwright-utils/recurse/fixtures';
|
|
461
|
+
|
|
462
|
+
const test = mergeTests(apiRequestFixture, recurseFixture);
|
|
463
|
+
|
|
464
|
+
test('should wait for async job completion', async ({ apiRequest, recurse }) => {
|
|
465
|
+
// Start async job
|
|
466
|
+
const { body: job } = await apiRequest({
|
|
467
|
+
method: 'POST',
|
|
468
|
+
path: '/api/jobs'
|
|
469
|
+
});
|
|
470
|
+
|
|
471
|
+
// Poll until complete (smart waiting)
|
|
472
|
+
const completed = await recurse(
|
|
473
|
+
() => apiRequest({ method: 'GET', path: `/api/jobs/${job.id}` }),
|
|
474
|
+
(result) => result.body.status === 'completed',
|
|
475
|
+
{
|
|
476
|
+
timeout: 30000,
|
|
477
|
+
interval: 2000,
|
|
478
|
+
log: 'Waiting for job to complete'
|
|
479
|
+
}
|
|
480
|
+
});
|
|
481
|
+
|
|
482
|
+
expect(completed.body.status).toBe('completed');
|
|
483
|
+
});
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
**Benefits:**
|
|
487
|
+
|
|
488
|
+
- Smart polling with configurable interval
|
|
489
|
+
- Handles async jobs, background tasks
|
|
490
|
+
- Optional logging for debugging
|
|
491
|
+
- Better than hard waits or manual polling loops
|
|
492
|
+
|
|
493
|
+
### log
|
|
494
|
+
|
|
495
|
+
Structured logging that integrates with Playwright reports.
|
|
496
|
+
|
|
497
|
+
**Official Docs:** <https://seontechnologies.github.io/playwright-utils/log.html>
|
|
498
|
+
|
|
499
|
+
**Why Use This?**
|
|
500
|
+
|
|
501
|
+
| Console.log / print | log Utility |
|
|
502
|
+
| ------------------------ | ---------------------------------- |
|
|
503
|
+
| Not in test reports | Integrated with Playwright reports |
|
|
504
|
+
| No step visualization | `.step()` shows in Playwright UI |
|
|
505
|
+
| Manual object formatting | Logs objects seamlessly |
|
|
506
|
+
| No structured output | JSON artifacts for debugging |
|
|
507
|
+
|
|
508
|
+
**Usage:**
|
|
509
|
+
|
|
510
|
+
```typescript
|
|
511
|
+
import { log } from '@seontechnologies/playwright-utils';
|
|
512
|
+
import { test, expect } from '@playwright/test';
|
|
513
|
+
|
|
514
|
+
test('should login', async ({ page }) => {
|
|
515
|
+
await log.info('Starting login test');
|
|
516
|
+
|
|
517
|
+
await page.goto('/login');
|
|
518
|
+
await log.step('Navigated to login page'); // Shows in Playwright UI
|
|
519
|
+
|
|
520
|
+
await page.getByLabel('Email').fill('test@example.com');
|
|
521
|
+
await log.debug('Filled email field');
|
|
522
|
+
|
|
523
|
+
await log.success('Login completed');
|
|
524
|
+
// Logs appear in test output and Playwright reports
|
|
525
|
+
});
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
**Benefits:**
|
|
529
|
+
|
|
530
|
+
- Direct import (no fixture needed for basic usage)
|
|
531
|
+
- Structured logs in test reports
|
|
532
|
+
- `.step()` shows in Playwright UI
|
|
533
|
+
- Logs objects seamlessly (no special handling needed)
|
|
534
|
+
- Trace test execution
|
|
535
|
+
|
|
536
|
+
### file-utils
|
|
537
|
+
|
|
538
|
+
Read and validate CSV, PDF, XLSX, ZIP files.
|
|
539
|
+
|
|
540
|
+
**Official Docs:** <https://seontechnologies.github.io/playwright-utils/file-utils.html>
|
|
541
|
+
|
|
542
|
+
**Why Use This?**
|
|
543
|
+
|
|
544
|
+
| Vanilla Playwright | file-utils |
|
|
545
|
+
| ------------------------------ | ---------------------------------------- |
|
|
546
|
+
| ~80 lines per CSV flow | ~10 lines end-to-end |
|
|
547
|
+
| Manual download event handling | `handleDownload()` encapsulates all |
|
|
548
|
+
| External parsing libraries | Auto-parsing (CSV, XLSX, PDF, ZIP) |
|
|
549
|
+
| No validation helpers | Built-in validation (headers, row count) |
|
|
550
|
+
|
|
551
|
+
**Usage:**
|
|
552
|
+
|
|
553
|
+
```typescript
|
|
554
|
+
import { handleDownload, readCSV } from '@seontechnologies/playwright-utils/file-utils';
|
|
555
|
+
import { expect } from '@playwright/test';
|
|
556
|
+
import path from 'node:path';
|
|
557
|
+
|
|
558
|
+
const DOWNLOAD_DIR = path.join(__dirname, '../downloads');
|
|
559
|
+
|
|
560
|
+
test('should export valid CSV', async ({ page }) => {
|
|
561
|
+
// Handle download and get file path
|
|
562
|
+
const downloadPath = await handleDownload({
|
|
563
|
+
page,
|
|
564
|
+
downloadDir: DOWNLOAD_DIR,
|
|
565
|
+
trigger: () => page.click('button:has-text("Export")'),
|
|
566
|
+
});
|
|
567
|
+
|
|
568
|
+
// Read and parse CSV
|
|
569
|
+
const csvResult = await readCSV({ filePath: downloadPath });
|
|
570
|
+
const { data, headers } = csvResult.content;
|
|
571
|
+
|
|
572
|
+
// Validate structure
|
|
573
|
+
expect(headers).toEqual(['Name', 'Email', 'Status']);
|
|
574
|
+
expect(data.length).toBeGreaterThan(0);
|
|
575
|
+
expect(data[0]).toMatchObject({
|
|
576
|
+
Name: expect.any(String),
|
|
577
|
+
Email: expect.any(String),
|
|
578
|
+
Status: expect.any(String),
|
|
579
|
+
});
|
|
580
|
+
});
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
**Benefits:**
|
|
584
|
+
|
|
585
|
+
- Handles downloads automatically
|
|
586
|
+
- Auto-parses CSV, XLSX, PDF, ZIP
|
|
587
|
+
- Type-safe access to parsed data
|
|
588
|
+
- Returns structured `{ headers, data }`
|
|
589
|
+
|
|
590
|
+
### burn-in
|
|
591
|
+
|
|
592
|
+
Smart test selection with git diff analysis for CI optimization.
|
|
593
|
+
|
|
594
|
+
**Official Docs:** <https://seontechnologies.github.io/playwright-utils/burn-in.html>
|
|
595
|
+
|
|
596
|
+
**Why Use This?**
|
|
597
|
+
|
|
598
|
+
| Playwright `--only-changed` | burn-in Utility |
|
|
599
|
+
| -------------------------------- | ------------------------------------------- |
|
|
600
|
+
| Config changes trigger all tests | Smart filtering (skip configs, types, docs) |
|
|
601
|
+
| All or nothing | Volume control (run percentage) |
|
|
602
|
+
| No customization | Custom dependency analysis |
|
|
603
|
+
| Slow CI on minor changes | Fast CI with intelligent selection |
|
|
604
|
+
|
|
605
|
+
**Usage:**
|
|
606
|
+
|
|
607
|
+
```typescript
|
|
608
|
+
// scripts/burn-in-changed.ts
|
|
609
|
+
import { runBurnIn } from '@seontechnologies/playwright-utils/burn-in';
|
|
610
|
+
|
|
611
|
+
async function main() {
|
|
612
|
+
await runBurnIn({
|
|
613
|
+
configPath: 'playwright.burn-in.config.ts',
|
|
614
|
+
baseBranch: 'main',
|
|
615
|
+
});
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
main().catch(console.error);
|
|
619
|
+
```
|
|
620
|
+
|
|
621
|
+
**Config:**
|
|
622
|
+
|
|
623
|
+
```typescript
|
|
624
|
+
// playwright.burn-in.config.ts
|
|
625
|
+
import type { BurnInConfig } from '@seontechnologies/playwright-utils/burn-in';
|
|
626
|
+
|
|
627
|
+
const config: BurnInConfig = {
|
|
628
|
+
skipBurnInPatterns: ['**/config/**', '**/*.md', '**/*types*'],
|
|
629
|
+
burnInTestPercentage: 0.3,
|
|
630
|
+
burnIn: {
|
|
631
|
+
repeatEach: 3,
|
|
632
|
+
retries: 1,
|
|
633
|
+
},
|
|
634
|
+
};
|
|
635
|
+
|
|
636
|
+
export default config;
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
**Package script:**
|
|
640
|
+
|
|
641
|
+
```json
|
|
642
|
+
{
|
|
643
|
+
"scripts": {
|
|
644
|
+
"test:burn-in": "tsx scripts/burn-in-changed.ts"
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
**Benefits:**
|
|
650
|
+
|
|
651
|
+
- **Ensure flake-free tests upfront** - Never deal with test flake again
|
|
652
|
+
- Smart filtering (skip config, types, docs changes)
|
|
653
|
+
- Volume control (run percentage of affected tests)
|
|
654
|
+
- Git diff-based test selection
|
|
655
|
+
- Faster CI feedback
|
|
656
|
+
|
|
657
|
+
### network-error-monitor
|
|
658
|
+
|
|
659
|
+
Automatically detect HTTP 4xx/5xx errors during tests.
|
|
660
|
+
|
|
661
|
+
**Official Docs:** <https://seontechnologies.github.io/playwright-utils/network-error-monitor.html>
|
|
662
|
+
|
|
663
|
+
**Why Use This?**
|
|
664
|
+
|
|
665
|
+
| Vanilla Playwright | network-error-monitor |
|
|
666
|
+
| ------------------------------ | ------------------------------- |
|
|
667
|
+
| UI passes, backend 500 ignored | Auto-fails on any 4xx/5xx |
|
|
668
|
+
| Manual error checking | Zero boilerplate (auto-enabled) |
|
|
669
|
+
| Silent failures slip through | Acts like Sentry for tests |
|
|
670
|
+
| No domino effect prevention | Limits cascading failures |
|
|
671
|
+
|
|
672
|
+
**Usage:**
|
|
673
|
+
|
|
674
|
+
```typescript
|
|
675
|
+
import { test } from '@seontechnologies/playwright-utils/network-error-monitor/fixtures';
|
|
676
|
+
|
|
677
|
+
// Network monitoring is enabled from here on
|
|
678
|
+
test('should not have API errors', async ({ page }) => {
|
|
679
|
+
await page.goto('/dashboard');
|
|
680
|
+
await page.click('button');
|
|
681
|
+
|
|
682
|
+
// Test fails automatically if any HTTP 4xx/5xx errors occur
|
|
683
|
+
// Error message shows: "Network errors detected: 2 request(s) failed"
|
|
684
|
+
// GET 500 https://api.example.com/users
|
|
685
|
+
// POST 503 https://api.example.com/metrics
|
|
686
|
+
});
|
|
687
|
+
```
|
|
688
|
+
|
|
689
|
+
**Opt-out for validation tests:**
|
|
690
|
+
|
|
691
|
+
```typescript
|
|
692
|
+
// When testing error scenarios, opt-out with annotation
|
|
693
|
+
test(
|
|
694
|
+
'should show error message on 404',
|
|
695
|
+
{ annotation: [{ type: 'skipNetworkMonitoring' }] }, // Array format
|
|
696
|
+
async ({ page }) => {
|
|
697
|
+
await page.goto('/invalid-page'); // Will 404
|
|
698
|
+
await expect(page.getByText('Page not found')).toBeVisible();
|
|
699
|
+
// Test won't fail on 404 because of annotation
|
|
700
|
+
},
|
|
701
|
+
);
|
|
702
|
+
|
|
703
|
+
// Or opt-out entire describe block
|
|
704
|
+
test.describe('error handling', { annotation: [{ type: 'skipNetworkMonitoring' }] }, () => {
|
|
705
|
+
test('handles 404', async ({ page }) => {
|
|
706
|
+
// Monitoring disabled for all tests in block
|
|
707
|
+
});
|
|
708
|
+
});
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
**Benefits:**
|
|
712
|
+
|
|
713
|
+
- Auto-enabled (zero setup)
|
|
714
|
+
- Catches silent backend failures (500, 503, 504)
|
|
715
|
+
- **Prevents domino effect** (limits cascading failures from one bad endpoint)
|
|
716
|
+
- Opt-out with annotations for validation tests
|
|
717
|
+
- Structured error reporting (JSON artifacts)
|
|
718
|
+
|
|
719
|
+
## Fixture Composition
|
|
720
|
+
|
|
721
|
+
**Option 1: Merge Fixtures Inline (Simplest)**
|
|
722
|
+
|
|
723
|
+
```typescript
|
|
724
|
+
// Merge the fixtures this spec needs
|
|
725
|
+
import { expect, mergeTests } from '@playwright/test';
|
|
726
|
+
import { log } from '@seontechnologies/playwright-utils';
|
|
727
|
+
import { test as apiRequestFixture } from '@seontechnologies/playwright-utils/api-request/fixtures';
|
|
728
|
+
import { test as interceptNetworkCallFixture } from '@seontechnologies/playwright-utils/intercept-network-call/fixtures';
|
|
729
|
+
|
|
730
|
+
const test = mergeTests(apiRequestFixture, interceptNetworkCallFixture);
|
|
731
|
+
|
|
732
|
+
test('api test', async ({ apiRequest, interceptNetworkCall }) => {
|
|
733
|
+
await log.info('Fetching users');
|
|
734
|
+
|
|
735
|
+
const { status, body } = await apiRequest({
|
|
736
|
+
method: 'GET',
|
|
737
|
+
path: '/api/users',
|
|
738
|
+
});
|
|
739
|
+
|
|
740
|
+
expect(status).toBe(200);
|
|
741
|
+
});
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
**Option 2: Create Custom Merged Fixtures (Selective)**
|
|
745
|
+
|
|
746
|
+
**File 1: support/merged-fixtures.ts**
|
|
747
|
+
|
|
748
|
+
```typescript
|
|
749
|
+
import { test as base, mergeTests } from '@playwright/test';
|
|
750
|
+
import { test as apiRequest } from '@seontechnologies/playwright-utils/api-request/fixtures';
|
|
751
|
+
import { test as interceptNetworkCall } from '@seontechnologies/playwright-utils/intercept-network-call/fixtures';
|
|
752
|
+
import { test as networkErrorMonitor } from '@seontechnologies/playwright-utils/network-error-monitor/fixtures';
|
|
753
|
+
import { log } from '@seontechnologies/playwright-utils';
|
|
754
|
+
|
|
755
|
+
// Merge only what you need
|
|
756
|
+
export const test = mergeTests(base, apiRequest, interceptNetworkCall, networkErrorMonitor);
|
|
757
|
+
|
|
758
|
+
export const expect = base.expect;
|
|
759
|
+
export { log };
|
|
760
|
+
```
|
|
761
|
+
|
|
762
|
+
**File 2: tests/api/users.spec.ts**
|
|
763
|
+
|
|
764
|
+
```typescript
|
|
765
|
+
import { test, expect, log } from '../support/merged-fixtures';
|
|
766
|
+
|
|
767
|
+
test('api test', async ({ apiRequest, interceptNetworkCall }) => {
|
|
768
|
+
await log.info('Fetching users');
|
|
769
|
+
|
|
770
|
+
const { status, body } = await apiRequest({
|
|
771
|
+
method: 'GET',
|
|
772
|
+
path: '/api/users',
|
|
773
|
+
});
|
|
774
|
+
|
|
775
|
+
expect(status).toBe(200);
|
|
776
|
+
});
|
|
777
|
+
```
|
|
778
|
+
|
|
779
|
+
**Contrast:**
|
|
780
|
+
|
|
781
|
+
- Option 1: All utilities available, zero setup
|
|
782
|
+
- Option 2: Pick utilities you need, one central file
|
|
783
|
+
|
|
784
|
+
**See working examples:** <https://github.com/seontechnologies/playwright-utils/tree/main/playwright/support>
|
|
785
|
+
|
|
786
|
+
## Troubleshooting
|
|
787
|
+
|
|
788
|
+
### Import Errors
|
|
789
|
+
|
|
790
|
+
**Problem:** Cannot find module '@seontechnologies/playwright-utils/api-request'
|
|
791
|
+
|
|
792
|
+
**Solution:**
|
|
793
|
+
|
|
794
|
+
```bash
|
|
795
|
+
# Verify package installed
|
|
796
|
+
npm list @seontechnologies/playwright-utils
|
|
797
|
+
|
|
798
|
+
# Check package.json has correct version
|
|
799
|
+
"@seontechnologies/playwright-utils": "^2.0.0"
|
|
800
|
+
|
|
801
|
+
# Reinstall if needed
|
|
802
|
+
npm install -D @seontechnologies/playwright-utils
|
|
803
|
+
```
|
|
804
|
+
|
|
805
|
+
### TEA Not Using Utilities
|
|
806
|
+
|
|
807
|
+
**Problem:** TEA generates tests without playwright-utils.
|
|
808
|
+
|
|
809
|
+
**Causes:**
|
|
810
|
+
|
|
811
|
+
1. Config not set: `tea_use_playwright_utils: false`
|
|
812
|
+
2. Workflow run before config change
|
|
813
|
+
3. Package not installed
|
|
814
|
+
|
|
815
|
+
**Solution:**
|
|
816
|
+
|
|
817
|
+
```bash
|
|
818
|
+
# Check config
|
|
819
|
+
grep tea_use_playwright_utils _froid/tea/config.yaml
|
|
820
|
+
|
|
821
|
+
# Should show: tea_use_playwright_utils: true
|
|
822
|
+
|
|
823
|
+
# Start fresh chat (TEA loads config at start)
|
|
824
|
+
```
|
|
825
|
+
|
|
826
|
+
### Type Errors with apiRequest
|
|
827
|
+
|
|
828
|
+
**Problem:** TypeScript errors on apiRequest response.
|
|
829
|
+
|
|
830
|
+
**Cause:** No schema validation.
|
|
831
|
+
|
|
832
|
+
**Solution:**
|
|
833
|
+
|
|
834
|
+
```typescript
|
|
835
|
+
// Add Zod schema for type safety
|
|
836
|
+
import { z } from 'zod';
|
|
837
|
+
|
|
838
|
+
const ProfileSchema = z.object({
|
|
839
|
+
id: z.string(),
|
|
840
|
+
name: z.string(),
|
|
841
|
+
email: z.string().email(),
|
|
842
|
+
});
|
|
843
|
+
|
|
844
|
+
const { status, body } = await apiRequest({
|
|
845
|
+
method: 'GET',
|
|
846
|
+
path: '/api/profile', // 'path' not 'url'
|
|
847
|
+
}).validateSchema(ProfileSchema); // Chained method
|
|
848
|
+
|
|
849
|
+
expect(status).toBe(200);
|
|
850
|
+
// body is typed as { id: string, name: string, email: string }
|
|
851
|
+
```
|
|
852
|
+
|
|
853
|
+
## Migration Guide
|
|
854
|
+
|
|
855
|
+
## Related Guides
|
|
856
|
+
|
|
857
|
+
- [Integrate Pact.js Utils](/docs/how-to/customization/integrate-pactjs-utils.md) — the same mandate shape for contract testing
|
|
858
|
+
|
|
859
|
+
**Getting Started:**
|
|
860
|
+
|
|
861
|
+
- [TEA Lite Quickstart Tutorial](/docs/tutorials/tea-lite-quickstart.md) - Learn TEA basics
|
|
862
|
+
- [How to Set Up Test Framework](/docs/how-to/workflows/setup-test-framework.md) - Initial framework setup
|
|
863
|
+
|
|
864
|
+
**Workflow Guides:**
|
|
865
|
+
|
|
866
|
+
- [How to Run ATDD](/docs/how-to/workflows/run-atdd.md) - Generate tests with utilities
|
|
867
|
+
- [How to Run Automate](/docs/how-to/workflows/run-automate.md) - Expand coverage with utilities
|
|
868
|
+
- [How to Run Test Review](/docs/how-to/workflows/run-test-review.md) - Review against PW-Utils patterns
|
|
869
|
+
|
|
870
|
+
**Other Customization:**
|
|
871
|
+
|
|
872
|
+
- [Configure Browser Automation](/docs/how-to/customization/configure-browser-automation.md) - Playwright CLI + MCP setup, auto mode
|
|
873
|
+
|
|
874
|
+
## Understanding the Concepts
|
|
875
|
+
|
|
876
|
+
- [Testing as Engineering](/docs/explanation/testing-as-engineering.md) - **Why Playwright Utils matters** (part of TEA's three-part solution)
|
|
877
|
+
- [Fixture Architecture](/docs/explanation/fixture-architecture.md) - Pure function → fixture pattern
|
|
878
|
+
- [Network-First Patterns](/docs/explanation/network-first-patterns.md) - Network utilities explained
|
|
879
|
+
- [Test Quality Standards](/docs/explanation/test-quality-standards.md) - Patterns PW-Utils enforces
|
|
880
|
+
|
|
881
|
+
## Reference
|
|
882
|
+
|
|
883
|
+
- [TEA Configuration](/docs/reference/configuration.md) - tea_use_playwright_utils option
|
|
884
|
+
- [Knowledge Base Index](/docs/reference/knowledge-base.md) - Playwright Utils fragments
|
|
885
|
+
- [Glossary](/docs/glossary/index.md#test-architect-tea-concepts) - Playwright Utils term
|
|
886
|
+
- [Official PW-Utils Docs](https://seontechnologies.github.io/playwright-utils/) - Complete API reference
|