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

bleedingdeacons / tsml-for-unity / 34001061807
94%

Build:
DEFAULT BRANCH: main
Ran 06 Sep 2026 12:23AM UTC
Jobs 1
Files 61
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

06 Sep 2026 12:21AM UTC coverage: 93.824% (-0.3%) from 94.114%
34001061807

push

github

web-flow
feat: supply the member password store Unity declares (#75)

Unity declares PasswordCredentialRepository and binds nothing to it,
as it does for every repository — the plugin is a headless service
layer and a companion supplies the implementation. This is that
companion, and this is the implementation.

TsmlPasswordCredentialTable owns the schema, in the shape the two
attendance tables already use here: a DB_VERSION, a dbDelta create, and
a maybeUpgrade() gate called on plugins_loaded. Checked on every load
rather than only on activation because this plugin is already active
everywhere it matters, and WordPress does not re-run activation hooks
on an update.

The table replaces two plugin-private ones. Reach kept
wp_reach_credentials and Fellowship kept wp_fellowship_credentials,
with byte-identical schemas, so a member who set a password in one
could not sign into the other with it and a reset in one left the other
stale with nothing anywhere to say so. A member has one password.

Creating it absorbs both. The newer row wins, decided on updated_at, so
a member holding a different password in each keeps the one they last
set — and running it twice, or in either order, reaches the same
answer. The old tables are not dropped: this is the only copy of some
members' passwords, the upgrade runs unattended on a page load, and a
bad one that has also destroyed its source is not recoverable. A test
asserts no DROP or TRUNCATE is ever issued.

TsmlPasswordCredentialRepository is the wpdb implementation, registered
in registerWithUnity() alongside the other repositories, guarded on the
interface existing so a site on an older Unity degrades rather than
fatals.

A WpdbStub joins the test support: TsmlPasswordCredentialRepository
type-hints wpdb, which this suite does not load, and FakeWpdb is final
so it cannot be aliased to that name. Same trick Reach and Unity use.

694 tests, up from 667. PHPCS clean, PHPStan no errors.

3403 of 3627 relevant lines covered (93.82%)

5.8 hits per line

Coverage Regressions

Lines Coverage ∆ File
22
92.86
0.15% tsml-for-unity/tsml-for-unity/src/Plugin.php
Jobs
ID Job ID Ran Files Coverage
1 34001061807.1 06 Sep 2026 12:23AM UTC 61
93.82
GitHub Action Run
Source Files on build 34001061807
  • Tree
  • List 61
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34001061807
  • 70ade11c on github
  • Prev Build on main (#33976646725)
  • Next Build on main (#34259519700)
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