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

valkyrjaio / valkyrja-ts / 30326592312
100%

Build:
DEFAULT BRANCH: 26.x
Ran 28 Jul 2026 03:41AM 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

28 Jul 2026 03:40AM UTC coverage: 100.0%. Remained the same
30326592312

push

github

web-flow
[Cli] Split an option arg on the first equals only so values keep theirs (#93)

# Description

Fixes an option value that itself contains an `=` being silently
truncated.

`OptionFactory.fromArg()` took the value with `arg.split('=')[1]` — the
*second*
segment of an unlimited split — so everything from the second `=` onward
was
dropped:

```
--expr=a=b        → value 'a'        (expected 'a=b')
--filter=name=a=b → value 'name'     (expected 'name=a=b')
```

Any option carrying an expression, a query fragment, a base64 value, a
connection string, or a key=value pair lost data, silently and with no
error.
The name was derived separately (`replace(/=[\s\S]*$/, '')`), so it was
already
correct — only the value was wrong.

Now the arg is split on the **first** `=` only: everything before it is
the name,
everything after it is the value, `=` included.

Port of the PHP reference fix

[valkyrja-php#935](https://github.com/valkyrjaio/valkyrja-php/pull/935),
which
uses `explode('=', $arg, 2)` for the same effect. This behavior was
pinned as-is
by the message-mapping fidelity tests
([valkyrja-ts#91](https://github.com/valkyrjaio/valkyrja-ts/pull/91))
and flagged
there as looking like a defect rather than intent — confirmed, and now
fixed in
both ports.

Coverage stays at **100%** (line and branch): 1121 tests, 3509/3509
statements,
1589/1589 branches. Full gate green — `typescript`, `eslint-check`,
`prettier-check`, `vitest-coverage`.

## 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 existing
functionality to change)_
- [ ] Documentation improvement

## Changes

- **`src/Valkyrja/Cli/Interaction/Option/Factory/OptionFactory.ts`** —
split the raw arg on the first `=` only via `indexOf`/... (continued)

1589 of 1589 branches covered (100.0%)

Branch coverage included in aggregate %.

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

3474 of 3474 relevant lines covered (100.0%)

29.05 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30326592312.1 28 Jul 2026 03:41AM UTC 302
100.0
GitHub Action Run
Source Files on build 30326592312
  • Tree
  • List 302
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30326592312
  • a7bb1397 on github
  • Prev Build on 26.x (#30325727451)
  • Next Build on 26.x (#30327866954)
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