%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
const t = require('tap') const npm = { config: { data: { get: () => builtinConfMock, }, }, } const builtinConfMock = { loadError: new Error('no builtin config'), raw: { hasBuiltinConfig: true, x: 'y', nested: { foo: 'bar' } }, } const reifyOutput = () => {} let expectWrite = false const realFs = require('fs') const fs = { ...realFs, promises: realFs.promises && { ...realFs.promises, writeFile: async (path, data) => { if (!expectWrite) { throw new Error('did not expect to write builtin config file') } return realFs.promises.writeFile(path, data) }, }, } const reifyFinish = t.mock('../../../lib/utils/reify-finish.js', { fs, '../../../lib/utils/reify-output.js': reifyOutput, }) t.test('should not write if not global', async t => { expectWrite = false await reifyFinish(npm, { options: { global: false }, actualTree: {}, }) }) t.test('should not write if no global npm module', async t => { expectWrite = false await reifyFinish(npm, { options: { global: true }, actualTree: { inventory: new Map(), }, }) }) t.test('should not write if builtin conf had load error', async t => { expectWrite = false await reifyFinish(npm, { options: { global: true }, actualTree: { inventory: new Map([['node_modules/npm', {}]]), }, }) }) t.test('should write if everything above passes', async t => { expectWrite = true delete builtinConfMock.loadError const path = t.testdir() await reifyFinish(npm, { options: { global: true }, actualTree: { inventory: new Map([['node_modules/npm', { path }]]), }, }) // windowwwwwwssss!!!!! const data = fs.readFileSync(`${path}/npmrc`, 'utf8').replace(/\r\n/g, '\n') t.matchSnapshot(data, 'written config') })