Skip to content

Commit

Permalink
chore: document Node.js compat test setup script (denoland#18381)
Browse files Browse the repository at this point in the history
  • Loading branch information
kt3k committed Mar 26, 2023
1 parent 3c5350f commit 8b596cb
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions tools/node_compat/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Tools for Node.js compatibility work

We run
[native Node.js test cases](https://github.com/nodejs/node/tree/main/test)
against our Node.js compatibility feature.

This directory includes the tools for downloading, setting up, and updating the
Node.js compat testing in Deno repository.

- `//tools/node_compat/setup.ts`
- This script sets up the Node.js compat tests.
- `//tools/node_comapt/versions/`
- Node.js source tarballs and extracted test cases are stored here.
- `//cli/tests/node_compat/config.json`
- This json file stores the settings about which Node.js compat test to run
with Deno.
- `//cli/tests/node_compat/test`
- The actual test cases are stored here.

## Steps to add new test cases from Node.js test cases

1. Update `tests` property of `//cli/tests/node_compat/config.json`. For
example, if you want to add `test/paralles/test-foo.js` from Node.js test
cases, then add `test-foo.js` entry in `tests.parallel` array property in
`config.json`
1. Run `./tools/node_compat/setup.ts`

The above command copies the updated items from Node.js tarball to the Deno
source tree.

Ideally Deno should pass the Node.js compat tests without modification, but if
you need to modify it, then add that item in `ignore` perperty of `config.json`.
Then `setup.ts` doesn't overwrite the modified Node.js test cases anymore.

If the test needs to be ignored in particular platform, then add them in
`${platform}Ignore` property of `config.json`

## Run Node.js test cases

Node.js compat tests are run as part of `cargo test` command. If you want to run
only the Node.js compat test cases you can use the command
`cargo test node_compat`.

0 comments on commit 8b596cb

Please sign in to comment.