diff --git a/packages/dynamic-import-vars/test/fixtures/fixture-no-files.js b/packages/dynamic-import-vars/test/fixtures/fixture-no-files.js new file mode 100644 index 000000000..361d07d60 --- /dev/null +++ b/packages/dynamic-import-vars/test/fixtures/fixture-no-files.js @@ -0,0 +1,3 @@ +export function importModule(name) { + return import(`./module-dir-c/${name}.js`); +} diff --git a/packages/dynamic-import-vars/test/rollup-plugin-dynamic-import-vars.test.js b/packages/dynamic-import-vars/test/rollup-plugin-dynamic-import-vars.test.js index e0e1f7d63..68be487af 100644 --- a/packages/dynamic-import-vars/test/rollup-plugin-dynamic-import-vars.test.js +++ b/packages/dynamic-import-vars/test/rollup-plugin-dynamic-import-vars.test.js @@ -204,3 +204,29 @@ test('dynamic imports assertions', async (t) => { ); t.snapshot(output[0].code); }); + +test("doesn't throw if no files in dir when option isn't set", async (t) => { + let thrown = false; + try { + await rollup({ + input: 'fixture-no-files.js', + plugins: [dynamicImportVars()] + }); + } catch (_) { + thrown = true; + } + t.false(thrown); +}); + +test('throws if no files in dir when option is set', async (t) => { + let thrown = false; + try { + await rollup({ + input: 'fixture-no-files.js', + plugins: [dynamicImportVars({ errorWhenNoFilesFound: true })] + }); + } catch (_) { + thrown = true; + } + t.true(thrown); +}); diff --git a/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.md b/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.md index 611c7f70f..0889053e5 100644 --- a/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.md +++ b/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.md @@ -234,3 +234,25 @@ Generated by [AVA](https://avajs.dev). ␊ export { importModule };␊ ` + +## no files in dir + +> Snapshot 1 + + `function __variableDynamicImportRuntime0__(path) {␊ + switch (path) {␊ + ␊ + default: return new Promise(function(resolve, reject) {␊ + (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(␊ + reject.bind(null, new Error("Unknown variable dynamic import: " + path))␊ + );␊ + })␊ + }␊ + }␊ + ␊ + function importModule(name) {␊ + return __variableDynamicImportRuntime0__(\`./module-dir-c/${name}.js\`);␊ + }␊ + ␊ + export { importModule };␊ + ` diff --git a/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.snap b/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.snap index 1239582e0..8ee67b5d8 100644 Binary files a/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.snap and b/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.snap differ