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

valkyrjaio / valkyrja-starter-app-java / 30422607592

29 Jul 2026 04:33AM UTC coverage: 95.409% (-0.6%) from 96.037%
30422607592

push

github

web-flow
[Cli] Add a command for every routing permutation with regression and generated data tests (#58)

# Description

The CLI counterpart to #55. The starter app defined a single trivial
command, so nothing in it
proved that the CLI router binds the full range of parameter shapes a
developer can declare — and
nothing caught a regression in that binding when a new framework or
Sindri release lands.

This adds `RoutingPermutationsCommand`: one command per argument and
option permutation the CLI
router supports, each echoing back the value(s) bound to its parameters
so the declaration, the
generated command data, and the runtime binding can all be asserted
independently. Fourteen
commands cover argument mode {REQUIRED, OPTIONAL} x value mode {DEFAULT,
ARRAY}, option mode
{REQUIRED, OPTIONAL} x value mode {NONE, DEFAULT, ARRAY}, short names,
valid values, a declared
default value, and a mixed command declaring arguments and options
together.

Two test tiers, matching the HTTP PR:

1. **Regression/unit** — the command echoes the right value for each
permutation, and each provider
handler resolves the command from the container and binds its route's
parameters.
2. **Generated data** — the `sindri-junit` CI build asserts the
Sindri-generated `AppCliRoutingData`
carries all 15 commands with the right names, argument/option counts,
modes, value modes, short
names, valid values and default values — proving the generated cache
matches what the runtime
   collector produces.

There is deliberately **no e2e tier** here. `app/bin/cli` exits 0 with
no output, and the existing
`AppTest` asserts exactly that, so there is no observable surface to
drive real argv against yet;
the HTTP side has e2e because a real request yields a response to
assert. This is worth revisiting
once the CLI entry point emits its output.

The Sindri fix this needed is merged and released —
valkyrjaio/sindri-java#62 shipped in Sindri
v26.4.3, which `26.x` now depends on. The `sindri-junit` assertio... (continued)

20 of 22 branches covered (90.91%)

Branch coverage included in aggregate %.

458 of 479 relevant lines covered (95.62%)

10.0 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

92.86
/src/main/java/app/http/provider/ComponentProvider.java


Source Not Available

The file "src/main/java/app/http/provider/ComponentProvider.java" isn't available on github. Either it's been removed, or the repo root directory needs to be updated.

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