From 4788c0d2a02a2e7c7088c6f39d9f13a4209ba863 Mon Sep 17 00:00:00 2001 From: Colin Ihrig Date: Fri, 6 Jan 2023 14:34:12 -0500 Subject: [PATCH] test_runner: make built in reporters internal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit updates the test runner to make the built in test reporters internal modules. PR-URL: https://github.com/nodejs/node/pull/46092 Reviewed-By: Tobias Nießen Reviewed-By: Antoine du Hamel Reviewed-By: Moshe Atlow --- .../test_runner}/reporter/dot.js | 0 .../test_runner}/reporter/spec.js | 0 .../test_runner}/reporter/tap.js | 0 lib/internal/test_runner/utils.js | 37 +++++++++++++------ 4 files changed, 26 insertions(+), 11 deletions(-) rename lib/{test => internal/test_runner}/reporter/dot.js (100%) rename lib/{test => internal/test_runner}/reporter/spec.js (100%) rename lib/{test => internal/test_runner}/reporter/tap.js (100%) diff --git a/lib/test/reporter/dot.js b/lib/internal/test_runner/reporter/dot.js similarity index 100% rename from lib/test/reporter/dot.js rename to lib/internal/test_runner/reporter/dot.js diff --git a/lib/test/reporter/spec.js b/lib/internal/test_runner/reporter/spec.js similarity index 100% rename from lib/test/reporter/spec.js rename to lib/internal/test_runner/reporter/spec.js diff --git a/lib/test/reporter/tap.js b/lib/internal/test_runner/reporter/tap.js similarity index 100% rename from lib/test/reporter/tap.js rename to lib/internal/test_runner/reporter/tap.js diff --git a/lib/internal/test_runner/utils.js b/lib/internal/test_runner/utils.js index 3fc99ce37cc33a..a7476c896648d5 100644 --- a/lib/internal/test_runner/utils.js +++ b/lib/internal/test_runner/utils.js @@ -93,28 +93,43 @@ const kBuiltinDestinations = new SafeMap([ ]); const kBuiltinReporters = new SafeMap([ - ['spec', 'node:test/reporter/spec'], - ['dot', 'node:test/reporter/dot'], - ['tap', 'node:test/reporter/tap'], + ['spec', 'internal/test_runner/reporter/spec'], + ['dot', 'internal/test_runner/reporter/dot'], + ['tap', 'internal/test_runner/reporter/tap'], ]); const kDefaultReporter = 'tap'; const kDefaultDestination = 'stdout'; +function tryBuiltinReporter(name) { + const builtinPath = kBuiltinReporters.get(name); + + if (builtinPath === undefined) { + return; + } + + return require(builtinPath); +} + async function getReportersMap(reporters, destinations) { return SafePromiseAllReturnArrayLike(reporters, async (name, i) => { const destination = kBuiltinDestinations.get(destinations[i]) ?? createWriteStream(destinations[i]); // Load the test reporter passed to --test-reporter - const reporterSpecifier = kBuiltinReporters.get(name) ?? name; - let parentURL; - try { - parentURL = pathToFileURL(process.cwd() + '/').href; - } catch { - parentURL = 'file:///'; + let reporter = tryBuiltinReporter(name); + + if (reporter === undefined) { + let parentURL; + + try { + parentURL = pathToFileURL(process.cwd() + '/').href; + } catch { + parentURL = 'file:///'; + } + + const { esmLoader } = require('internal/process/esm_loader'); + reporter = await esmLoader.import(name, parentURL, ObjectCreate(null)); } - const { esmLoader } = require('internal/process/esm_loader'); - let reporter = await esmLoader.import(reporterSpecifier, parentURL, ObjectCreate(null)); if (reporter?.default) { reporter = reporter.default;