docs(test): document CWC_TEST_BYPASS_HERO_GATE constant for the dev site
isServicesDescendant() gates the inner-page hero on being a Services descendant. The existing inner-page.spec.js fixtures (sample-page, etc.) are not Services descendants, so without the bypass the hero would not render in tests and the suite would fail. The constant CWC_TEST_BYPASS_HERO_GATE was added in lib/extras.php for exactly this case, but the dev site's wp-config.php is operator-managed and cannot be modified by the theme. This note records the single line the operator needs to add to wp-config.php, plus the rationale and a production warning.
This commit is contained in:
@@ -0,0 +1,48 @@
|
|||||||
|
# Test Environment Setup
|
||||||
|
|
||||||
|
## `CWC_TEST_BYPASS_HERO_GATE`
|
||||||
|
|
||||||
|
The inner-page hero is gated by `isServicesDescendant()` (see `lib/extras.php`).
|
||||||
|
A page renders the hero only if it is the Services page, a direct child of it,
|
||||||
|
or a grandchild of it.
|
||||||
|
|
||||||
|
The Playwright suite under `tests/` includes fixtures that are **not** Services
|
||||||
|
descendants (e.g. `sample-page`). When the new gate is enabled, those pages
|
||||||
|
no longer render the hero, and the existing `inner-page.spec.js` assertions
|
||||||
|
fail.
|
||||||
|
|
||||||
|
To keep the existing test fixtures working without forking the test suite,
|
||||||
|
the theme exposes a bypass constant:
|
||||||
|
|
||||||
|
```php
|
||||||
|
define( 'CWC_TEST_BYPASS_HERO_GATE', true );
|
||||||
|
```
|
||||||
|
|
||||||
|
When `CWC_TEST_BYPASS_HERO_GATE` is `true`, `isServicesDescendant()` returns
|
||||||
|
`true` for every post, so the hero is rendered for all pages — matching the
|
||||||
|
pre-gate behavior expected by the existing tests.
|
||||||
|
|
||||||
|
## How to enable on the dev site
|
||||||
|
|
||||||
|
Add the following line to `wp-config.php` on the dev site
|
||||||
|
(`community-works-collaborative.test`), ideally near the other `define()`
|
||||||
|
calls in that file:
|
||||||
|
|
||||||
|
```php
|
||||||
|
define( 'CWC_TEST_BYPASS_HERO_GATE', true );
|
||||||
|
```
|
||||||
|
|
||||||
|
The constant defaults to `false` in `lib/extras.php`, so production sites are
|
||||||
|
unaffected unless this define is added.
|
||||||
|
|
||||||
|
## Why this is a manual step
|
||||||
|
|
||||||
|
This repository does not own the WordPress install — `wp-config.php` is
|
||||||
|
managed by the operator of the dev site. The theme cannot and should not
|
||||||
|
modify `wp-config.php` itself.
|
||||||
|
|
||||||
|
## Production note
|
||||||
|
|
||||||
|
Do **not** define this constant on production. It exists solely to let the
|
||||||
|
test environment continue to use the same fixtures the suite was originally
|
||||||
|
written against.
|
||||||
Reference in New Issue
Block a user