From dc6a4d8960c99c50b260993997924354a77e435e Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Fri, 19 Jan 2024 09:52:14 +0100 Subject: [PATCH] Allow tests to specify an entry point for running the code --- packages/commonjs/src/helpers.js | 7 ++++ .../fixtures/function/dash-name/_config.js | 1 - .../dynamic-require-package-sub/_config.js | 2 +- .../sub/{entry.js => main.js} | 0 packages/commonjs/test/function.js | 7 +++- packages/commonjs/test/helpers/util.js | 10 ++--- .../commonjs/test/snapshots/function.js.md | 38 +++++++++--------- .../commonjs/test/snapshots/function.js.snap | Bin 22160 -> 22109 bytes packages/commonjs/test/test.js | 6 +-- 9 files changed, 40 insertions(+), 31 deletions(-) rename packages/commonjs/test/fixtures/function/dynamic-require-package-sub/sub/{entry.js => main.js} (100%) diff --git a/packages/commonjs/src/helpers.js b/packages/commonjs/src/helpers.js index a795a8aae..aa48bb52a 100644 --- a/packages/commonjs/src/helpers.js +++ b/packages/commonjs/src/helpers.js @@ -2,12 +2,19 @@ export const isWrappedId = (id, suffix) => id.endsWith(suffix); export const wrapId = (id, suffix) => `\0${id}${suffix}`; export const unwrapId = (wrappedId, suffix) => wrappedId.slice(1, -suffix.length); +// A proxy module when a module is required from non-wrapped CommonJS. Is different for ESM and CommonJS requires. export const PROXY_SUFFIX = '?commonjs-proxy'; +// Indicates that a required module is wrapped commonjs and needs special handling. export const WRAPPED_SUFFIX = '?commonjs-wrapped'; +// Indicates that a required module is external export const EXTERNAL_SUFFIX = '?commonjs-external'; +// A helper module that contains the exports object of a module export const EXPORTS_SUFFIX = '?commonjs-exports'; +// A helper module that contains the module object of a module, e.g. when module.exports is reassigned export const MODULE_SUFFIX = '?commonjs-module'; +// A special proxy for CommonJS entry points export const ENTRY_SUFFIX = '?commonjs-entry'; +// A proxy when wrapped ESM is required from CommonJS export const ES_IMPORT_SUFFIX = '?commonjs-es-import'; export const DYNAMIC_MODULES_ID = '\0commonjs-dynamic-modules'; diff --git a/packages/commonjs/test/fixtures/function/dash-name/_config.js b/packages/commonjs/test/fixtures/function/dash-name/_config.js index 4fd62f385..8a3c53e15 100644 --- a/packages/commonjs/test/fixtures/function/dash-name/_config.js +++ b/packages/commonjs/test/fixtures/function/dash-name/_config.js @@ -1,7 +1,6 @@ module.exports = { options: { output: { - file: 'output/bundle.js', format: 'cjs' } } diff --git a/packages/commonjs/test/fixtures/function/dynamic-require-package-sub/_config.js b/packages/commonjs/test/fixtures/function/dynamic-require-package-sub/_config.js index 486c9e07b..498afbe1b 100755 --- a/packages/commonjs/test/fixtures/function/dynamic-require-package-sub/_config.js +++ b/packages/commonjs/test/fixtures/function/dynamic-require-package-sub/_config.js @@ -6,7 +6,7 @@ const { nodeResolve } = require('@rollup/plugin-node-resolve'); module.exports = { description: 'resolves imports of node_modules from subdirectories', options: { - input: path.join(__dirname, 'sub/entry.js'), + input: path.join(__dirname, 'sub/main.js'), plugins: [nodeResolve(), json()] }, pluginOptions: { diff --git a/packages/commonjs/test/fixtures/function/dynamic-require-package-sub/sub/entry.js b/packages/commonjs/test/fixtures/function/dynamic-require-package-sub/sub/main.js similarity index 100% rename from packages/commonjs/test/fixtures/function/dynamic-require-package-sub/sub/entry.js rename to packages/commonjs/test/fixtures/function/dynamic-require-package-sub/sub/main.js diff --git a/packages/commonjs/test/function.js b/packages/commonjs/test/function.js index e3af774a4..b8701ef74 100644 --- a/packages/commonjs/test/function.js +++ b/packages/commonjs/test/function.js @@ -48,7 +48,12 @@ readdirSync('./fixtures/function').forEach((dir) => { console.groupEnd(); } } - const { exports, global, error } = runCodeSplitTest(codeMap, t, config.context); + const { exports, global, error } = runCodeSplitTest( + codeMap, + t, + config.testEntry || 'main.js', + config.context + ); if (config.exports) config.exports(exports, t); if (config.global) config.global(global, t); diff --git a/packages/commonjs/test/helpers/util.js b/packages/commonjs/test/helpers/util.js index 7ab558988..4d8bb2fda 100644 --- a/packages/commonjs/test/helpers/util.js +++ b/packages/commonjs/test/helpers/util.js @@ -27,7 +27,7 @@ function requireWithContext(code, context) { return contextWithExports.module.exports; } -function runCodeSplitTest(codeMap, t, configContext = {}) { +function runCodeSplitTest(codeMap, t, entryName = 'main.js', configContext = {}) { const requireFromOutputVia = (importer) => (importee) => { const outputId = path.posix.join(path.posix.dirname(importer), importee); const code = codeMap[outputId]; @@ -42,8 +42,6 @@ function runCodeSplitTest(codeMap, t, configContext = {}) { return require(importee); }; - const chunkNames = Object.keys(codeMap); - const entryName = chunkNames.length === 1 ? chunkNames[0] : 'main.js'; if (!codeMap[entryName]) { throw new Error( `Could not find entry "${entryName}" in generated output.\nChunks:\n${Object.keys( @@ -56,7 +54,7 @@ function runCodeSplitTest(codeMap, t, configContext = {}) { let exports; try { exports = requireWithContext(codeMap[entryName], { - require: requireFromOutputVia('main.js'), + require: requireFromOutputVia(entryName), ...context }); } catch (error) { @@ -84,9 +82,9 @@ async function getCodeFromBundle(bundle, customOptions = {}) { return (await bundle.generate(options)).output[0].code; } -async function executeBundle(bundle, t, { context, exports } = {}) { +async function executeBundle(bundle, t, { context, exports, testEntry = 'main.js' } = {}) { const codeMap = await getCodeMapFromBundle(bundle, exports ? { exports } : {}); - return runCodeSplitTest(codeMap, t, context); + return runCodeSplitTest(codeMap, t, testEntry, context); } module.exports = { diff --git a/packages/commonjs/test/snapshots/function.js.md b/packages/commonjs/test/snapshots/function.js.md index 39f7e4a38..496222c0e 100644 --- a/packages/commonjs/test/snapshots/function.js.md +++ b/packages/commonjs/test/snapshots/function.js.md @@ -490,7 +490,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 { - 'bundle.js': `'use strict';␊ + 'main.js': `'use strict';␊ ␊ function getDefaultExportFromCjs (x) {␊ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ @@ -2813,37 +2813,37 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 { - 'entry.js': `'use strict';␊ + 'main.js': `'use strict';␊ ␊ function getDefaultExportFromCjs (x) {␊ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ }␊ ␊ - var entry$2 = {};␊ - ␊ - var entry$1;␊ - var hasRequiredEntry$1;␊ - ␊ - function requireEntry$1 () {␊ - if (hasRequiredEntry$1) return entry$1;␊ - hasRequiredEntry$1 = 1;␊ - entry$1 = 'custom-module';␊ - return entry$1;␊ - }␊ + var main$1 = {};␊ ␊ + var entry;␊ var hasRequiredEntry;␊ ␊ function requireEntry () {␊ - if (hasRequiredEntry) return entry$2;␊ + if (hasRequiredEntry) return entry;␊ hasRequiredEntry = 1;␊ - t.is(requireEntry$1(), 'custom-module');␊ - return entry$2;␊ + entry = 'custom-module';␊ + return entry;␊ }␊ ␊ - var entryExports = requireEntry();␊ - var entry = /*@__PURE__*/getDefaultExportFromCjs(entryExports);␊ + var hasRequiredMain;␊ ␊ - module.exports = entry;␊ + function requireMain () {␊ + if (hasRequiredMain) return main$1;␊ + hasRequiredMain = 1;␊ + t.is(requireEntry(), 'custom-module');␊ + return main$1;␊ + }␊ + ␊ + var mainExports = requireMain();␊ + var main = /*@__PURE__*/getDefaultExportFromCjs(mainExports);␊ + ␊ + module.exports = main;␊ `, } diff --git a/packages/commonjs/test/snapshots/function.js.snap b/packages/commonjs/test/snapshots/function.js.snap index 65e219e64be9fc21d1e5edc42c71321bda5dbfa0..b8de618bc47e73b7c3d487f1978a7e28823ac81b 100644 GIT binary patch delta 20923 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 ZFV_T%;^HUBCQ=zX|NnC^Za3WN0{{TCKB52s diff --git a/packages/commonjs/test/test.js b/packages/commonjs/test/test.js index abcae8946..1ef56aa0d 100644 --- a/packages/commonjs/test/test.js +++ b/packages/commonjs/test/test.js @@ -324,7 +324,7 @@ test('can handle parens around right have node while producing default export', plugins: [commonjs()] }); - t.is((await executeBundle(bundle, t)).exports, 42); + t.is((await executeBundle(bundle, t, { testEntry: 'index.js' })).exports, 42); }); test('typeof transforms: correct-scoping', async (t) => { @@ -333,7 +333,7 @@ test('typeof transforms: correct-scoping', async (t) => { plugins: [commonjs()] }); - t.is((await executeBundle(bundle, t)).exports, 'object'); + t.is((await executeBundle(bundle, t, { testEntry: 'correct-scoping.js' })).exports, 'object'); }); test('typeof transforms: protobuf', async (t) => { @@ -343,7 +343,7 @@ test('typeof transforms: protobuf', async (t) => { plugins: [commonjs()] }); - t.is((await executeBundle(bundle, t)).exports, true); + t.is((await executeBundle(bundle, t, { testEntry: 'protobuf.js' })).exports, true); }); test('typeof transforms: sinon', async (t) => {