1var fs = require('fs') 2var resolve = require('path').resolve 3 4var mkdirp = require('mkdirp') 5var test = require('tap').test 6 7var common = require('../common-tap.js') 8 9var pkg = common.pkg 10var target = resolve(pkg, '_target') 11 12var EXEC_OPTS = { 13 cwd: target 14} 15 16var json = { 17 name: 'install-property-conflicts', 18 version: '1.2.3', 19 type: 'nose-boop!' 20} 21 22test('setup', function (t) { 23 // make sure it installs locally 24 mkdirp.sync(resolve(target, 'node_modules')) 25 fs.writeFileSync( 26 resolve(pkg, 'package.json'), 27 JSON.stringify(json, null, 2) + '\n' 28 ) 29 t.end() 30}) 31 32test('install package with a `type` property', function (t) { 33 t.comment('issue: https://github.com/npm/npm/issues/11398') 34 common.npm( 35 [ 36 'install', 37 '--prefix', target, 38 pkg 39 ], 40 EXEC_OPTS, 41 function (err, code, stdout, stderr) { 42 t.ifError(err, 'npm command ran from test') 43 t.equals(code, 0, 'install exited with success (0)') 44 var installedPkg = resolve( 45 target, 46 'node_modules', 47 'install-property-conflicts', 48 'package.json') 49 t.ok(fs.statSync(installedPkg), 'package installed successfully') 50 t.end() 51 } 52 ) 53}) 54