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

bleedingdeacons / reach
86%

Build:
DEFAULT BRANCH: main
Repo Added 22 Jul 2026 01:37AM UTC
Token OulU2J9wcpeE3Q2PHoC97yHdrvyrjef5v regen
Build 205 Last
Files 95
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

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • certification-enum-values
  • chore/add-dependabot
  • chore/adopt-wp-mocks
  • chore/ci-semgrep-and-pin-actions
  • chore/composer-bumps-with-polyfill-stub
  • chore/declare-php-extensions
  • chore/dev-tooling-standardisation
  • chore/dynamic-phpstan-badge
  • chore/fix-github-plugin-uri
  • chore/gitignore-composer-lock
  • chore/gitignore-phpstan-local-override
  • chore/phpcs-root-files
  • chore/phpstan-level-7
  • chore/phpstan-level-8
  • chore/phpstan-level6
  • chore/phpstan-level6-haslogger-types
  • chore/phpstan-level6-iterable-types
  • chore/psr12-gate
  • chore/readme-phpstan-level6
  • chore/release
  • chore/release-1.12.1
  • chore/release-1.12.2
  • chore/release-1.13.1
  • chore/release-v1-10-0
  • chore/release-v1-8-10
  • chore/release-v1.13.0
  • chore/release-version-bump
  • chore/scheduled-semgrep-scan
  • chore/tidy-phpstan-baseline
  • chore/use-shared-scrutiny-spy
  • chore/use-shared-unity-doubles
  • chore/wp-mocks-2.0
  • ci/composer-audit
  • ci/release-on-merge
  • ci/validate-lock
  • dependabot/composer/dependencies-3022dae4de
  • dependabot/github_actions/actions-02325a8da5
  • docs/ios-deferred-not-permanent
  • docs/reach-help-guide
  • docs/readme-testing-section
  • docs/tests-badge
  • feat/alert-levels-and-response
  • feat/answered-messages-clear-other-handsets
  • feat/descriptive-user-agent
  • feat/device-payload-key
  • feat/devices-table-ajax
  • feat/encrypt-android-alert-payloads
  • feat/encrypt-ios-alert-payloads
  • feat/encrypt-whole-push-payload
  • feat/hand-device-targeting
  • feat/hand-gate-email-and-home-group
  • feat/hand-push-alerts
  • feat/hand-send-reply-resend
  • feat/handset-contact-reveal
  • feat/handset-messages-and-live-alerts
  • feat/key-fault-detection
  • feat/major-for-encrypted-push
  • feat/manage-devices-capability
  • feat/message-a-committee
  • feat/message-uuid-and-acknowledgement-notices
  • feat/native-list-tables-hand-devices
  • feat/php-84-wp-711
  • feat/require-https-on-handset-routes
  • feat/send-alerts-capability
  • feat/send-message-page
  • feat/twelfth-step-search-landline
  • fix/build-eol
  • fix/bulk-action-name-collision
  • fix/idempotent-release-job
  • fix/install-schema-on-upgrade
  • fix/link-call-attempt-detail
  • fix/phpstan-dead-branch
  • fix/push-carries-contact-flag
  • fix/refuse-enrolment-with-unrecoverable-key
  • fix/release-push-retry
  • fix/reset-token-origin-and-callreq-throttle
  • fix/send-form-shared-nonce
  • fix/session-authz-and-hardening
  • fix/surface-total-push-failure
  • fix/throttle-oauth-and-jwks-refresh
  • fix/vouch-for-trusted-signup-writes
  • main
  • refactor/shared-password-store
  • release/v1.11.0
  • release/v1.12.0
  • release/v1.9.0
  • require-certified-responder
  • test/assert-key-fault-per-row
  • test/cover-admin-layer
  • test/coverage-alerts-devices
  • test/member-view-stub-landline
  • test/pest-5
  • tests/coverage-wpmock
  • untrack-idea-files

24 Sep 2026 03:14AM UTC coverage: 86.422% (-0.02%) from 86.437%
35950637642

push

github

