Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
9cb1fad
node:test: subtests, plan, mock timers, getTestContext (+11 tests)
cirospaciari Jun 23, 2026
9298be4
node:test: address review feedback
alii Jul 7, 2026
40c7638
node:test: plan option truthy-gate, registered `ok`, private fileGene…
cirospaciari Jul 7, 2026
dbfe027
node:test: gate nested subtests on ancestor before hooks, resolve fil…
cirospaciari Jul 7, 2026
9f0db7f
node:test: resolve late-subtest promises and count runtime skip/todo
alii Jul 8, 2026
8664279
node:test: keep stop/hook-timeout timers ref'd; cancel waitFor retry …
alii Jul 8, 2026
9640fcb
Merge origin/main into claude/node-test-runner-v26
alii Jul 8, 2026
32fc880
node:test: drain plan-wait subtests, bind markCurrentResult to done()…
alii Jul 9, 2026
f511e05
node:test: mark node finished before after-hooks; hoist dcb reads und…
alii Jul 10, 2026
1c495fc
Merge remote-tracking branch 'origin/main' into claude/node-test-runn…
cirospaciari Jul 14, 2026
334b61b
Revert unrelated structured-clone 2GiB test split
cirospaciari Jul 14, 2026
c283c78
Drop dead leaksan entry for removed test; sort js2native table
cirospaciari Jul 14, 2026
5aa1ea1
Merge origin/main into claude/node-test-runner-v26
cirospaciari Jul 14, 2026
dd0212b
Merge branch 'main' into claude/node-test-runner-v26
cirospaciari Jul 15, 2026
cf32bfc
Merge branch 'main' into claude/node-test-runner-v26
cirospaciari Jul 16, 2026
4a2303d
Merge remote-tracking branch 'origin/main' into claude/node-test-runn…
robobun Jul 16, 2026
868c9e4
test: drop upstream TODO comment from vendored test-runner-mock-timer…
robobun Jul 16, 2026
960184f
node:test: gate inline-suite children on the describe callback's buil…
robobun Jul 16, 2026
d3d837a
Merge remote-tracking branch 'origin/main' into claude/node-test-runn…
robobun Jul 16, 2026
2b36e31
Merge branch 'main' into claude/node-test-runner-v26
Jarred-Sumner Jul 16, 2026
e8fbf7c
Merge remote-tracking branch 'origin/main' into claude/node-test-runn…
robobun Jul 17, 2026
eb655a2
node:test: match node's mock constructor semantics
cirospaciari Jul 17, 2026
2ce60ce
test: drop test-runner-xfail.js and reword engine-diff notes in test-…
robobun Jul 17, 2026
6a53c42
Restore test-set-http-max-http-headers.js and its leaksan entry; quar…
robobun Jul 17, 2026
de038b7
Merge branch 'main' into claude/node-test-runner-v26
cirospaciari Jul 17, 2026
fa8b969
node:test: clear plan-wait timer on stop race; return SuiteContext fr…
robobun Jul 17, 2026
884abfb
lint: destructure pending.timer once in TestPlan.cancel()
robobun Jul 17, 2026
cd40cb3
node:test: mark runtime skip/todo under --concurrent; getTestContext …
robobun Jul 17, 2026
e8ab4ad
Merge branch 'main' into claude/node-test-runner-v26
cirospaciari Jul 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .claude/skills/verify/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,12 @@ For worker/subprocess-shaped changes, spawn a subprocess (still `-e`) so worker

## Gotchas

- **Prefix every `bun bd` with `PATH="$HOME/.cargo/bin:$PATH"`** — Homebrew's `rust`
formula shadows the pinned nightly, and `bun bd` dies with `the option 'Z' is only
accepted on the nightly compiler`. `bun bd` re-runs cargo on every invocation, so
this is needed for follow-up runs too, not just the first build.
- `BUN_DEBUG_QUIET_LOGS=1` suppresses debug-build log spam.
- Debug builds print `[cachefs]`/`[sys]` lines to stdout; filter them before diffing
output against `node`.
- MessagePort's `.on/.off` are added by requiring `worker_threads` — plain `new MessageChannel()` ports only have `addEventListener` until then.
- The debug+asan build is 10-100× slower than release; large-allocation stress tests can time out locally while passing in CI.
2 changes: 1 addition & 1 deletion docs/runtime/nodejs-compat.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ This page is updated regularly and reflects the latest version of Bun's compatib

### [`node:test`](https://nodejs.org/api/test.html)

🟡 Partially implemented. Missing `mock.module`, `mock.timers`, snapshots. Use [`bun:test`](/test) instead.
🟡 Partially implemented. The in-process API works when test files run under `bun test`: tests, suites, subtests, hooks, `t.plan()`, `t.assert`, `assert.register()`, `t.waitFor()`, `getTestContext()`, and `t.mock` (function/method/getter/setter/property mocks and mock timers). Missing `run()`, `node:test/reporters`, snapshot testing, `mock.module()`, code coverage, `--test-only`, test-level `signal`/`t.signal` abort, and Node's `--test` CLI runner mode. `test.only()` / `{only: true}` are accepted but do not filter. `concurrency` is validated but subtests always run serially. Use [`bun:test`](/test) instead.

### [`node:trace_events`](https://nodejs.org/api/tracing.html)

Expand Down
1 change: 1 addition & 0 deletions src/codegen/generate-js2native.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ const rustIdentifierPaths: Record<string, string> = {
"ini.rs": "ini/ini.rs",
"install_binding.rs": "install_jsc/install_binding.rs",
"ipc.rs": "jsc/ipc.rs",
"jest.rs": "runtime/test_runner/jest.rs",
"mysql.rs": "sql_jsc/mysql.rs",
"napi_body.rs": "runtime/napi/napi_body.rs",
"node_assert_binding.rs": "runtime/node/node_assert_binding.rs",
Expand Down
Loading
Loading