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

valkyrjaio / valkyrja-ts / 30327976947
100%

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

push

github

web-flow
[CI] Type-check, lint, and format the tests (#95)

# Description

Brings `tests/**` into the type-check, lint, and format scope, so the CI
gate finally checks the
tests it ships.

`tsconfig.json` included only `src/**/*`, and ESLint/Prettier ran over
`src` (+`bin`). Vitest runs
the suite through esbuild, which strips types without checking them — so
a test file could carry
genuine type errors and every check still reported green. The
`typescript`, `eslint`, and
`prettier` jobs also had no `tests/**` path filter, so a test-only
change skipped them entirely.

This implements the architecture TODO item "Type-check, lint, and format
the tests"
(valkyrjaio/architecture `typescript/TODO.md`).

Widening the scope surfaced **26 type errors and 71 lint errors** across
the existing suite,
including the exact `TS2322` the TODO cited. All are fixed here, and the
gate is proven to catch
that error: reintroducing `accept: ['text/html',
'application/xhtml+xml']` on the node
`IncomingMessage` double now fails with

```
tests/.../RequestMapping.test.ts(132,21): error TS2322: Type 'string[]' is not assignable to type 'string'.
```

## How the scope is wired

`tsconfig.tests.json` spans `src` **and** `tests` with `noEmit`, leaving
the published build's
`rootDir`/`declaration` settings in `tsconfig.json` untouched. Two
details were forced by the
toolchain:

- **`vitest` had to resolve for `tsc`.** Every tool directory is
dependency-isolated and the repo
root has no `node_modules`, so bare `vitest` imports resolved nowhere
and produced 274 phantom
`TS2307`s. `vitest` is now a devDependency of `.github/ci/typescript`,
mapped in via `paths`.
It lives there rather than in `.github/ci/vitest` because
`_ts-typescript.yml` has no
`additional-directory` input — and the eslint job already installs the
typescript directory, so
  one copy serves both jobs with no shared-workflow change.
- **ESLint needed the tests in a project.** `projectService` only
discovers `tsconfig.json`, whi... (continued)

1596 of 1596 branches covered (100.0%)

Branch coverage included in aggregate %.

3477 of 3477 relevant lines covered (100.0%)

29.13 hits per line

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