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

valkyrjaio / valkyrja-php / 30325215244
100%

Build:
DEFAULT BRANCH: 26.x
Ran 28 Jul 2026 03:14AM UTC
Jobs 1
Files 1138
Run time 2min
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:10AM UTC coverage: 100.0%. Remained the same
30325215244

push

github

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

# Description

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

`OptionFactory::fromArg()` split the raw arg with `explode('=', $arg)` —
no limit — and took
`$parts[1]`. For `--expr=a=b` that yields `a`, dropping everything from
the second `=` onward. The
option's value should be everything after the *first* `=`, so the fix is
a limit of 2.

This surfaced while porting the message-mapping fidelity tests to Java
(valkyrjaio/valkyrja-java#55). Java's `OptionFactory` already used
`split("=", 2)` and produced
`a=b`, so the two ports disagreed. Retaining the whole value is the
faithful mapping — an option
value is opaque to the parser — so PHP is the side that was wrong, and
the Java port is left as-is.

The `value containing equals` case in `InputMappingTest` (added in #932)
pinned the old truncating
behavior, so its expectation is updated to `a=b` in the same commit as
the fix.

Sibling PRs:

- **Java** — valkyrjaio/valkyrja-java#55 (message-mapping fidelity
tests; asserts `a=b`)
- **Architecture** — valkyrjaio/architecture#68 (per-language CLI argv
conventions)

## 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

- **`Cli/Interaction/Option/Factory/OptionFactory.php`** — split the raw
arg on the first `=` only
(`explode('=', $arg, 2)`) so a value containing an `=` survives intact
instead of being truncated
  at the second one.
-
**`tests/Tests/Functional/Cli/Interaction/Input/InputMappingTest.php`**
— updated the
  `value containing equals` expectation from `a` to `a=b` to match.

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

12591 of 12591 relevant lines covered (100.0%)

23.5 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30325215244.1 28 Jul 2026 03:13AM UTC 1138
100.0
GitHub Action Run
Source Files on build 30325215244
  • Tree
  • List 1138
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30325215244
  • ac9c1fe5 on github
  • Prev Build on 26.x (#30325209873)
  • Next Build on 26.x (#30325942525)
  • Delete
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