From c9c443c57a6c636d9400ba5983b2f14a347a169c Mon Sep 17 00:00:00 2001 From: James Addison Date: Sun, 20 Jun 2021 18:17:08 +0100 Subject: [PATCH] Test coverage: add test case to confirm that moduleType overrides are applied for ts-node in loader mode --- src/test/index.spec.ts | 7 +++++++ tests/module-types/src/cjs-subdir/esm-exception/index.ts | 3 +++ tests/module-types/src/cjs-subdir/index.ts | 2 ++ tests/module-types/test.esm.js | 7 +++++++ 4 files changed, 19 insertions(+) create mode 100644 tests/module-types/src/cjs-subdir/esm-exception/index.ts create mode 100644 tests/module-types/test.esm.js diff --git a/src/test/index.spec.ts b/src/test/index.spec.ts index 5fda4567e..6445e8d90 100644 --- a/src/test/index.spec.ts +++ b/src/test/index.spec.ts @@ -1888,5 +1888,12 @@ test.suite('ts-node', (test) => { expect(stdout).to.contain('CommonJS'); }); } + + test('moduleTypes can override module type to CJS in an ESM loader project', async () => { + const { err, stderr, stdout } = await exec( + `${cmd} ./module-types/test.esm.js` + ); + expect(err).to.equal(null); + }); }); }); diff --git a/tests/module-types/src/cjs-subdir/esm-exception/index.ts b/tests/module-types/src/cjs-subdir/esm-exception/index.ts new file mode 100644 index 000000000..62b62d0aa --- /dev/null +++ b/tests/module-types/src/cjs-subdir/esm-exception/index.ts @@ -0,0 +1,3 @@ +export const cjs: boolean = true; + +export const requireType = typeof require; diff --git a/tests/module-types/src/cjs-subdir/index.ts b/tests/module-types/src/cjs-subdir/index.ts index a9a1650ec..62b62d0aa 100644 --- a/tests/module-types/src/cjs-subdir/index.ts +++ b/tests/module-types/src/cjs-subdir/index.ts @@ -1 +1,3 @@ export const cjs: boolean = true; + +export const requireType = typeof require; diff --git a/tests/module-types/test.esm.js b/tests/module-types/test.esm.js new file mode 100644 index 000000000..ee7463cce --- /dev/null +++ b/tests/module-types/test.esm.js @@ -0,0 +1,7 @@ +import assert from 'assert'; + +import cjsSubdirCJS from './src/cjs-subdir'; +import cjsSubdirESM from './src/cjs-subdir/esm-exception'; + +assert(cjsSubdirCJS.requireType === 'function'); +assert(cjsSubdirESM.requireType === 'undefined');