Migrate from Jest to Node.js native test runner - #336
Merged
Conversation
- Remove jest (306 transitive dependencies) - Add c8 12.0.0 for coverage collection - Update test script to use node --test - Add test:coverage script with lcov/clover reporters - Remove unused codecov CLI coverage script
Greptile SummaryThe PR replaces Jest with Node.js’s native test runner and c8 while updating test mocks, coverage reporting, CI, linting, and pre-push execution.
Confidence Score: 5/5The PR appears safe to merge. The previously reported tokenless-run artifact is fixed because the output stream is now created only in the skipped suite's setup hook, and no blocking failure remains.
|
| Filename | Overview |
|---|---|
| features/upload-and-download-file.feature.js | Migrates the integration suite to native test APIs and fixes the previously reported skipped-suite artifact by deferring output-file creation to the suite's before hook. |
| package.json | Replaces Jest scripts and dependencies with the Node.js test runner and c8 coverage. |
| specs/download.spec.js | Rewrites download tests using native assertions and scoped method mocks. |
| specs/followRedirect.spec.js | Rewrites redirect tests using native test and mock APIs. |
| specs/upload.spec.js | Rewrites upload tests using native assertions and scoped method mocks. |
| .github/workflows/npm-test.yml | Runs the coverage test command in CI and pins the Coveralls action version. |
Reviews (3): Last reviewed commit: "Chore: Update CI workflow and pre-push h..." | Re-trigger Greptile
- Replace jest.mock() with mock.method() from node:test - Replace expect() assertions with node:assert/strict - Replace jest.fn() with mock.fn() - Rewrite feature test to use async/await and Promise wrappers - Add describe.skip guard for Dependabot in feature test - Remove jest.unmock() call from feature test - Bump ecmaVersion to 2022, add node:test globals to eslintrc - Relax space-before-function-paren to avoid Prettier conflicts
RomiC
force-pushed
the
migrate-to-node-test-runner
branch
from
August 6, 2026 15:21
ce223b1 to
48a5ebf
Compare
- Switch CI from npm test to npm run test:coverage for lcov output - Pin coverallsapp/github-action to v2.3.8 - Replace npm test with node --test in pre-push hook
RomiC
force-pushed
the
migrate-to-node-test-runner
branch
from
August 7, 2026 06:57
48a5ebf to
e2e733e
Compare
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.
Replace Jest with Node.js built-in test runner (
node:test,node:assert/strict) andc8for coverage. Also migrate from ESLint+Prettier to Oxlint+Oxfmt. Removes ~395 transitive dependencies.Changes
Jest → node:test
jest.mock()withmock.method()fromnode:testexpect()assertions withnode:assert/strictjest.fn()withmock.fn()async/await+ Promise wrappersjest.config.js,__mocks__/directorynpm run test:coverage, pin coveralls to v2.3.8)node --testESLint → Oxlint
eslint,eslint-config-prettier,eslint-plugin-prettier,prettierwithoxlint+oxfmtoxlint.config.mjsandoxfmt.config.mjs(matching ya-disk project).eslintrcand.prettierrcResults