WordPress Test Strategy Skill
Overview
Systematic testing strategy guidance for WordPress projects. Core principle: Test depth should match risk, and the test pyramid should reflect the WordPress surface area involved. Review covers unit tests, WordPress integration tests, REST endpoint tests, block tests, browser or E2E flows, WooCommerce regressions, fixtures, and release-risk prioritization.
When to Use
Use when:
- Deciding what tests to add for a feature or fix
- Reviewing missing coverage in a plugin or theme
- Planning regression tests before release
- Choosing between unit, integration, and E2E coverage
- Mapping block, REST, admin, or WooCommerce behavior to tests
Don't use for:
- Code review that does not involve testing decisions
- CI system debugging only
- Performance benchmarking alone
Code Review Workflow
Identify the change surface
- Pure PHP logic
- WordPress integration behavior
- REST or AJAX flow
- Block editor behavior
- Admin screen workflow
- WooCommerce order/cart/checkout behavior
Map the risk
- User-facing breakage
- Data corruption or migration risk
- Auth/security-sensitive flow
- Browser interaction complexity
Choose test depth
- Unit tests for isolated logic
- Integration tests for WordPress APIs and DB state
- E2E tests for UI workflows or editor interactions
Report recommendations
- What should be tested
- What level of test is appropriate
- What can be skipped or covered indirectly
Test Selection Heuristics
Unit Tests
Use for:
- Pure transformation logic
- Small helpers
- Formatting and parsing logic
- Validation rules decoupled from WP runtime
Integration Tests
Use for:
- Hooks and filters
- Option/meta persistence
- REST endpoints
- Custom queries
- Role/capability behavior
E2E or Browser Tests
Use for:
- Block editor flows
- Admin forms with JS behavior
- Checkout, cart, and frontend interactions
- Accessibility-sensitive interaction flows
Search Patterns for Quick Detection (TST-21)
Use these rg commands to understand current test coverage and likely gaps.
Coverage Discovery
# Test directories and files
rg -n "class .*Test|extends .*TestCase|describe\\(|test\\(" . -g '*.{php,js,jsx,ts,tsx}'
# PHPUnit config or bootstrap
rg -n "phpunit|tests/bootstrap|WP_UnitTestCase" .
# Playwright or E2E indicators
rg -n "playwright|@wordpress/e2e-test-utils|page\.goto|test\\(" . -g '*.{js,ts}'
Gap Signals
# High-risk surfaces with no obvious tests nearby
rg -n "register_rest_route|add_action|add_filter|wp_ajax_|admin_post_|dbDelta|WC_" . -g '*.php'
# Block editor files
rg -n "block.json|edit\\(|save\\(|registerBlockType" . -g '*.{json,js,jsx}'
Reference Files
references/test-layer-guide.md - Choosing unit vs integration vs E2E coverage in WordPress projects
references/wordpress-test-scenarios.md - Recommended test scenarios for plugins, blocks, themes, REST APIs, and WooCommerce
Output Format (TST-23)
When reporting, organize by:
- Surface area under review
- Recommended test types
- Highest-priority missing coverage
- Nice-to-have coverage
If the existing tests are already sufficient, say that clearly and mention any residual risk or missing edge-case coverage.
1---2name: wp-test-strategy-23description: WordPress testing strategy and review guidance. Use when planning or reviewing PHPUnit coverage, integration tests, block tests, e2e tests, Playwright flows, WooCommerce test coverage, fixture design, or when user mentions "test strategy", "WordPress tests", "PHPUnit", "integration tests", "Playwright", "e2e", "test coverage", "testing plan", or "regression tests". Helps decide what to test, how deeply to test, and where to focus coverage in WordPress plugins, themes, blocks, and WooCommerce extensions.4---56# WordPress Test Strategy Skill78## Overview910Systematic testing strategy guidance for WordPress projects. **Core principle:** Test depth should match risk, and the test pyramid should reflect the WordPress surface area involved. Review covers unit tests, WordPress integration tests, REST endpoint tests, block tests, browser or E2E flows, WooCommerce regressions, fixtures, and release-risk prioritization.1112## When to Use1314**Use when:**15- Deciding what tests to add for a feature or fix16- Reviewing missing coverage in a plugin or theme17- Planning regression tests before release18- Choosing between unit, integration, and E2E coverage19- Mapping block, REST, admin, or WooCommerce behavior to tests2021**Don't use for:**22- Code review that does not involve testing decisions23- CI system debugging only24- Performance benchmarking alone2526## Code Review Workflow27281. **Identify the change surface**29 - Pure PHP logic30 - WordPress integration behavior31 - REST or AJAX flow32 - Block editor behavior33 - Admin screen workflow34 - WooCommerce order/cart/checkout behavior35362. **Map the risk**37 - User-facing breakage38 - Data corruption or migration risk39 - Auth/security-sensitive flow40 - Browser interaction complexity41423. **Choose test depth**43 - Unit tests for isolated logic44 - Integration tests for WordPress APIs and DB state45 - E2E tests for UI workflows or editor interactions46474. **Report recommendations**48 - What should be tested49 - What level of test is appropriate50 - What can be skipped or covered indirectly5152## Test Selection Heuristics5354### Unit Tests5556Use for:57- Pure transformation logic58- Small helpers59- Formatting and parsing logic60- Validation rules decoupled from WP runtime6162### Integration Tests6364Use for:65- Hooks and filters66- Option/meta persistence67- REST endpoints68- Custom queries69- Role/capability behavior7071### E2E or Browser Tests7273Use for:74- Block editor flows75- Admin forms with JS behavior76- Checkout, cart, and frontend interactions77- Accessibility-sensitive interaction flows7879## Search Patterns for Quick Detection (TST-21)8081Use these `rg` commands to understand current test coverage and likely gaps.8283### Coverage Discovery8485```bash86# Test directories and files87rg -n "class .*Test|extends .*TestCase|describe\\(|test\\(" . -g '*.{php,js,jsx,ts,tsx}'8889# PHPUnit config or bootstrap90rg -n "phpunit|tests/bootstrap|WP_UnitTestCase" .9192# Playwright or E2E indicators93rg -n "playwright|@wordpress/e2e-test-utils|page\.goto|test\\(" . -g '*.{js,ts}'94```9596### Gap Signals9798```bash99# High-risk surfaces with no obvious tests nearby100rg -n "register_rest_route|add_action|add_filter|wp_ajax_|admin_post_|dbDelta|WC_" . -g '*.php'101102# Block editor files103rg -n "block.json|edit\\(|save\\(|registerBlockType" . -g '*.{json,js,jsx}'104```105106## Reference Files107108- `references/test-layer-guide.md` - Choosing unit vs integration vs E2E coverage in WordPress projects109- `references/wordpress-test-scenarios.md` - Recommended test scenarios for plugins, blocks, themes, REST APIs, and WooCommerce110111## Output Format (TST-23)112113When reporting, organize by:1141151. Surface area under review1162. Recommended test types1173. Highest-priority missing coverage1184. Nice-to-have coverage119120If the existing tests are already sufficient, say that clearly and mention any residual risk or missing edge-case coverage.121