From 220d161eed0fb54c6f1bbadc81d472d3e5336b84 Mon Sep 17 00:00:00 2001 From: Matt Hamann Date: Wed, 24 Jan 2024 12:58:12 -0500 Subject: [PATCH] fix(esm): add unit test for require module --- package.json | 3 ++- test/esm/data/custom-logger.cjs | 8 ++++++++ test/esm/package.json | 3 +++ test/esm/util.test.js | 16 ++++++++++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 test/esm/data/custom-logger.cjs create mode 100644 test/esm/package.json create mode 100644 test/esm/util.test.js diff --git a/package.json b/package.json index a3eeaa12..1e1567f2 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,10 @@ "unit:ts-esm": "cross-env TS_NODE_PROJECT=./test/configs/ts-esm.tsconfig.json FASTIFY_AUTOLOAD_TYPESCRIPT=1 node -r ts-node/register --loader ts-node/esm suite-runner.js \"templates/app-ts-esm/test/**/*.test.ts\"", "unit:suites": "node should-skip-test-suites.js || npm run all-suites", "all-suites": "npm run unit:cjs && npm run unit:esm && npm run unit:ts-cjs && npm run unit:ts-esm", + "unit:cli-js-esm": "node suite-runner.js \"test/esm/**/*.test.js\"", "unit:cli-js": "tap \"test/**/*.test.js\" --no-coverage --timeout 400 --jobs 1 --color -R specy", "unit:cli-ts": "cross-env TS_NODE_PROJECT=./test/configs/ts-cjs.tsconfig.json tap \"test/**/*.test.ts\" --no-coverage --timeout 400 --jobs 1 --color -R specy", - "unit:cli": "npm run unit:cli-js && npm run unit:cli-ts", + "unit:cli": "npm run unit:cli-js && npm run unit:cli-ts && npm run unit:cli-js-esm", "test:cli-and-typescript": "npm run unit:cli && npm run test:typescript", "test:typescript": "tsd templates/plugin -t ./../../index.d.ts && tsc --project templates/app-ts/tsconfig.json --noEmit && tsc --project templates/app-ts-esm/tsconfig.json --noEmit" }, diff --git a/test/esm/data/custom-logger.cjs b/test/esm/data/custom-logger.cjs new file mode 100644 index 00000000..cfd70093 --- /dev/null +++ b/test/esm/data/custom-logger.cjs @@ -0,0 +1,8 @@ +'use strict' + +module.exports = { + name: 'Custom Logger', + customLevels: { + test: 99 + } +} diff --git a/test/esm/package.json b/test/esm/package.json new file mode 100644 index 00000000..47200257 --- /dev/null +++ b/test/esm/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/test/esm/util.test.js b/test/esm/util.test.js new file mode 100644 index 00000000..33472c9b --- /dev/null +++ b/test/esm/util.test.js @@ -0,0 +1,16 @@ +import { requireModule } from '../../util.js' +import { resolve, join } from 'node:path' +import t from 'tap' +import * as url from 'url' + +const test = t.test + +const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) + +test('requiring a commonjs module works in an esm project', (t) => { + t.plan(1) + const module = requireModule( + resolve(join(__dirname, './data/custom-logger.cjs')) + ) + t.strictSame(module, { name: 'Custom Logger', customLevels: { test: 99 } }) +})