deno/tests/node_compat
David Sherret e83574015b
Some checks are pending
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
chore: make node compat tests run sequentially on first failure (#31142)
1. Mark all node compat tests as flaky on the CI.
2. Switch the tests from parallel to sequential on first failure and
retry.
2025-10-30 13:40:07 -04:00
..
runner chore(test): preserve node test fixtures line endings (#30488) 2025-08-22 10:38:06 -04:00
.gitignore chore: create monthly summary of node test runs (#28778) 2025-04-08 12:12:27 +09:00
add_day_summary_to_month_summary.ts chore: post node test results to slack (#28795) 2025-04-08 23:14:38 +09:00
common.ts chore(test): add reason field to node compat test config (#30469) 2025-09-01 23:44:11 +02:00
config.toml chore: make node compat tests run sequentially on first failure (#31142) 2025-10-30 13:40:07 -04:00
deno.json chore: update to std@2024.07.19 (#24715) 2024-07-25 15:30:28 +10:00
README.md chore(test): add reason field to node compat test config (#30469) 2025-09-01 23:44:11 +02:00
run_all_test_unmodified.ts chore: make node compat tests run sequentially on first failure (#31142) 2025-10-30 13:40:07 -04:00
semaphore.ts chore: make node compat tests run sequentially on first failure (#31142) 2025-10-30 13:40:07 -04:00
slack.ts ci: update Slack bot action (#29333) 2025-05-16 15:00:10 +02:00
test.ts chore: make node compat tests run sequentially on first failure (#31142) 2025-10-30 13:40:07 -04:00
test_runner.rs Revert "ci: skip running WPT and node compat unless labels present (#… (#31120) 2025-10-28 22:18:56 +00:00

Node compat test directory

This directory includes the tools for running Node.js test cases directly in Deno.

  • ./runner/suite/ - vendored Node.js test cases (git submodule at https://github.com/denoland/node_test)
  • ./config.toml - has the list of passing Node.js test cases
  • ./test.ts - The script entrypoint of node compat test.

If you run single node.js test case, use the command:

./tools/node_compat_tests.js --filter <name of test file>

Configuration file

The config.toml specifies which tests should pass in Deno and includes platform-specific and behavioral settings for each test.

Options

Each test entry can include the following optional configuration properties:

  • flaky (boolean): Marks a test as flaky. It will be run at most 3 times before being considered failed.

  • windows (boolean): Controls whether the test should run on Windows. Defaults to true.

  • darwin (boolean): Controls whether the test should run on macOS. Defaults to true.

  • linux (boolean): Controls whether the test should run on Linux. Defaults to true.

  • reason (string): Optional explanation for why a test is marked as skipped.

Examples

# Should pass on all platforms
"parallel/test-foo.js" = {}

# Test marked as flaky
"parallel/test-bar.js" = { flaky = true }

# Test skipped on all platforms with explanation
"parallel/test-baz.js" = { darwin = false, linux = false, windows = false, reason = "some reason" }

# Test skipped only on Windows
"parallel/test-qux.js" = { windows = false }

Add test case entry to CI check

If you fixed some Node.js compabitility and some test cases started passing, then add those cases to config.toml. The items listed in there are checked in CI check.

Daily test viewer

To see the latest test results of all test cases, visit this site https://node-test-viewer.deno.dev/results/latest