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

bleedingdeacons / reach / 30967781045
86%

Build:
DEFAULT BRANCH: main
Ran 05 Aug 2026 01:55AM UTC
Jobs 1
Files 52
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

05 Aug 2026 01:54AM UTC coverage: 92.807% (+1.0%) from 91.844%
30967781045

push

github

web-flow
test: cover src/Admin and drop its coverage exclusion (#52)

Reach's four admin screens were excluded from the coverage denominator as
"render/menu glue exercised through wp-admin at runtime". Amber disproves
that — it covers its entire src/Admin on this same tooling — and these
screens are the personal-data surface of a public finder, so their
capability gates are exactly the code that most wants a test. Integrity was
ported first (bleedingdeacons/integrity#42); this is the same pattern.

146 tests over CallAttemptsPage, CallRequestsPage, MemberSearchPage and
SettingsPage, using the three techniques Integrity's class docblock records:
registration methods run for real and assert against WpState; capability
guards expect the WpDieException wp_die() throws, or assert an empty render
and an untouched repository; render methods run inside an output buffer with
the assertions made on the HTML.

Guards are asserted against the specific capability, not a blanket "user can
do nothing": the three operational screens deny
PersonalDataPolicy::VIEW_CAPABILITY with everything else granted, and the
settings screen denies manage_options — each also asserting it still renders
when the *other* capability is missing, so neither gate can quietly become
the wrong one.

Two behaviour-identical extractions, for the exit wall. wp_redirect is
recorded by the stubs rather than thrown, so `wp_safe_redirect(); exit;`
runs the exit and takes PHPUnit with it. The branchy bodies in front of it
move into private methods that return the redirect target instead of
issuing it:

  - CallRequestsPage::completeFromRequest()
  - SettingsPage::saveFromRequest()

Both are driven by reflection, the precedent being Integrity's
parsePermissions()/parseIpWhitelist().

New fixtures under Reach\Tests\Fixtures: MemberViewStub (Unity ships a
double for Member but not yet for MemberView), StubGeocoder (a third copy
of it was about to be inlined in a test file), and in-memory doubles for
Reach's own... (continued)

3071 of 3309 relevant lines covered (92.81%)

8.97 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
66.67
-16.67% reach/reach/src/CallAttempts/CallAttempt.php
1
75.0
-12.5% reach/reach/src/CallRequests/CallRequest.php
1
93.13
-0.76% reach/reach/src/Core/Settings.php
1
81.82
-9.09% reach/reach/src/Distance/Haversine.php
1
87.5
-6.25% reach/reach/src/Geocoding/Coordinates.php
1
32.0
-4.0% reach/reach/src/Logger/HasLogger.php
1
91.46
-1.22% reach/reach/src/Resolution/NearestMembersResolver.php
1
75.0
-12.5% reach/reach/src/Resolution/ResolutionResult.php
1
50.0
-25.0% reach/reach/src/Resolution/ScoredMember.php
Jobs
ID Job ID Ran Files Coverage
1 30967781045.1 05 Aug 2026 01:55AM UTC 52
92.81
GitHub Action Run
Source Files on build 30967781045
  • Tree
  • List 52
  • Changed 10
  • Source Changed 0
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30967781045
  • 63949fbd on github
  • Prev Build on main (#30927040002)
  • Next Build on main (#30967902484)
  • 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