From 86074b594eb84a2ba4c1c2e192645d2a777749e3 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 19 Apr 2022 09:07:44 -0700 Subject: [PATCH] [New] add `node:test`, in node 18+ See also, https://github.com/nodejs/node/issues/42785 --- .eslintrc | 1 + core.json | 1 + test/index.js | 45 +++++++++++++++++++++++++-------------------- 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/.eslintrc b/.eslintrc index 05b25c8..f2e0726 100644 --- a/.eslintrc +++ b/.eslintrc @@ -9,6 +9,7 @@ "files": "test/**", "rules": { "global-require": 0, + "max-depth": 0, "max-lines-per-function": 0, "no-negated-condition": 0, }, diff --git a/core.json b/core.json index d275294..058584b 100644 --- a/core.json +++ b/core.json @@ -112,6 +112,7 @@ "node:string_decoder": [">= 14.18 && < 15", ">= 16"], "sys": [">= 0.4 && < 0.7", ">= 0.8"], "node:sys": [">= 14.18 && < 15", ">= 16"], + "node:test": ">= 18", "timers": true, "node:timers": [">= 14.18 && < 15", ">= 16"], "timers/promises": ">= 15", diff --git a/test/index.js b/test/index.js index d62d585..746772b 100644 --- a/test/index.js +++ b/test/index.js @@ -53,16 +53,18 @@ test('core modules', function (t) { function () { require(mod); }, // eslint-disable-line no-loop-func 'requiring ' + mod + ' does not throw' ); - if (supportsNodePrefix) { - st.doesNotThrow( - function () { require('node:' + mod); }, // eslint-disable-line no-loop-func - 'requiring node:' + mod + ' does not throw' - ); - } else { - st['throws']( - function () { require('node:' + mod); }, // eslint-disable-line no-loop-func - 'requiring node:' + mod + ' throws' - ); + if (mod.slice(0, 5) !== 'node:') { + if (supportsNodePrefix) { + st.doesNotThrow( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' does not throw' + ); + } else { + st['throws']( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' throws' + ); + } } } } @@ -81,6 +83,7 @@ test('core modules', function (t) { 'v8/tools/tickprocessor', 'v8/tools/profile' ]; + libs = libs.concat('node:test'); // node 18 for (var i = 0; i < libs.length; ++i) { var mod = libs[i]; if (excludeList.indexOf(mod) === -1) { @@ -89,16 +92,18 @@ test('core modules', function (t) { function () { require(mod); }, // eslint-disable-line no-loop-func 'requiring ' + mod + ' does not throw' ); - if (supportsNodePrefix) { - st.doesNotThrow( - function () { require('node:' + mod); }, // eslint-disable-line no-loop-func - 'requiring node:' + mod + ' does not throw' - ); - } else { - st['throws']( - function () { require('node:' + mod); }, // eslint-disable-line no-loop-func - 'requiring node:' + mod + ' throws' - ); + if (mod.slice(0, 5) !== 'node:') { + if (supportsNodePrefix) { + st.doesNotThrow( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' does not throw' + ); + } else { + st['throws']( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' throws' + ); + } } } }