Define one disposable fixture
Use a fake contact and a clearly synthetic purpose such as marketing-updates. Name the preference source, at least two preparation routes, the reconciliation owner, a correction route, and a rollback-to-hold route. Do not connect the exercise to a live sender or real contact.
| Fixture fact | It does not prove |
|---|---|
| A purpose and channel are recorded | The request has a universal or legal effect |
| Two sender routes are listed | Every sender is included or suppressed |
| The next preparation action is held | A queued message was cancelled |
| An owner is named | A preference was reconciled correctly |
Exercise the local declaration
node --test sites/howtox.com/evidence/P236/preference-withdrawal-reconciliation.test.mjs
The suite accepts a synthetic record only when purpose, authoritative source, distinct sender routes, hold, owner, correction route, unknown downstream effect, and rollback are explicit. It rejects a claim that all senders were suppressed and any send action. A pass makes the supplied fixture inspectable; it does not verify a provider, deliverability, consent, or compliance.
Hold when scope is unclear
Pause the next in-scope follow-up when the team cannot identify the purpose, authoritative record, route owner, or correction route. Keep service or transactional-message classification out of this exercise unless an authorised policy owner supplies it. For transport-level notification testing, see Test an Application Notification Before Enabling It for Coworkers. This rehearsal does not send, suppress, or classify a message.
Verify before human review
- Run the local synthetic receipt test and retain its result with the fixture.
- Ask a named technical operator to inspect the real authoritative record, route inventory, correction route, and safe hold.
- Keep the next in-scope follow-up on hold when any of those inputs is unknown.
The fixture test does not approve a production workflow or establish a provider result.