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

valkyrjaio / valkyrja-ts / 30237203412
100%

Build:
DEFAULT BRANCH: 26.x
Ran 27 Jul 2026 04:29AM UTC
Jobs 1
Files 302
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

27 Jul 2026 04:28AM UTC coverage: 100.0%. Remained the same
30237203412

push

github

web-flow
[Http] Store dynamic route regexes as native anchored patterns (#87)

# Description

While adding routing combination tests to mirror the PHP/Java reference
PRs, the same
dynamic-matching bug found in the Java port surfaced here: the
`Processor` wrapped every
dynamic route's regex in `Regex.START`/`Regex.END`, which were the PHP
reference's PCRE
delimiters (`/^` … `$/`). JavaScript `RegExp` uses no delimiters, so the
stored regex (also
what Sindri writes into the generated cache) had literal `/` characters
at both ends and
`new RegExp(stored).exec(path)` never matched. The existing tests masked
it: `Matcher`
tests hand-wrote delimiter-free regexes and the one `Processor`
assertion pinned the broken
`/^…$/` string.

Fix: `Regex.START`/`END` are now the JS-native anchors `^` / `$`, so the
`Processor`
produces — and the cache stores — a valid `RegExp` from the start. This
mirrors the merged
Java fix (valkyrjaio/valkyrja-java#48). No `Matcher` change is needed.

Ships with the combination tests that prove it and would have caught it:
exact-regex
production matrices (every parameter type, structural layout, modifier,
and guard branch)
and an end-to-end match matrix built through the `Processor` (per-type
valid/invalid,
request-method filtering, trailing-slash normalization,
static-over-dynamic precedence,
multi-parameter extraction, non-capturing binding).

Covers the direct `Route`/`DynamicRoute` construction path.
Decorator/attribute-based
routes land via valkyrja-ts#85 (not yet on 26.x); the decorator
collection path can be
covered once that merges.

Sibling of the PHP (valkyrjaio/valkyrja-php#923) and Java (#48) routing
work.

## Types of changes

- [ ] Improvement _(non-breaking change which improves code)_
- [x] Bug fix _(non-breaking change which fixes an issue)_
- [ ] New feature _(non-breaking change which adds functionality)_
- [ ] Deprecation _(breaking change which removes functionality)_
- [ ] Breaking change _(fix or feature that would cause ... (continued)

1585 of 1585 branches covered (100.0%)

Branch coverage included in aggregate %.

2 of 2 new or added lines in 1 file covered. (100.0%)

3466 of 3466 relevant lines covered (100.0%)

22.82 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30237203412.1 27 Jul 2026 04:29AM UTC 302
100.0
GitHub Action Run
Source Files on build 30237203412
  • Tree
  • List 302
  • Changed 1
  • Source Changed 1
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30237203412
  • 2e9145c2 on github
  • Prev Build on 26.x (#30232768801)
  • Next Build on 26.x (#30237514553)
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