Repository navigation
Add coverage reporting and publish the real numbers - #1
Merged
Merged
Conversation
Backend is 92% over `app/` across 141 tests. Frontend unit coverage is 12.4%, measured over the whole app/components/lib tree rather than only the files a test happens to import — without an explicit `include`, v8 reported 88% of 34 statements, which would not have survived anyone checking it. The frontend figure is low by design: the four page components are covered end-to-end by Playwright rather than in jsdom. The README states that alongside the number instead of omitting it or narrowing the scope. Nothing is excluded from the denominator for looking bad — an earlier draft excluded app/layout.tsx, which lifted the figure to 12.7%. Both numbers are reproducible with `make coverage` and now print in CI. Coverage emits text only, since the default HTML reporter writes vendored JS that trips `npm run lint`. Also corrects the Status section, which still claimed the project had no CI/CD after CI landed in f94fc59. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FwJbsXDAjQAERfSQbYkgMc
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The README advertises 92% backend coverage, but nothing enforced it: a PR that gutted the test suite would keep CI green while the badge and prose went on claiming 92%. --cov-fail-under=91, not 92. The headline figure is coverage.py rounding ~91.9% (1545/1681), and the real value drifts to ~91.7% between runs as the Ollama-gated tests do or don't execute. A gate of 92 would fail on the very commit that introduced it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FwJbsXDAjQAERfSQbYkgMc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds test-coverage tooling to both apps and publishes the measured numbers in the README.
app/Both reproduce with
make coverage, and CI now prints them.Why the frontend number is low, and why it's published anyway
Vitest v4 measures only the files a test imported unless
coverage.includeis set. The default run reported 88% of 34 statements — a number that would not survive anyone checking it. Pointingincludeat the realapp//components//lib/tree gives 12.4% of 242.That figure is low by design:
lib/and the presentational components are unit-tested in jsdom, while the four page components are covered end-to-end by Playwright, which the unit run cannot see. The README states this alongside the number rather than omitting it.Nothing is excluded from the denominator for looking bad. An earlier draft excluded
app/layout.tsx, which lifted the figure to 12.7%; that exclusion was removed.Also
npm run lint.Verification
141 backend + ruff + mypy, 22 frontend unit, 4 e2e,
tsc --noEmit, eslint, actionlint — all pass locally. Backend ran with a live Ollama daemon, so the two Ollama-gated tests executed rather than skipping.🤖 Generated with Claude Code