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

valkyrjaio / sindri-java / 27857972950
100%

Build:
DEFAULT BRANCH: 26.x
Ran 20 Jun 2026 02:51AM UTC
Jobs 1
Files 80
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

20 Jun 2026 02:50AM UTC coverage: 100.0% (+2.0%) from 98.039%
27857972950

push

github

web-flow
[Tests] Reach 100% branch coverage (#27)

# Description

Brings Sindri to 100% line and 100% branch coverage — closing the 91%
local branch / 98% Coveralls gap that remained after the line-coverage
pass. No production logic changed in behavior.

Dead defensive branches (e.g. `if (!fqn.isEmpty())` — `resolveClassName`
provably never returns empty) are covered via test subclasses that
`@Override` the protected extractor to return `""`, keeping the guards
intact. Reachable branches are covered by new edge fixtures:
non-object-creation list items, `Map.of` / `Map.ofEntries` /
`Map.copyOf` / non-`Map` publisher calls, marker `@Route` /
`@RouteHandler` + unknown annotation members, a
default-package/empty-namespace config, wildcard/static imports, and
external (non-app) provider/controller refs.

One small production consistency fix: `AstFileGenerator` had a `parent
!= null ? parent : Paths.get(".")` ternary whose null arm is unreachable
(the path always has a parent). Its sibling `FileGenerator` already uses
`Objects.requireNonNullElse(...)` for the identical case —
`AstFileGenerator` now matches, removing the dead branch rather than
leaving it permanently uncovered.

---

## Types of Changes

- [x] Improvement _(non-breaking change which improves code)_
- [ ] 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/main/java/io/sindri/generator/abstract_/AstFileGenerator.java`**
— replaced the unreachable `parent != null ? parent : Paths.get(".")`
ternary with `Objects.requireNonNullElse(...)`, matching `FileGenerator`
and removing the dead branch
-
**`.github/ci/junit/src/test/java/io/sindri/unit/ast/*ReaderTest.java`**
— added branch-edge tests (override-based for the dead `!fqn.... (continued)

280 of 280 branches covered (100.0%)

Branch coverage included in aggregate %.

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

993 of 993 relevant lines covered (100.0%)

4.21 hits per line

Jobs
ID Job ID Ran Files Coverage
1 27857972950.1 20 Jun 2026 02:51AM UTC 80
100.0
GitHub Action Run
Source Files on build 27857972950
  • Tree
  • List 80
  • Changed 11
  • Source Changed 1
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #27857972950
  • bcfab7ac on github
  • Prev Build on 26.x (#27856232591)
  • Next Build on 26.x (#27863597715)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc