diff --git a/ext/node/polyfills/testing.ts b/ext/node/polyfills/testing.ts index b04456ce8d086e..b6733f118cd766 100644 --- a/ext/node/polyfills/testing.ts +++ b/ext/node/polyfills/testing.ts @@ -61,6 +61,9 @@ class NodeTestContext { await prepared.fn(newNodeTextContext); }, ignore: prepared.options.todo || prepared.options.skip, + sanitizeExit: false, + sanitizeOps: false, + sanitizeResources: false, }).then(() => undefined); } @@ -131,6 +134,9 @@ function prepareDenoTest(name, options, fn, overrides) { fn: wrapTestFn(prepared.fn, resolve), only: prepared.options.only, ignore: prepared.options.todo || prepared.options.skip, + sanitizeExit: false, + sanitizeOps: false, + sanitizeResources: false, }; Deno.test(denoTestOptions); return promise; diff --git a/tests/integration/node_compat_tests.rs b/tests/integration/node_compat_tests.rs index 767f23460b4fb8..26f691636af2e3 100644 --- a/tests/integration/node_compat_tests.rs +++ b/tests/integration/node_compat_tests.rs @@ -11,3 +11,11 @@ itest!(node_test_module { exit_code: 1, http_server: true, }); + +itest!(node_test_module_no_sanitizers { + args: "test -A --no-check node/test_no_sanitizers/test.js", + output: "node/test_no_sanitizers/test.out", + envs: env_vars_for_npm_tests(), + exit_code: 123, + http_server: true, +}); diff --git a/tests/testdata/node/test_no_sanitizers/test.js b/tests/testdata/node/test_no_sanitizers/test.js new file mode 100644 index 00000000000000..d2ca8a6c76363b --- /dev/null +++ b/tests/testdata/node/test_no_sanitizers/test.js @@ -0,0 +1,28 @@ +import test from "node:test"; + +test("should not complain about resource and op sanitizers", async (t) => { + // resource + const _file1 = Deno.open("welcome.ts"); + + await t.test("nested test", () => { + // resource + const _file2 = Deno.open("cat.ts"); + + // op + crypto.subtle.digest( + "SHA-256", + new TextEncoder().encode("a".repeat(1_000_000)), + ); + }); + + // op + crypto.subtle.digest( + "SHA-256", + new TextEncoder().encode("a".repeat(1_000_000)), + ); +}); + +test("should allow exit", () => { + // no exit sanitizers + Deno.exit(123); +}); diff --git a/tests/testdata/node/test_no_sanitizers/test.out b/tests/testdata/node/test_no_sanitizers/test.out new file mode 100644 index 00000000000000..f52bed3abecd67 --- /dev/null +++ b/tests/testdata/node/test_no_sanitizers/test.out @@ -0,0 +1,5 @@ +running 2 tests from ./node/test_no_sanitizers/test.js +should not complain about resource and op sanitizers ... + nested test ... ok ([WILDCARD]) +should not complain about resource and op sanitizers ... ok ([WILDCARD]) +should allow exit ... \ No newline at end of file