• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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