var fs = require('graceful-fs') var path = require('path') var mkdirp = require('mkdirp') var osenv = require('osenv') var rimraf = require('rimraf') var test = require('tap').test var common = require('../common-tap.js') var pkg = path.join(__dirname, path.basename(__filename, '.js')) var EXEC_OPTS = { cwd: pkg } var json = { name: 'install-test-cli-without-package-lock', description: 'fixture', version: '0.0.0', dependencies: { dependency: 'file:./dependency' } } var dependency = { name: 'dependency', description: 'fixture', version: '0.0.0' } test('setup', function (t) { setup() t.pass('setup ran') t.end() }) test('\'npm install-test\' should not generate package-lock.json.*', function (t) { common.npm(['install-test'], EXEC_OPTS, function (err, code, stderr, stdout) { if (err) throw err t.comment(stdout.trim()) t.comment(stderr.trim()) t.is(code, 0, 'npm install did not raise error code') var files = fs.readdirSync(pkg).filter(function (f) { return f.indexOf('package-lock.json.') === 0 }) t.notOk( files.length > 0, 'package-lock.json.* should not be generated: ' + files ) t.end() }) }) test('cleanup', function (t) { cleanup() t.pass('cleaned up') t.end() }) function setup () { mkdirp.sync(path.join(pkg, 'dependency')) fs.writeFileSync( path.join(pkg, 'dependency', 'package.json'), JSON.stringify(dependency, null, 2) ) mkdirp.sync(path.join(pkg, 'node_modules')) fs.writeFileSync( path.join(pkg, 'package.json'), JSON.stringify(json, null, 2) ) // Disable package-lock fs.writeFileSync( path.join(pkg, '.npmrc'), 'package-lock=false\n' ) process.chdir(pkg) } function cleanup () { process.chdir(osenv.tmpdir()) rimraf.sync(pkg) }