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

wol-soft / php-json-schema-model-generator / 40016051538
99%
master: 99%

Build:
Build:
LAST BUILD BRANCH: claude/required-validator-ref-duplication-25c5d1
DEFAULT BRANCH: master
Ran 23 Oct 2026 08:04PM UTC
Jobs 1
Files 216
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

23 Oct 2026 08:01PM UTC coverage: 99.33% (+0.01%) from 99.318%
40016051538

Pull #206

github

wol-soft
Cover the reference and prefixItems paths, and declare the field a transferred pattern validator writes

Closes the patch-coverage gaps the previous commit left, and fixes a dynamic-property deprecation
that covering them exposed.

Three paths had no test. A Draft 2020-12 array spelled the idiomatic way — `prefixItems` for the
tuple, `items` for everything behind it — exercised neither the stand-down that stops the `items`
pass from validating the tuple entries a second time nor the trailing-entry validator it hands off
to. A reference whose target declares `patternProperties` exercised neither the pattern side of the
evaluated-name adoption. And a chain of references through an intermediate that declares siblings
of its own exercised neither of the loops that pass on what a link adopted from the link below it.

Covering the pattern case surfaced a pre-existing bug, unrelated to the unevaluated keywords: a
base-level `$ref` transfers the referenced schema's base validators, so a PatternPropertiesValidator
can run on a class whose own JSON never spells `patternProperties` — but the field it writes was
declared only when that keyword was present. The generated class created `$_patternProperties`
dynamically, which PHP 8.2 deprecates and PHP 9 rejects. PatternPropertiesPostProcessor now follows
the validators it already iterates instead of the keyword's spelling, and returns early when none
is present so unrelated classes keep their current field set.

The chained-reference test also pinned a second pre-existing gap it cannot fix: reference merging
passes on the target's properties but not its base validators, so the innermost schema's pattern
validator never arrives and a key matching it is reported as unevaluated. The adopted *pattern*
does reach the accumulator — only the validator that must record the match is missing. That is a
reference-merging decision with a blast radius across every merged class, so the test asserts the
current outcome and will ... (continued)
Pull Request #206: Credit nested, referenced and dependent applicators to the unevaluated accumulators

204 of 204 new or added lines in 13 files covered. (100.0%)

10222 of 10291 relevant lines covered (99.33%)

586.43 hits per line

Jobs
ID Job ID Ran Files Coverage
1 Unit - 40016051538.1 23 Oct 2026 08:04PM UTC 216
99.33
GitHub Action Run
Source Files on build 40016051538
  • Tree
  • List 216
  • Changed 13
  • Source Changed 13
  • Coverage Changed 13
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #40016051538
  • Pull Request #206
  • PR Base - master (#39979576578)
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