# Test Coverage Audit — Pare v0.12.0

**Date:** 2026-02-23
**Scope:** All 30 publishable packages (31 total incl. tsconfig)
**Thresholds:** 80% lines/functions, 70% branches

## Summary

| Metric                          | Target | Actual (avg) | Result |
| ------------------------------- | ------ | ------------ | ------ |
| Line coverage                   | >= 80% | 91.59%       | PASS   |
| Branch coverage                 | >= 70% | 76.33%       | PASS   |
| Function coverage               | >= 80% | 93.34%       | PASS   |
| Packages meeting all thresholds | 28/29  | 28/29        | WARN   |

## Per-Package Coverage

| Package               | Lines  | Branches | Functions | Tests | Status |
| --------------------- | ------ | -------- | --------- | ----- | ------ |
| `@paretools/shared`   | 90.30% | 84.21%   | 92.72%    | 262   | PASS   |
| `@paretools/git`      | —      | —        | —         | 637   | NOTE   |
| `@paretools/github`   | 81.94% | 61.39%   | 86.28%    | 492   | WARN   |
| `@paretools/docker`   | 92.14% | 72.99%   | 96.59%    | 492   | PASS   |
| `@paretools/python`   | 89.17% | 75.20%   | 89.16%    | 422   | PASS   |
| `@paretools/cargo`    | 96.72% | 80.16%   | 100%      | 340   | PASS   |
| `@paretools/go`       | 89.72% | 78.16%   | 93.33%    | 346   | PASS   |
| `@paretools/npm`      | 92.19% | 75.88%   | 94.20%    | 350   | PASS   |
| `@paretools/lint`     | 97.05% | 83.28%   | 100%      | 264   | PASS   |
| `@paretools/build`    | 92.66% | 75.04%   | 92.53%    | 243   | PASS   |
| `@paretools/k8s`      | 96.67% | 76.81%   | 98.64%    | 301   | PASS   |
| `@paretools/search`   | 88.80% | 72.61%   | 82.75%    | 79    | PASS   |
| `@paretools/http`     | 92.54% | 78.42%   | 86.36%    | 114   | PASS   |
| `@paretools/test`     | 83.05% | 78.43%   | 86.95%    | 298   | PASS   |
| `@paretools/security` | 87.41% | 75.30%   | 88.46%    | 71    | PASS   |
| `@paretools/make`     | 98.33% | 87.84%   | 100%      | 92    | PASS   |
| `@paretools/process`  | 90.00% | 83.33%   | 100%      | 76    | PASS   |
| `@paretools/init`     | 91.78% | 83.60%   | 84.61%    | 122   | PASS   |
| `@paretools/bazel`    | 81.09% | 57.75%   | 89.74%    | 91    | WARN   |
| `@paretools/bun`      | 98.76% | 78.41%   | 100%      | 73    | PASS   |
| `@paretools/cmake`    | 87.29% | 64.41%   | 92.59%    | 0     | WARN   |
| `@paretools/db`       | 96.44% | 64.75%   | 97.91%    | 145   | WARN   |
| `@paretools/deno`     | 86.63% | 66.27%   | 72.22%    | 133   | WARN   |
| `@paretools/dotnet`   | 83.87% | 62.70%   | 79.59%    | 119   | WARN   |
| `@paretools/infra`    | 96.01% | 73.88%   | 97.84%    | 164   | PASS   |
| `@paretools/jvm`      | 89.08% | 75.28%   | 89.18%    | 95    | PASS   |
| `@paretools/nix`      | 96.13% | 88.07%   | 100%      | 87    | PASS   |
| `@paretools/remote`   | 97.75% | 88.11%   | 100%      | 52    | PASS   |
| `@paretools/ruby`     | 94.44% | 88.57%   | 100%      | 80    | PASS   |
| `@paretools/swift`    | 95.91% | 72.41%   | 97.50%    | 71    | PASS   |

## Packages Below Threshold

### `@paretools/bazel` — 57.75% branches (below 70%)

New package (v0.11.1). Branch coverage is below threshold due to many conditional parser paths for Bazel's complex output format. Line coverage (81.09%) and function coverage (89.74%) meet thresholds. **Action:** Add branch-focused tests for parser edge cases.

### `@paretools/cmake` — 64.41% branches (below 70%)

New package (v0.11.1). Similar to bazel — CMake output parsing has many conditional branches. **Action:** Add targeted branch coverage tests.

### `@paretools/db` — 64.75% branches (below 70%)

New package (v0.11.1). Database tool parsers cover multiple database engines with many conditional paths. **Action:** Add multi-engine parser tests.

### `@paretools/deno` — 66.27% branches, 72.22% functions (below thresholds)

New package (v0.11.1). Below threshold on both branches and functions. The lowest-coverage package. **Action:** Priority — add integration tests and parser branch tests.

### `@paretools/dotnet` — 62.70% branches, 79.59% functions (below thresholds)

New package (v0.11.1). Below threshold on both branches and functions. .NET output parsing has many format variations. **Action:** Add multi-framework parser tests.

### `@paretools/github` — 61.39% branches (below 70%)

Existing package with expanded tool count (22 tools). Branch coverage dropped from 78.07% in v0.8.2 to 61.39% as new tools were added without proportional branch tests. Lines (81.94%) and functions (86.28%) meet thresholds. **Action:** Add branch-focused tests for newer tools.

## Notes

### `@paretools/git` — Coverage collection not available

The vitest coverage-v8 provider crashes with ENOENT when collecting coverage for server-git (large test suite with forked pool). All 664 tests pass. This is a known V8 coverage provider limitation documented in CI config.

### Changes from v0.8.2

| Change                       | Impact                                           |
| ---------------------------- | ------------------------------------------------ |
| Total packages               | 16 → 30 publishable packages                     |
| Total tests                  | 3,423 → 6,111                                    |
| Total test files             | 167 → 244                                        |
| `@paretools/github` branches | 78.07% → 61.39% (more tools, fewer branch tests) |
| `@paretools/lint` lines      | 97.74% → 97.05% (stable)                         |
| `@paretools/test` lines      | 80.82% → 83.05% (improved)                       |
| `@paretools/http` functions  | 82.35% → 86.36% (improved)                       |
| `@paretools/process` lines   | 100% → 90.00% (new edge cases added)             |
| New packages below threshold | 5 (bazel, cmake, db, deno, dotnet)               |

### New Packages Added Since v0.8.2

13 new packages: `@paretools/bazel`, `@paretools/bun`, `@paretools/cmake`, `@paretools/db`, `@paretools/deno`, `@paretools/dotnet`, `@paretools/infra`, `@paretools/init`, `@paretools/jvm`, `@paretools/nix`, `@paretools/remote`, `@paretools/ruby`, `@paretools/swift`.

Of these, 8 meet all thresholds and 5 are below the branch threshold. All meet line coverage thresholds.

## Test Statistics

- **Total tests:** 6,111
- **Test files:** 244
- **Packages with tests:** 29/30 (tsconfig excluded)
- **Framework:** vitest (unit + integration + fidelity)
- **All tests passing:** Yes (265 lint tests now pass after ajv override fix)

## Methodology

Coverage was collected using `vitest --coverage` with the `@vitest/coverage-v8` provider across all packages except `@paretools/git` (V8 crash with forked pool). Numbers reflect statement/branch/function coverage of `src/` files excluding test files and type declarations. Averages exclude git (no data).
