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

valkyrjaio / sindri-java / 30375524339
100%

Build:
DEFAULT BRANCH: 26.x
Ran 28 Jul 2026 03:53PM UTC
Jobs 1
Files 90
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

28 Jul 2026 03:52PM UTC coverage: 99.951%. Remained the same
30375524339

push

github

web-flow
[Http] Pin the framework-computed dynamic route regex in the golden and end-to-end tests (#54)

# Description

The generated data-cache tests never pinned the match regex a dynamic
route
compiles to, so a change to the framework's regex format could roll
through
Sindri silently.

`valkyrja-java` v26.4.0 changed `Regex.START` / `Regex.END` from the PHP
reference's PCRE framing (`/^` … `$/`) to Java-native anchors (`^` …
`$`), which
changes every regex Sindri writes into `AppHttpRoutingData`. The
dependency bump
to 26.4.0 (#53) passed CI regardless. The sibling TypeScript repo caught
the
equivalent change immediately, because its golden snapshot pins the
framework's
computed regex; the Java suite did not, for two reasons:

- `GoldenSnapshotTest` built its `/users/{id}` route with the short
`HttpRouteData` constructor, so the route carried no parameters and an
empty
  regex. `buildRegexesBody` skipped it and the committed golden pinned
  `regexes()` as `Map.of()` — the regex path was never generated at all.
- The one end-to-end check in `GenerateDataFromConfigCommandTest`
asserted the
fragment `(?<value>[a-zA-Z]+)`, which survives the delimiters on either
side
  of it changing.

Both now pin the regex in full. Sindri computes a dynamic route's regex
in
`HttpRouteAttributeReader` by running the real framework `Processor` (so
the
cached regex is always identical to what the framework would compute at
runtime), and the golden fixture now does the same rather than
hard-coding a
literal — a framework format change therefore fails the snapshot instead
of
quietly rewriting every generated cache.

Verified by temporarily restoring the old `/^…$/` expectation,
confirming the
end-to-end test fails on it, then restoring. `./gradlew ci` passes.
Tests only —
no `src/` change, so coverage is unaffected.

## Types of changes

- [x] Improvement _(non-breaking change which improves code)_
- [ ] Bug fix _(non-breaking change which fixes an issue)_
- [ ] New feature _(non-... (continued)

524 of 525 branches covered (99.81%)

Branch coverage included in aggregate %.

1513 of 1513 relevant lines covered (100.0%)

4.38 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30375524339.1 28 Jul 2026 03:53PM UTC 90
99.95
GitHub Action Run
Source Files on build 30375524339
  • Tree
  • List 90
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30375524339
  • c83c7b40 on github
  • Prev Build on 26.x (#30331747164)
  • Next Build on 26.x (#30375967437)
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