web-flow
test: convert the suite to Pest 5 (#122)

Every test file is now a closure-based Pest spec except one kept as a
PHPUnit class: SecureTransportConstantTest, split out of SecureTransportTest,
defines REACH_ALLOW_INSECURE_TRANSPORT and so must run in a separate process,
which Pest refuses. Pest runs it as it is.

tests/Pest.php binds every spec to ReachTestCase, except UserAgentTest,
which stays on wp-mocks' TestCase as it was. Private helpers became
file-level functions where they were pure and unique in the namespace, and
closures on $this in beforeEach where they needed the test case or their
name was shared with another file.

Test doubles that other test files reached by require_once-ing a whole test
file (WpdbStub, ConfigurableProvider, ControllerStubGeocoder) moved to
tests/Fixtures; the wpdb alias moved to tests/bootstrap.php, and the two
duplicate geocoder stubs gave way to the existing Fixtures\StubGeocoder.

tests/bootstrap.php defines PHPUNIT_COMPOSER_INSTALL when missing, so the
isolated child process has an autoloader under Pest. phpunit.xml.dist
raises memory_limit to 512M: with coverage on, unserialising that child's
result overran the 128M default and fataled the run.

1250 -> 1250 tests, 3590 -> 3590 assertions, 0 skipped. Line coverage
5808/6746 -> 5806/6745: RequiresSecureTransport's ABSPATH guard, which
covers() loads before coverage starts, and one CallAttemptsPage line that
pcov stops counting as executable once the file is loaded that early.
composer test, test:unit and test:coverage now run pest.

6384 of 7387 relevant lines covered (86.42%)

15.28 hits per line

Relevant lines Covered
Build:
Build:
7387 RELEVANT LINES 6384 COVERED LINES
15.28 HITS PER LINE
Source Files on main
  • Tree
  • List 95
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
35950637642 main test: convert the suite to Pest 5 (#122) Every test file is now a closure-based Pest spec except one kept as a PHPUnit class: SecureTransportConstantTest, split out of SecureTransportTest, defines REACH_ALLOW_INSECURE_TRANSPORT and so must run in... push 24 Sep 2026 03:18AM UTC web-flow github
86.42
35950371001 test/pest-5 Merge ab0e34102 into 7a28fe640 Pull #122 24 Sep 2026 03:13AM UTC web-flow github
86.42
35944523273 docs/tests-badge Merge 64e2bcb44 into 7a28fe640 Pull #121 24 Sep 2026 01:51AM UTC web-flow github
86.44
35543120714 main fix: declare the PHP extensions this plugin actually uses (#120) composer.json already declared ext-json, ext-openssl, but not ext-mbstring. A host without them would install the plugin happily and fail at runtime instead of at install time. Add... push 20 Sep 2026 10:59PM UTC web-flow github
86.44
35542781034 chore/declare-php-extensions Merge e0260cb13 into 5e87cc0c6 Pull #120 20 Sep 2026 10:52PM UTC web-flow github
86.44
35540059982 main feat!: move to PHP 8.4/8.5 and PHPUnit 13, tested to WP 7.1.1 (#119) Part of the suite-wide PHP 8.5 / WordPress 7.1.1 upgrade. - Requires PHP 8.1 -> 8.4, header and readme.txt. WordPress 7.1 recommends 8.4/8.5, and PHPUnit 13 requires >= 8.4. ... push 20 Sep 2026 09:59PM UTC web-flow github
86.44
35529239030 feat/php-84-wp-711 Merge 1ba6e1c03 into 17197ec28 Pull #119 20 Sep 2026 06:35PM UTC web-flow github
86.44
35528884278 chore/declare-php-extensions fix: declare the PHP extensions this plugin actually uses composer.json already declared ext-json, ext-openssl, but not ext-mbstring. A host without them would install the plugin happily and fail at runtime instead of at install time. Added: ext... Pull #120 20 Sep 2026 06:27PM UTC crazeydave github
86.44
35528326095 feat/php-84-wp-711 feat!: move to PHP 8.4/8.5 and PHPUnit 13, tested to WP 7.1.1 Part of the suite-wide PHP 8.5 / WordPress 7.1.1 upgrade. - Requires PHP 8.1 -> 8.4, header and readme.txt. WordPress 7.1 recommends 8.4/8.5, and PHPUnit 13 requires >= 8.4. - PHPUn... Pull #119 20 Sep 2026 06:16PM UTC crazeydave github
86.44
34486565115 main feat: seal the alert payload for iOS as well as Android The last plaintext path out of Reach. An Android push has carried one field for a while now — `ciphertext`, and nothing beside it — while iOS was sent the whole alert readable: title, body, ... push 10 Sep 2026 02:07PM UTC web-flow github
86.4
See All Builds (205)

Badge your Repo: reach

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
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