From 61e0d7dc495b538facb4b4a5ec1a34429abe81a9 Mon Sep 17 00:00:00 2001 From: Ben Scott Date: Sun, 14 Nov 2021 12:17:22 +0000 Subject: [PATCH] Add new test for virtual file output when modifying entryFileNames Use entryFileNames to change the extension of the filename to be mjs, and see that the file created from the virtual file chunk has a .mjs extension Note that the amd definition contains the .mjs extension, as amd ids only strip the .js file extension, which is slightly odd but probably ok as this amd is not the targetted usecase for this behaviour --- .../_config.js | 23 +++++++++++++++++++ .../_expected/amd/_virtual/_virtualModule.mjs | 9 ++++++++ .../_expected/amd/main.mjs | 5 ++++ .../_expected/cjs/_virtual/_virtualModule.mjs | 7 ++++++ .../_expected/cjs/main.mjs | 5 ++++ .../_expected/es/_virtual/_virtualModule.mjs | 3 +++ .../_expected/es/main.mjs | 3 +++ .../system/_virtual/_virtualModule.mjs | 10 ++++++++ .../_expected/system/main.mjs | 14 +++++++++++ .../main.js | 1 + 10 files changed, 80 insertions(+) create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_config.js create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/amd/_virtual/_virtualModule.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/amd/main.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/cjs/_virtual/_virtualModule.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/cjs/main.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/es/_virtual/_virtualModule.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/es/main.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/system/_virtual/_virtualModule.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/system/main.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/main.js diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_config.js b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_config.js new file mode 100644 index 00000000000..eaabe5c49c4 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_config.js @@ -0,0 +1,23 @@ +module.exports = { + description: + 'Generates actual files whose filename adheres to entryFileNames for virtual modules when preserving modules', + options: { + input: 'main.js', + output: { preserveModules: true, entryFileNames: '[name][assetExtname].mjs' }, + plugins: [ + { + resolveId(id) { + if (id === '\0virtualModule') return id; + }, + load(id) { + if (id !== '\0virtualModule') return null; + return 'export const virtual = "Virtual!";\n'; + }, + transform(code, id) { + if (id === '\0virtualModule') return null; + return 'import {virtual} from "\0virtualModule";\n' + code; + } + } + ] + } +}; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/amd/_virtual/_virtualModule.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/amd/_virtual/_virtualModule.mjs new file mode 100644 index 00000000000..ce212753ac0 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/amd/_virtual/_virtualModule.mjs @@ -0,0 +1,9 @@ +define(['exports'], (function (exports) { 'use strict'; + + const virtual = "Virtual!"; + + exports.virtual = virtual; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/amd/main.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/amd/main.mjs new file mode 100644 index 00000000000..a6f25accc45 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/amd/main.mjs @@ -0,0 +1,5 @@ +define(['./_virtual/_virtualModule.mjs'], (function (_virtualModule) { 'use strict'; + + assert.equal(_virtualModule.virtual, 'Virtual!'); + +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/cjs/_virtual/_virtualModule.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/cjs/_virtual/_virtualModule.mjs new file mode 100644 index 00000000000..3b40ebf67c2 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/cjs/_virtual/_virtualModule.mjs @@ -0,0 +1,7 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const virtual = "Virtual!"; + +exports.virtual = virtual; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/cjs/main.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/cjs/main.mjs new file mode 100644 index 00000000000..d6bef271070 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/cjs/main.mjs @@ -0,0 +1,5 @@ +'use strict'; + +var _virtualModule = require('./_virtual/_virtualModule.mjs'); + +assert.equal(_virtualModule.virtual, 'Virtual!'); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/es/_virtual/_virtualModule.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/es/_virtual/_virtualModule.mjs new file mode 100644 index 00000000000..2bada18c396 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/es/_virtual/_virtualModule.mjs @@ -0,0 +1,3 @@ +const virtual = "Virtual!"; + +export { virtual }; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/es/main.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/es/main.mjs new file mode 100644 index 00000000000..014c6cf7fca --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/es/main.mjs @@ -0,0 +1,3 @@ +import { virtual } from './_virtual/_virtualModule.mjs'; + +assert.equal(virtual, 'Virtual!'); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/system/_virtual/_virtualModule.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/system/_virtual/_virtualModule.mjs new file mode 100644 index 00000000000..51cfccb8a68 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/system/_virtual/_virtualModule.mjs @@ -0,0 +1,10 @@ +System.register([], (function (exports) { + 'use strict'; + return { + execute: (function () { + + const virtual = exports('virtual', "Virtual!"); + + }) + }; +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/system/main.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/system/main.mjs new file mode 100644 index 00000000000..6c3d2ea5422 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/_expected/system/main.mjs @@ -0,0 +1,14 @@ +System.register(['./_virtual/_virtualModule.mjs'], (function () { + 'use strict'; + var virtual; + return { + setters: [function (module) { + virtual = module.virtual; + }], + execute: (function () { + + assert.equal(virtual, 'Virtual!'); + + }) + }; +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/main.js b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/main.js new file mode 100644 index 00000000000..505982998fa --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-follows-entry-filenames/main.js @@ -0,0 +1 @@ +assert.equal(virtual, 'Virtual!');