Skip to content

fix: coverage without opt-in + real linter e2e test#14

Merged
mikn merged 2 commits intomainfrom
fix/coverage-and-linting
Mar 15, 2026
Merged

fix: coverage without opt-in + real linter e2e test#14
mikn merged 2 commits intomainfrom
fix/coverage-and-linting

Conversation

@mikn
Copy link
Owner

@mikn mikn commented Mar 15, 2026

Summary

Test plan

  • bazel coverage //tests/vitest:math_test produces lcov (no coverage = True needed)
  • bazel test //tests/lint_real:real_lint_test passes with real oxlint
  • bazel test //... --cache_test_results=no — 33/33 pass

Fixes #10, #11.

🤖 Generated with Claude Code

mikn and others added 2 commits March 15, 2026 16:32
Coverage: `bazel coverage` now works on ANY ts_test without requiring
`coverage = True`. The runner detects COVERAGE_OUTPUT_FILE unconditionally
(set by Bazel during `bazel coverage`). The `coverage` attr now only
controls coverage during `bazel test`.

Linting: Added oxlint to the npm lockfile and created tests/lint_real/
with a real oxlint binary test. The ts_lint rule is now verified
end-to-end with actual lint violations detected by a real linter.

Also fixed: npm_bin runner creates a temp node_modules with optional
dep symlinks so native binaries (oxlint platform packages) resolve
correctly. ts_lint uses absolute paths via captured EXECROOT.

Fixes #10, #11.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The test requires('typescript') which isn't in the main repo's lockfile.
On macOS CI where there's no global typescript, this crashes. Now skips
gracefully like the diagnostics test does.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@mikn mikn merged commit 5b96059 into main Mar 15, 2026
9 checks passed
@mikn mikn deleted the fix/coverage-and-linting branch March 15, 2026 16:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Coverage should work without opt-in (like go_test)

1 participant