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

valkyrjaio / valkyrja-ts / 30325727451
100%

Build:
DEFAULT BRANCH: 26.x
Ran 28 Jul 2026 03:22AM 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:22AM UTC coverage: 100.0%. Remained the same
30325727451

push

github

web-flow
[Application] Drop the interpreter path from argv before building the CLI input (#92)

# Description

Fixes the CLI entry point reading the wrong argv slots, so **every
command name was wrong in real
use**.

`Cli.getInput()` passed `process.argv` straight to
`InputFactory.fromGlobals()`. Node's
`process.argv` leads with the **interpreter path** — `[execPath, script,
...args]` — whereas the
factory (a faithful port of the PHP reference) expects the vector to
start with the caller, as
PHP's `$argv` does. Everything therefore landed one slot late:

```
node bin/valkyrja app:version
```

| | before | after |
|---|---|---|
| caller | `/usr/local/bin/node` | `bin/valkyrja` |
| command name | `bin/valkyrja` | `app:version` |
| arguments | `['app:version']` | `[]` |

The fix is `process.argv.slice(1)` at the entry point — deliberately
there rather than in the
factory, since Node is the only runtime that leads with an interpreter
path; every other port's
vector already starts with the caller.

## Why the existing tests missed it

`Cli.test.ts` set a synthetic, PHP-shaped `process.argv = ['cli',
'command', …]` — a vector Node
never produces — so the entry point's off-by-one was invisible while the
assertions passed. The
message-mapping fidelity tests added in #91 don't cover it either: they
call
`InputFactory.fromGlobals()` directly with their own array, so they
exercise the factory (which is
correct) and never the entry point (which was not).

Every vector in `Cli.test.ts` is now shaped as Node really produces it,
and three of its cases fail
against the old code — confirming the regression coverage is real.

This came out of the Java message-mapping fidelity work
(valkyrjaio/valkyrja-java#55); the per-language argv conventions are
documented in
valkyrjaio/architecture#68.

## 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 ad... (continued)

1587 of 1587 branches covered (100.0%)

Branch coverage included in aggregate %.

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

3473 of 3473 relevant lines covered (100.0%)

29.04 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30325727451.1 28 Jul 2026 03:22AM UTC 302
100.0
GitHub Action Run
Source Files on build 30325727451
  • 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 #30325727451
  • 7cd3c636 on github
  • Prev Build on 26.x (#30325155504)
  • Next Build on 26.x (#30326592312)
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