diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6cbf5d3a40ee9..6e2b87104a203 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,7 @@ jobs: strategy: fail-fast: false matrix: - node-version: [10.x, 12.x, 14.x] + node-version: ['10.0', 10.x, '12.0', 12.x, '14.0', 14.x] platform: - os: ubuntu-latest shell: bash diff --git a/lib/utils/reify-finish.js b/lib/utils/reify-finish.js index 76dba06cb570c..9c95e9fcff24e 100644 --- a/lib/utils/reify-finish.js +++ b/lib/utils/reify-finish.js @@ -1,7 +1,9 @@ const reifyOutput = require('./reify-output.js') const npm = require('../npm.js') const ini = require('ini') -const {writeFile} = require('fs').promises +const util = require('util') +const fs = require('fs') +const { writeFile } = fs.promises || { writeFile: util.promisify(fs.writeFile) } const {resolve} = require('path') const reifyFinish = async arb => { diff --git a/test/lib/utils/reify-finish.js b/test/lib/utils/reify-finish.js index d6c7d2e7b2d6d..dc87050d4b229 100644 --- a/test/lib/utils/reify-finish.js +++ b/test/lib/utils/reify-finish.js @@ -78,3 +78,11 @@ t.test('should write if everything above passes', async t => { const data = fs.readFileSync(`${path}/npmrc`, 'utf8').replace(/\r\n/g, '\n') t.matchSnapshot(data, 'written config') }) + +t.test('works without fs.promises', async t => { + t.doesNotThrow(() => requireInject('../../../lib/utils/reify-finish.js', { + fs: { ...fs, promises: null }, + '../../../lib/npm.js': npm, + '../../../lib/utils/reify-output.js': reifyOutput, + })) +})