ci: run the full test suite on macOS instead of two hand-picked files - #483
ci: run the full test suite on macOS instead of two hand-picked files#483vinhnguyenthanhdn wants to merge 1 commit into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan includes up to 4 reviews per rolling hour; 3 remain after this review. 📝 WalkthroughWalkthroughThe macOS CI job now caches both lockfiles, installs root and dashboard dependencies, builds the dashboard with InsForge variables, and runs the complete test suite instead of two targeted test commands. ChangesmacOS CI coverage
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This CI-only change expands macOS validation to the full test suite and leaves no actionable merge-blocking risk beyond normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
Summary
Run the full
npm testsuite in the macOS CI job instead of two hand-picked test files, so host assumptions that only hold on GNU userland stop shipping green.Why
CONTRIBUTING.mdtells contributors thatnpm testis the gate ("Full suite,node --test"), and the Linux job runs exactly that. The macOS job runs 2 of the 250 files intest/*.test.js(openclaw-parser,native-pet-limit-reset), so a test that quietly depends on GNU userland is green in CI and red on every Mac.That is not hypothetical — it is what #482 fixed.
test/linux-bundle.test.jslanded on 2026-08-09 callingsha256sum, which macOS does not ship.npm testcould not go green on macOS for 9 days and no CI leg could see it: the Linux job runs onubuntu-latestwhere the command exists, and the macOS job never reached that file.What this does
In
macos-tests, replaces the two named files with the same install → build → test sequence the Linux job already uses:npm ciandnpm ci --prefix dashboardnpm run dashboard:build— the local-runtime install test assertsdashboard/dist/index.htmlexists, and a fresh checkout has nonenpm testBoth previously named files are inside
test/*.test.js, so coverage is a strict superset of what the job ran before. The Xcode steps are untouched.Cost, measured on the runner
From the CI run linked below (
macos-26, Node 24), the three added steps:npm ci --prefix dashboardnpm run dashboard:buildnpm testThe suite reports
tests 2276 · pass 2274 · fail 0 · skipped 2.The dashboard build is not optional padding: without it the same suite fails 4 tests on macOS —
tsc validates migrated TS files,installLocalTrackerApp replaces stale installed runtime and writes a package marker, and the twoVite dev server handles …cases.Verification
CI run of this exact commit with the upstream workflow, on a fork: https://github.com/vinhnguyenthanhdn/TokenTracker/actions/runs/32090693394
macOS unit testsgreen including the newTest suite on macOSstep, plustest + validate + buildandWindows build.Linux client (Rust)was still installing its apt dependencies on the fork runner when this was opened; that job is untouched by this change.Scope
src/)dashboard/)TokenTrackerBar/)TokenTrackerWin/)Checklist
npm testpassesdashboard/src/content/copy.csv(no hardcoded UI text) — none in this PRfeat:/fix:/refactor:/docs:/chore:/test:/ci:)Summary by CodeRabbit