• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

bleedingdeacons / reach / 30717854596
86%

Build:
DEFAULT BRANCH: main
Ran 01 Aug 2026 08:51PM UTC
Jobs 1
Files 48
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

01 Aug 2026 08:50PM UTC coverage: 91.844% (+0.4%) from 91.45%
30717854596

push

github

web-flow
test: take WordPress stand-ins from wp-mocks (#42)

The last plugin in the suite still hand-rolling them. tests/bootstrap.php goes
from 641 lines to around 260, and its own closing note gets acted on:

    If a test here ever does need to assert on WordPress function calls, the
    suite-wide answer is bleedingdeacons/wp-mocks (Brain Monkey underneath).

What stays is what is not WordPress: the Unity/Scrutiny sibling-checkout
loading with its eval() fallbacks, Reach's cookie constants, and dbDelta() —
which lives in wp-admin/includes, so no shared group covers it. LifeLines
keeps its own for the same reason.

WpdbStub stays too. The repositories type-hint wpdb, and its prepare() records
SQL *after* substitution — quoting non-numerics, doubling apostrophes — which
22 assertions across three files read back verbatim. Doubles\FakeWpdb
interpolates differently, so adopting it would mean rewriting those assertions
for nothing. Sentinel and LifeLines make the same call.

The one real rework is hook capture. These tests do not just check a hook was
registered — they take the callback back out and invoke it, which is how the
rest_post_dispatch cache filter, the trusted_signup_member resolver and the
unity/member_deleted purge are exercised. Brain Monkey owns add_action and
add_filter now (it must, or its own expectations never match) and its store
has no public API for reading callbacks back, so ReachTestCase names the hooks
of interest up front and Actions/Filters\expectAdded()->whenHappen() hands each
callback over as it is registered.

Three things the shared stubs found, each a place the local ones were kinder
than WordPress:

  - WP_Error had a public ->data. Real WordPress has no such property; the
    accessor is get_error_data(). 16 assertions were reading a field that only
    existed because the stub invented it.

  - sanitize_key() and sanitize_title() were typed string in wp-mocks while
    core declares them untyped with an is_scalar() guard. Fix... (continued)

2331 of 2538 relevant lines covered (91.84%)

6.19 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
91.89
0.0% reach/reach/src/CallRequests/CallRequestMailer.php
Jobs
ID Job ID Ran Files Coverage
1 30717854596.1 01 Aug 2026 08:51PM UTC 48
91.84
GitHub Action Run
Source Files on build 30717854596
  • Tree
  • List 48
  • Changed 7
  • Source Changed 0
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30717854596
  • a560999b on github
  • Prev Build on main (#30668748648)
  • Next Build on main (#30717994057)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc