From 78249a1858f1cac6fa8129984ce64787f3014d33 Mon Sep 17 00:00:00 2001 From: Joel Mukuthu Date: Fri, 15 Sep 2023 19:18:10 +0200 Subject: [PATCH] chore(ci): make tests pass on Node.js versions that support ESM --- test/unexpected-knex.spec.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/test/unexpected-knex.spec.js b/test/unexpected-knex.spec.js index 38fa199..534eb40 100644 --- a/test/unexpected-knex.spec.js +++ b/test/unexpected-knex.spec.js @@ -8,10 +8,14 @@ const unexpectedKnex = require('../lib/unexpected-knex'); const dontIndent = require('dedent-js'); const assertErrorOuput = process.env.ASSERT_ERROR_OUTPUT !== 'false'; -// This file is `require`d here so that it's cached by Node.js before we go -// ahead and mock out `require`, since knex's migrator require's it while doing -// its job. +// This file is `require`d lazily by Knex's migrator, so we have to require it +// here so that it's cached by Node.js before we go on to mock out `require`. require('knex/lib/util/import-file.js'); +// Knex `require`s migrations lazily and in the process tries to figure out if +// it should use `import` or `require`. The following hacks make it bypass those +// checks and default to using `require`. +if (process.env.npm_package_json) delete process.env.npm_package_json; +if (process.env.npm_package_type) delete process.env.npm_package_type; describe('unexpected-knex', function () { const host = process.env.PGHOST || 'localhost';