From a49072f96857a1e4ceb5147dc95fad73c6b26ab9 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 | 34 +++++++++++++++++++ .../_virtual/entry-_virtualModule-amd-.mjs | 9 +++++ ...y-_virtualWithAssetExt-amd-str.str.str.mjs | 9 +++++ .../entry-_virtualWithExt-amd-js.js.mjs | 9 +++++ .../_expected/amd/entry-main-amd-js.js.mjs | 7 ++++ .../_virtual/entry-_virtualModule-cjs-.mjs | 7 ++++ ...y-_virtualWithAssetExt-cjs-str.str.str.mjs | 7 ++++ .../entry-_virtualWithExt-cjs-js.js.mjs | 7 ++++ .../_expected/cjs/entry-main-cjs-js.js.mjs | 9 +++++ .../es/_virtual/entry-_virtualModule-es-.mjs | 3 ++ ...ry-_virtualWithAssetExt-es-str.str.str.mjs | 3 ++ .../entry-_virtualWithExt-es-js.js.mjs | 3 ++ .../_expected/es/entry-main-es-js.js.mjs | 7 ++++ .../_virtual/entry-_virtualModule-system-.mjs | 10 ++++++ ...virtualWithAssetExt-system-str.str.str.mjs | 10 ++++++ .../entry-_virtualWithExt-system-js.js.mjs | 10 ++++++ .../system/entry-main-system-js.js.mjs | 20 +++++++++++ .../main.js | 3 ++ 18 files changed, 167 insertions(+) create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_config.js create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualModule-amd-.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithAssetExt-amd-str.str.str.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithExt-amd-js.js.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/entry-main-amd-js.js.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualModule-cjs-.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithAssetExt-cjs-str.str.str.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithExt-cjs-js.js.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/entry-main-cjs-js.js.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualModule-es-.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithAssetExt-es-str.str.str.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithExt-es-js.js.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/entry-main-es-js.js.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualModule-system-.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithAssetExt-system-str.str.str.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithExt-system-js.js.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/entry-main-system-js.js.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/main.js diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_config.js b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_config.js new file mode 100644 index 00000000000..7fb5e301d03 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_config.js @@ -0,0 +1,34 @@ +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: 'entry-[name]-[format]-[ext][extname][assetExtname].mjs' + }, + plugins: [ + { + resolveId(id) { + if (id === '\0virtualModule') return id; + if (id === '\0virtualWithExt.js') return id; + if (id === '\0virtualWithAssetExt.str') return id; + }, + load(id) { + if (id === '\0virtualModule') return 'export const virtual = "Virtual!";\n'; + if (id === '\0virtualWithExt.js') return 'export const virtual2 = "Virtual2!";\n'; + if (id === '\0virtualWithAssetExt.str') return 'export const virtual3 = "Virtual3!";\n'; + }, + transform(code, id) { + if (id === '\0virtualModule') return null; + if (id === '\0virtualWithExt.js') return null; + if (id === '\0virtualWithAssetExt.str') return null; + return ( + 'import {virtual} from "\0virtualModule";\nimport {virtual2} from "\0virtualWithExt.js";\nimport {virtual3} from "\0virtualWithAssetExt.str";' + + code + ); + } + } + ] + } +}; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualModule-amd-.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualModule-amd-.mjs new file mode 100644 index 00000000000..ce212753ac0 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualModule-amd-.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-filename-pattern/_expected/amd/_virtual/entry-_virtualWithAssetExt-amd-str.str.str.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithAssetExt-amd-str.str.str.mjs new file mode 100644 index 00000000000..41ae4d0466c --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithAssetExt-amd-str.str.str.mjs @@ -0,0 +1,9 @@ +define(['exports'], (function (exports) { 'use strict'; + + const virtual3 = "Virtual3!"; + + exports.virtual3 = virtual3; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithExt-amd-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithExt-amd-js.js.mjs new file mode 100644 index 00000000000..b59abe59669 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithExt-amd-js.js.mjs @@ -0,0 +1,9 @@ +define(['exports'], (function (exports) { 'use strict'; + + const virtual2 = "Virtual2!"; + + exports.virtual2 = virtual2; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/entry-main-amd-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/entry-main-amd-js.js.mjs new file mode 100644 index 00000000000..27fc4a86228 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/entry-main-amd-js.js.mjs @@ -0,0 +1,7 @@ +define(['./_virtual/entry-_virtualModule-amd-.mjs', './_virtual/entry-_virtualWithExt-amd-js.js.mjs', './_virtual/entry-_virtualWithAssetExt-amd-str.str.str.mjs'], (function (_virtualModule, _virtualWithExt, _virtualWithAssetExt) { 'use strict'; + + assert.equal(_virtualModule.virtual, 'Virtual!'); + assert.equal(_virtualWithExt.virtual2, 'Virtual2!'); + assert.equal(_virtualWithAssetExt.virtual3, 'Virtual3!'); + +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualModule-cjs-.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualModule-cjs-.mjs new file mode 100644 index 00000000000..3b40ebf67c2 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualModule-cjs-.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-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithAssetExt-cjs-str.str.str.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithAssetExt-cjs-str.str.str.mjs new file mode 100644 index 00000000000..1be612fa656 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithAssetExt-cjs-str.str.str.mjs @@ -0,0 +1,7 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const virtual3 = "Virtual3!"; + +exports.virtual3 = virtual3; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithExt-cjs-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithExt-cjs-js.js.mjs new file mode 100644 index 00000000000..6c1f17fcbe4 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithExt-cjs-js.js.mjs @@ -0,0 +1,7 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const virtual2 = "Virtual2!"; + +exports.virtual2 = virtual2; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/entry-main-cjs-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/entry-main-cjs-js.js.mjs new file mode 100644 index 00000000000..fc2cfa868da --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/entry-main-cjs-js.js.mjs @@ -0,0 +1,9 @@ +'use strict'; + +var _virtualModule = require('./_virtual/entry-_virtualModule-cjs-.mjs'); +var _virtualWithExt = require('./_virtual/entry-_virtualWithExt-cjs-js.js.mjs'); +var _virtualWithAssetExt = require('./_virtual/entry-_virtualWithAssetExt-cjs-str.str.str.mjs'); + +assert.equal(_virtualModule.virtual, 'Virtual!'); +assert.equal(_virtualWithExt.virtual2, 'Virtual2!'); +assert.equal(_virtualWithAssetExt.virtual3, 'Virtual3!'); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualModule-es-.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualModule-es-.mjs new file mode 100644 index 00000000000..2bada18c396 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualModule-es-.mjs @@ -0,0 +1,3 @@ +const virtual = "Virtual!"; + +export { virtual }; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithAssetExt-es-str.str.str.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithAssetExt-es-str.str.str.mjs new file mode 100644 index 00000000000..51e7e8dd9ed --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithAssetExt-es-str.str.str.mjs @@ -0,0 +1,3 @@ +const virtual3 = "Virtual3!"; + +export { virtual3 }; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithExt-es-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithExt-es-js.js.mjs new file mode 100644 index 00000000000..b5c5634d0a3 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithExt-es-js.js.mjs @@ -0,0 +1,3 @@ +const virtual2 = "Virtual2!"; + +export { virtual2 }; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/entry-main-es-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/entry-main-es-js.js.mjs new file mode 100644 index 00000000000..4f449ad7730 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/entry-main-es-js.js.mjs @@ -0,0 +1,7 @@ +import { virtual } from './_virtual/entry-_virtualModule-es-.mjs'; +import { virtual2 } from './_virtual/entry-_virtualWithExt-es-js.js.mjs'; +import { virtual3 } from './_virtual/entry-_virtualWithAssetExt-es-str.str.str.mjs'; + +assert.equal(virtual, 'Virtual!'); +assert.equal(virtual2, 'Virtual2!'); +assert.equal(virtual3, 'Virtual3!'); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualModule-system-.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualModule-system-.mjs new file mode 100644 index 00000000000..51cfccb8a68 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualModule-system-.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-filename-pattern/_expected/system/_virtual/entry-_virtualWithAssetExt-system-str.str.str.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithAssetExt-system-str.str.str.mjs new file mode 100644 index 00000000000..d81822443bb --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithAssetExt-system-str.str.str.mjs @@ -0,0 +1,10 @@ +System.register([], (function (exports) { + 'use strict'; + return { + execute: (function () { + + const virtual3 = exports('virtual3', "Virtual3!"); + + }) + }; +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithExt-system-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithExt-system-js.js.mjs new file mode 100644 index 00000000000..3a4749cd582 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithExt-system-js.js.mjs @@ -0,0 +1,10 @@ +System.register([], (function (exports) { + 'use strict'; + return { + execute: (function () { + + const virtual2 = exports('virtual2', "Virtual2!"); + + }) + }; +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/entry-main-system-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/entry-main-system-js.js.mjs new file mode 100644 index 00000000000..f9381cf4e12 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/entry-main-system-js.js.mjs @@ -0,0 +1,20 @@ +System.register(['./_virtual/entry-_virtualModule-system-.mjs', './_virtual/entry-_virtualWithExt-system-js.js.mjs', './_virtual/entry-_virtualWithAssetExt-system-str.str.str.mjs'], (function () { + 'use strict'; + var virtual, virtual2, virtual3; + return { + setters: [function (module) { + virtual = module.virtual; + }, function (module) { + virtual2 = module.virtual2; + }, function (module) { + virtual3 = module.virtual3; + }], + execute: (function () { + + assert.equal(virtual, 'Virtual!'); + assert.equal(virtual2, 'Virtual2!'); + assert.equal(virtual3, 'Virtual3!'); + + }) + }; +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/main.js b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/main.js new file mode 100644 index 00000000000..f5d5d01a912 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/main.js @@ -0,0 +1,3 @@ +assert.equal(virtual, 'Virtual!'); +assert.equal(virtual2, 'Virtual2!'); +assert.equal(virtual3, 'Virtual3!');