• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1var fs = require('graceful-fs')
2var path = require('path')
3var existsSync = fs.existsSync || path.existsSync
4
5var mkdirp = require('mkdirp')
6var test = require('tap').test
7
8var common = require('../common-tap.js')
9
10var pkg = common.pkg
11
12var EXEC_OPTS = { cwd: pkg }
13
14var json = {
15  name: 'install-cli-production',
16  description: 'fixture',
17  version: '0.0.0',
18  scripts: {
19    prepublish: 'exit 123'
20  },
21  dependencies: {
22    dependency: 'file:./dependency'
23  },
24  devDependencies: {
25    'dev-dependency': 'file:./dev-dependency'
26  }
27}
28
29var dependency = {
30  name: 'dependency',
31  description: 'fixture',
32  version: '0.0.0'
33}
34
35var devDependency = {
36  name: 'dev-dependency',
37  description: 'fixture',
38  version: '0.0.0'
39}
40
41test('setup', function (t) {
42  mkdirp.sync(path.join(pkg, 'dependency'))
43  fs.writeFileSync(
44    path.join(pkg, 'dependency', 'package.json'),
45    JSON.stringify(dependency, null, 2)
46  )
47
48  mkdirp.sync(path.join(pkg, 'dev-dependency'))
49  fs.writeFileSync(
50    path.join(pkg, 'dev-dependency', 'package.json'),
51    JSON.stringify(devDependency, null, 2)
52  )
53
54  mkdirp.sync(path.join(pkg, 'node_modules'))
55  fs.writeFileSync(
56    path.join(pkg, 'package.json'),
57    JSON.stringify(json, null, 2)
58  )
59
60  t.end()
61})
62
63test('\'npm install --production\' should only install dependencies', function (t) {
64  common.npm(['install', '--production'], EXEC_OPTS, function (err, code) {
65    t.ifError(err, 'install production successful')
66    t.equal(code, 0, 'npm install did not raise error code')
67    t.ok(
68      JSON.parse(fs.readFileSync(
69        path.resolve(pkg, 'node_modules/dependency/package.json'), 'utf8')
70      ),
71      'dependency was installed'
72    )
73    t.notOk(
74      existsSync(path.resolve(pkg, 'node_modules/dev-dependency/package.json')),
75      'devDependency was NOT installed'
76    )
77    t.end()
78  })
79})
80