From 7abdd241612b0f2608ae21000a980d15f8cb878b Mon Sep 17 00:00:00 2001 From: Tiger Oakes Date: Mon, 2 Mar 2020 11:18:27 -0800 Subject: [PATCH] test(typescript): Add preserveModules test --- .../test/fixtures/preserve-modules/main.ts | 7 +++++++ .../test/fixtures/preserve-modules/tsconfig.json | 11 +++++++++++ packages/typescript/test/test.js | 13 +++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 packages/typescript/test/fixtures/preserve-modules/main.ts create mode 100644 packages/typescript/test/fixtures/preserve-modules/tsconfig.json diff --git a/packages/typescript/test/fixtures/preserve-modules/main.ts b/packages/typescript/test/fixtures/preserve-modules/main.ts new file mode 100644 index 000000000..281b086d4 --- /dev/null +++ b/packages/typescript/test/fixtures/preserve-modules/main.ts @@ -0,0 +1,7 @@ +/* eslint-disable */ +const b = () => { + const a = { a: 1, b: 2 }; + console.log({ ...a }); +}; + +export { b }; diff --git a/packages/typescript/test/fixtures/preserve-modules/tsconfig.json b/packages/typescript/test/fixtures/preserve-modules/tsconfig.json new file mode 100644 index 000000000..7a570de4e --- /dev/null +++ b/packages/typescript/test/fixtures/preserve-modules/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "allowSyntheticDefaultImports": true, + "downlevelIteration": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "module": "esnext", + "strict": true, + "target": "es5" + } +} diff --git a/packages/typescript/test/test.js b/packages/typescript/test/test.js index 0da0b48c1..b8f63dd85 100644 --- a/packages/typescript/test/test.js +++ b/packages/typescript/test/test.js @@ -589,6 +589,19 @@ test('should throw on bad options', async (t) => { ]); }); +test('creates _tslib.js file when preserveModules is used', async (t) => { + const bundle = await rollup({ + input: 'fixtures/preserve-modules/main.ts', + plugins: [typescript({ tsconfig: 'fixtures/preserve-modules/tsconfig.json' })], + preserveModules: true, + onwarn + }); + + const files = await getCode(bundle, { format: 'es' }, true); + t.true(files[0].fileName.includes('main.js'), files[0].fileName); + t.true(files[1].fileName.includes('tslib.es6.js'), files[1].fileName); +}); + test('should handle re-exporting types', async (t) => { const bundle = await rollup({ input: 'fixtures/reexport-type/main.ts',