]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/version-update-shrinkwrap.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / version-update-shrinkwrap.js
1 var fs = require('fs')
2 var path = require('path')
3
4 var mkdirp = require('mkdirp')
5 var osenv = require('osenv')
6 var rimraf = require('rimraf')
7 var test = require('tap').test
8
9 var npm = require('../../')
10 var common = require('../common-tap.js')
11
12 var pkg = path.resolve(__dirname, 'version-shrinkwrap')
13 var cache = path.resolve(pkg, 'cache')
14
15 test('npm version <semver> updates shrinkwrap - no git', function (t) {
16   setup()
17   npm.load({ cache: pkg + '/cache', registry: common.registry }, function () {
18     npm.commands.version(['patch'], function (err) {
19       if (err) return t.fail('Error perform version patch')
20       var shrinkwrap = require(path.resolve(pkg, 'npm-shrinkwrap.json'))
21       t.equal(shrinkwrap.version, '0.0.1', 'got expected version')
22       t.end()
23     })
24   })
25 })
26
27 test('npm version <semver> updates git works with no shrinkwrap', function (t) {
28   setup()
29   rimraf.sync(path.resolve(pkg, 'npm-shrinkwrap.json'))
30
31   npm.config.set('sign-git-tag', false)
32
33   common.makeGitRepo({
34     path: pkg,
35     added: ['package.json']
36   }, version)
37
38   function version (er, stdout, stderr) {
39     t.ifError(er, 'git repo initialized without issue')
40     t.notOk(stderr, 'no error output')
41
42     npm.commands.version(['patch'], checkCommit)
43   }
44
45   function checkCommit (er) {
46     t.ifError(er, 'version command ran without error')
47
48     var shrinkwrap = require(path.resolve(pkg, 'npm-shrinkwrap.json'))
49     t.equal(shrinkwrap.version, '0.0.1', 'got expected version')
50
51     var opts = { cwd: pkg, env: { PATH: process.env.PATH }}
52     var git = require('../../lib/utils/git.js')
53     git.whichAndExec(
54       ['show', 'HEAD', '--name-only'],
55       opts,
56       function (er, stdout, stderr) {
57         t.ifError(er, 'git show ran without issues')
58         t.notOk(stderr, 'no error output')
59
60         var lines = stdout.split('\n')
61         t.notEqual(lines.indexOf('package.json'), -1, 'package.json commited')
62         t.equal(lines.indexOf('npm-shrinkwrap.json'), -1, 'npm-shrinkwrap.json not present')
63
64         t.end()
65       }
66     )
67   }
68 })
69
70 test('npm version <semver> updates shrinkwrap and updates git', function (t) {
71   setup()
72
73   npm.config.set('sign-git-tag', false)
74
75   common.makeGitRepo({
76     path: pkg,
77     added: ['package.json', 'npm-shrinkwrap.json']
78   }, version)
79
80   function version (er, stdout, stderr) {
81     t.ifError(er, 'git repo initialized without issue')
82     t.notOk(stderr, 'no error output')
83
84     npm.commands.version(['patch'], checkCommit)
85   }
86
87   function checkCommit (er) {
88     t.ifError(er, 'version command ran without error')
89
90     var shrinkwrap = require(path.resolve(pkg, 'npm-shrinkwrap.json'))
91     t.equal(shrinkwrap.version, '0.0.1', 'got expected version')
92
93     var git = require('../../lib/utils/git.js')
94     var opts = { cwd: pkg, env: { PATH: process.env.PATH }}
95     git.whichAndExec(
96       ['show', 'HEAD', '--name-only'],
97       opts,
98       function (er, stdout, stderr) {
99         t.ifError(er, 'git show ran without issues')
100         t.notOk(stderr, 'no error output')
101
102         var lines = stdout.split('\n')
103         t.notEqual(lines.indexOf('package.json'), -1, 'package.json commited')
104         t.notEqual(lines.indexOf('npm-shrinkwrap.json'), -1, 'npm-shrinkwrap.json commited')
105
106         t.end()
107       }
108     )
109   }
110 })
111
112 test('cleanup', function (t) {
113   // windows fix for locked files
114   process.chdir(osenv.tmpdir())
115
116   rimraf.sync(pkg)
117   t.end()
118 })
119
120 function setup () {
121   rimraf.sync(pkg)
122   mkdirp.sync(pkg)
123   mkdirp.sync(cache)
124   var contents = {
125     author: 'Nathan Bowser && Faiq Raza',
126     name: 'version-with-shrinkwrap-test',
127     version: '0.0.0',
128     description: 'Test for version with shrinkwrap update'
129   }
130
131   fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify(contents), 'utf8')
132   fs.writeFileSync(path.resolve(pkg, 'npm-shrinkwrap.json'), JSON.stringify(contents), 'utf8')
133   process.chdir(pkg)
134 }