From 0bc81a654c6bdd8d12a89c45c6d84eabf2d97e63 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Fri, 24 Jan 2020 06:18:09 +0100 Subject: [PATCH] Improve coverage --- .../dynamic-import-inlining-object/_config.js | 7 +++++++ .../_expected/amd/entry.js | 17 +++++++++++++++++ .../_expected/cjs/entry.js | 15 +++++++++++++++ .../_expected/es/entry.js | 11 +++++++++++ .../_expected/system/entry.js | 18 ++++++++++++++++++ .../dynamic-import-inlining-object/foo.js | 1 + .../dynamic-import-inlining-object/main.js | 2 ++ .../dynamic-import-inlining-array/_config.js | 7 +++++++ .../dynamic-import-inlining-array/_expected.js | 11 +++++++++++ .../dynamic-import-inlining-array/foo.js | 1 + .../dynamic-import-inlining-array/main.js | 2 ++ .../dynamic-import-duplicates/_config.js | 10 +--------- .../samples/dynamic-import-existing/_config.js | 10 ---------- .../dynamic-import-expression/_config.js | 2 +- .../samples/dynamic-import-inlining/_config.js | 10 +--------- .../dynamic-import-rewriting/_config.js | 2 +- .../_config.js | 2 +- .../lib.js | 0 .../main.js | 0 .../_config.js | 11 +++++++++++ .../inline-imports-with-multiple-object/lib.js | 1 + .../main.js | 1 + 22 files changed, 110 insertions(+), 31 deletions(-) create mode 100644 test/chunking-form/samples/dynamic-import-inlining-object/_config.js create mode 100644 test/chunking-form/samples/dynamic-import-inlining-object/_expected/amd/entry.js create mode 100644 test/chunking-form/samples/dynamic-import-inlining-object/_expected/cjs/entry.js create mode 100644 test/chunking-form/samples/dynamic-import-inlining-object/_expected/es/entry.js create mode 100644 test/chunking-form/samples/dynamic-import-inlining-object/_expected/system/entry.js create mode 100644 test/chunking-form/samples/dynamic-import-inlining-object/foo.js create mode 100644 test/chunking-form/samples/dynamic-import-inlining-object/main.js create mode 100644 test/form/samples/dynamic-import-inlining-array/_config.js create mode 100644 test/form/samples/dynamic-import-inlining-array/_expected.js create mode 100644 test/form/samples/dynamic-import-inlining-array/foo.js create mode 100644 test/form/samples/dynamic-import-inlining-array/main.js rename test/function/samples/{inline-imports-with-multiple => inline-imports-with-multiple-array}/_config.js (68%) rename test/function/samples/{inline-imports-with-multiple => inline-imports-with-multiple-array}/lib.js (100%) rename test/function/samples/{inline-imports-with-multiple => inline-imports-with-multiple-array}/main.js (100%) create mode 100644 test/function/samples/inline-imports-with-multiple-object/_config.js create mode 100644 test/function/samples/inline-imports-with-multiple-object/lib.js create mode 100644 test/function/samples/inline-imports-with-multiple-object/main.js diff --git a/test/chunking-form/samples/dynamic-import-inlining-object/_config.js b/test/chunking-form/samples/dynamic-import-inlining-object/_config.js new file mode 100644 index 00000000000..5adf9230f61 --- /dev/null +++ b/test/chunking-form/samples/dynamic-import-inlining-object/_config.js @@ -0,0 +1,7 @@ +module.exports = { + description: 'supports an object with a single entry when inlining dynamic imports', + options: { + inlineDynamicImports: true, + input: { entry: 'main' } + } +}; diff --git a/test/chunking-form/samples/dynamic-import-inlining-object/_expected/amd/entry.js b/test/chunking-form/samples/dynamic-import-inlining-object/_expected/amd/entry.js new file mode 100644 index 00000000000..87c533f4a08 --- /dev/null +++ b/test/chunking-form/samples/dynamic-import-inlining-object/_expected/amd/entry.js @@ -0,0 +1,17 @@ +define(['exports'], function (exports) { 'use strict'; + + const bar = 2; + Promise.resolve().then(function () { return foo$1; }); + + const foo = 1; + + var foo$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + foo: foo + }); + + exports.bar = bar; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}); diff --git a/test/chunking-form/samples/dynamic-import-inlining-object/_expected/cjs/entry.js b/test/chunking-form/samples/dynamic-import-inlining-object/_expected/cjs/entry.js new file mode 100644 index 00000000000..188ad126796 --- /dev/null +++ b/test/chunking-form/samples/dynamic-import-inlining-object/_expected/cjs/entry.js @@ -0,0 +1,15 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const bar = 2; +Promise.resolve().then(function () { return foo$1; }); + +const foo = 1; + +var foo$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + foo: foo +}); + +exports.bar = bar; diff --git a/test/chunking-form/samples/dynamic-import-inlining-object/_expected/es/entry.js b/test/chunking-form/samples/dynamic-import-inlining-object/_expected/es/entry.js new file mode 100644 index 00000000000..ae434046e6c --- /dev/null +++ b/test/chunking-form/samples/dynamic-import-inlining-object/_expected/es/entry.js @@ -0,0 +1,11 @@ +const bar = 2; +Promise.resolve().then(function () { return foo$1; }); + +const foo = 1; + +var foo$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + foo: foo +}); + +export { bar }; diff --git a/test/chunking-form/samples/dynamic-import-inlining-object/_expected/system/entry.js b/test/chunking-form/samples/dynamic-import-inlining-object/_expected/system/entry.js new file mode 100644 index 00000000000..0ac064e426c --- /dev/null +++ b/test/chunking-form/samples/dynamic-import-inlining-object/_expected/system/entry.js @@ -0,0 +1,18 @@ +System.register([], function (exports) { + 'use strict'; + return { + execute: function () { + + const bar = exports('bar', 2); + Promise.resolve().then(function () { return foo$1; }); + + const foo = 1; + + var foo$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + foo: foo + }); + + } + }; +}); diff --git a/test/chunking-form/samples/dynamic-import-inlining-object/foo.js b/test/chunking-form/samples/dynamic-import-inlining-object/foo.js new file mode 100644 index 00000000000..6a8018af412 --- /dev/null +++ b/test/chunking-form/samples/dynamic-import-inlining-object/foo.js @@ -0,0 +1 @@ +export const foo = 1; \ No newline at end of file diff --git a/test/chunking-form/samples/dynamic-import-inlining-object/main.js b/test/chunking-form/samples/dynamic-import-inlining-object/main.js new file mode 100644 index 00000000000..ee3e6a770d6 --- /dev/null +++ b/test/chunking-form/samples/dynamic-import-inlining-object/main.js @@ -0,0 +1,2 @@ +export const bar = 2; +import('./foo.js'); diff --git a/test/form/samples/dynamic-import-inlining-array/_config.js b/test/form/samples/dynamic-import-inlining-array/_config.js new file mode 100644 index 00000000000..f426fa668a1 --- /dev/null +++ b/test/form/samples/dynamic-import-inlining-array/_config.js @@ -0,0 +1,7 @@ +module.exports = { + description: 'supports an array with a single entry when inlining dynamic imports', + options: { + inlineDynamicImports: true, + input: ['main'] + } +}; diff --git a/test/form/samples/dynamic-import-inlining-array/_expected.js b/test/form/samples/dynamic-import-inlining-array/_expected.js new file mode 100644 index 00000000000..ae434046e6c --- /dev/null +++ b/test/form/samples/dynamic-import-inlining-array/_expected.js @@ -0,0 +1,11 @@ +const bar = 2; +Promise.resolve().then(function () { return foo$1; }); + +const foo = 1; + +var foo$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + foo: foo +}); + +export { bar }; diff --git a/test/form/samples/dynamic-import-inlining-array/foo.js b/test/form/samples/dynamic-import-inlining-array/foo.js new file mode 100644 index 00000000000..6a8018af412 --- /dev/null +++ b/test/form/samples/dynamic-import-inlining-array/foo.js @@ -0,0 +1 @@ +export const foo = 1; \ No newline at end of file diff --git a/test/form/samples/dynamic-import-inlining-array/main.js b/test/form/samples/dynamic-import-inlining-array/main.js new file mode 100644 index 00000000000..ee3e6a770d6 --- /dev/null +++ b/test/form/samples/dynamic-import-inlining-array/main.js @@ -0,0 +1,2 @@ +export const bar = 2; +import('./foo.js'); diff --git a/test/function/samples/dynamic-import-duplicates/_config.js b/test/function/samples/dynamic-import-duplicates/_config.js index 738fe24c655..9fd9be2f7c6 100644 --- a/test/function/samples/dynamic-import-duplicates/_config.js +++ b/test/function/samples/dynamic-import-duplicates/_config.js @@ -1,17 +1,9 @@ const assert = require('assert'); -const path = require('path'); module.exports = { description: 'Dynamic import inlining', options: { - inlineDynamicImports: true, - plugins: [ - { - resolveDynamicImport(specifier, parent) { - if (specifier === './main') return path.resolve(__dirname, 'main.js'); - } - } - ] + inlineDynamicImports: true }, exports(exports) { assert.equal(exports.x, 41); diff --git a/test/function/samples/dynamic-import-existing/_config.js b/test/function/samples/dynamic-import-existing/_config.js index 45b90f8f6e3..cc0a31d2825 100644 --- a/test/function/samples/dynamic-import-existing/_config.js +++ b/test/function/samples/dynamic-import-existing/_config.js @@ -1,17 +1,7 @@ const assert = require('assert'); -const path = require('path'); module.exports = { description: 'Dynamic import inlining when resolution id is a module in the bundle', - options: { - plugins: [ - { - resolveDynamicImport(specifier, parent) { - if (specifier === './main') return path.resolve(__dirname, 'main.js'); - } - } - ] - }, exports(exports) { assert.equal(exports.y, 42); return Promise.resolve(exports.promise).then(val => { diff --git a/test/function/samples/dynamic-import-expression/_config.js b/test/function/samples/dynamic-import-expression/_config.js index e759d62c9af..b06c2ee080f 100644 --- a/test/function/samples/dynamic-import-expression/_config.js +++ b/test/function/samples/dynamic-import-expression/_config.js @@ -5,7 +5,7 @@ module.exports = { options: { plugins: [ { - resolveDynamicImport(specifier, parent) { + resolveDynamicImport(specifier) { if (typeof specifier !== 'string') { // string literal concatenation if ( diff --git a/test/function/samples/dynamic-import-inlining/_config.js b/test/function/samples/dynamic-import-inlining/_config.js index 738fe24c655..9fd9be2f7c6 100644 --- a/test/function/samples/dynamic-import-inlining/_config.js +++ b/test/function/samples/dynamic-import-inlining/_config.js @@ -1,17 +1,9 @@ const assert = require('assert'); -const path = require('path'); module.exports = { description: 'Dynamic import inlining', options: { - inlineDynamicImports: true, - plugins: [ - { - resolveDynamicImport(specifier, parent) { - if (specifier === './main') return path.resolve(__dirname, 'main.js'); - } - } - ] + inlineDynamicImports: true }, exports(exports) { assert.equal(exports.x, 41); diff --git a/test/function/samples/dynamic-import-rewriting/_config.js b/test/function/samples/dynamic-import-rewriting/_config.js index a34764a8406..3680137bc34 100644 --- a/test/function/samples/dynamic-import-rewriting/_config.js +++ b/test/function/samples/dynamic-import-rewriting/_config.js @@ -6,7 +6,7 @@ module.exports = { external: ['asdf'], plugins: [ { - resolveDynamicImport(specifier, parent) { + resolveDynamicImport() { return 'asdf'; } } diff --git a/test/function/samples/inline-imports-with-multiple/_config.js b/test/function/samples/inline-imports-with-multiple-array/_config.js similarity index 68% rename from test/function/samples/inline-imports-with-multiple/_config.js rename to test/function/samples/inline-imports-with-multiple-array/_config.js index 4b5bfd77774..4164867fe1c 100644 --- a/test/function/samples/inline-imports-with-multiple/_config.js +++ b/test/function/samples/inline-imports-with-multiple-array/_config.js @@ -1,5 +1,5 @@ module.exports = { - description: 'Having multiple inputs is not supported when inlining dynamic imports', + description: 'Having multiple inputs in an array is not supported when inlining dynamic imports', options: { input: ['main.js', 'lib.js'], inlineDynamicImports: true diff --git a/test/function/samples/inline-imports-with-multiple/lib.js b/test/function/samples/inline-imports-with-multiple-array/lib.js similarity index 100% rename from test/function/samples/inline-imports-with-multiple/lib.js rename to test/function/samples/inline-imports-with-multiple-array/lib.js diff --git a/test/function/samples/inline-imports-with-multiple/main.js b/test/function/samples/inline-imports-with-multiple-array/main.js similarity index 100% rename from test/function/samples/inline-imports-with-multiple/main.js rename to test/function/samples/inline-imports-with-multiple-array/main.js diff --git a/test/function/samples/inline-imports-with-multiple-object/_config.js b/test/function/samples/inline-imports-with-multiple-object/_config.js new file mode 100644 index 00000000000..417b1ccdc15 --- /dev/null +++ b/test/function/samples/inline-imports-with-multiple-object/_config.js @@ -0,0 +1,11 @@ +module.exports = { + description: 'Having multiple inputs in an object is not supported when inlining dynamic imports', + options: { + input: { main: 'main.js', lib: 'lib.js' }, + inlineDynamicImports: true + }, + error: { + code: 'INVALID_OPTION', + message: 'Multiple inputs are not supported for "inlineDynamicImports".' + } +}; diff --git a/test/function/samples/inline-imports-with-multiple-object/lib.js b/test/function/samples/inline-imports-with-multiple-object/lib.js new file mode 100644 index 00000000000..46d3ca8c61f --- /dev/null +++ b/test/function/samples/inline-imports-with-multiple-object/lib.js @@ -0,0 +1 @@ +export const value = 42; diff --git a/test/function/samples/inline-imports-with-multiple-object/main.js b/test/function/samples/inline-imports-with-multiple-object/main.js new file mode 100644 index 00000000000..4869dc82f38 --- /dev/null +++ b/test/function/samples/inline-imports-with-multiple-object/main.js @@ -0,0 +1 @@ +import('./lib').then(({value}) => assert.equal(value, 42));