summaryrefslogtreecommitdiff
path: root/deps/npm/test/need-npm5-update/legacy-shrinkwrap.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/test/need-npm5-update/legacy-shrinkwrap.js')
-rw-r--r--deps/npm/test/need-npm5-update/legacy-shrinkwrap.js132
1 files changed, 132 insertions, 0 deletions
diff --git a/deps/npm/test/need-npm5-update/legacy-shrinkwrap.js b/deps/npm/test/need-npm5-update/legacy-shrinkwrap.js
new file mode 100644
index 0000000000..6f53030377
--- /dev/null
+++ b/deps/npm/test/need-npm5-update/legacy-shrinkwrap.js
@@ -0,0 +1,132 @@
+'use strict'
+var test = require('tap').test
+var common = require('../common-tap.js')
+var path = require('path')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+var fixture = new Tacks(
+ Dir({
+ README: File(
+ 'just an npm test\n'
+ ),
+ 'npm-shrinkwrap.json': File({
+ name: 'npm-test-shrinkwrap',
+ version: '0.0.0',
+ dependencies: {
+ glob: {
+ version: '3.1.5',
+ from: 'git://github.com/isaacs/node-glob.git#npm-test',
+ resolved: 'git://github.com/isaacs/node-glob.git#67bda227fd7a559cca5620307c7d30a6732a792f',
+ dependencies: {
+ 'graceful-fs': {
+ version: '1.1.5',
+ resolved: 'https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.5.tgz',
+ dependencies: {
+ 'fast-list': {
+ version: '1.0.2',
+ resolved: 'https://registry.npmjs.org/fast-list/-/fast-list-1.0.2.tgz'
+ }
+ }
+ },
+ inherits: {
+ version: '1.0.0',
+ resolved: 'https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz'
+ },
+ minimatch: {
+ version: '0.2.1',
+ dependencies: {
+ 'lru-cache': {
+ version: '1.0.5'
+ }
+ }
+ }
+ }
+ },
+ minimatch: {
+ version: '0.1.5',
+ resolved: 'https://registry.npmjs.org/minimatch/-/minimatch-0.1.5.tgz',
+ dependencies: {
+ 'lru-cache': {
+ version: '1.0.5',
+ resolved: 'https://registry.npmjs.org/lru-cache/-/lru-cache-1.0.5.tgz'
+ }
+ }
+ },
+ 'npm-test-single-file': {
+ version: '1.2.3',
+ resolved: 'https://gist.github.com/isaacs/1837112/raw/9ef57a59fc22aeb1d1ca346b68826dcb638b8416/index.js'
+ }
+ }
+ }),
+ 'package.json': File({
+ author: 'Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)',
+ name: 'npm-test-shrinkwrap',
+ version: '0.0.0',
+ dependencies: {
+ 'npm-test-single-file': 'https://gist.github.com/isaacs/1837112/raw/9ef57a59fc22aeb1d1ca346b68826dcb638b8416/index.js',
+ glob: 'git://github.com/isaacs/node-glob.git#npm-test',
+ minimatch: '~0.1.0'
+ },
+ scripts: {
+ test: 'node test.js'
+ }
+ })
+ })
+)
+
+test('setup', function (t) {
+ setup()
+ t.done()
+})
+
+test('shrinkwrap', function (t) {
+ common.npm(['install'], {cwd: basepath}, installCheckAndTest)
+
+ function installCheckAndTest (err, code, stdout, stderr) {
+ if (err) throw err
+ console.error(stderr)
+ t.is(code, 0, 'install went ok')
+
+ common.npm(['ls', '--json'], {cwd: basepath}, verifyLsMatchesShrinkwrap)
+ }
+
+ function verifyLsMatchesShrinkwrap (err, code, stdout, stderr) {
+ if (err) throw err
+ console.error(stderr)
+ t.is(code, 0, 'ls went ok')
+ var actual = JSON.parse(stdout)
+ var expected = require(path.resolve(basepath, 'npm-shrinkwrap.json'))
+ // from is expected to vary
+ t.isDeeply(rmFrom(actual), rmFrom(expected))
+ t.done()
+ }
+
+ function rmFrom (obj) {
+ for (var i in obj) {
+ if (i === 'from') {
+ delete obj[i]
+ } else if (i === 'dependencies') {
+ for (var j in obj[i]) {
+ rmFrom(obj[i][j])
+ }
+ }
+ }
+ }
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.done()
+})
+
+function setup () {
+ cleanup()
+ fixture.create(basepath)
+}
+
+function cleanup () {
+ fixture.remove(basepath)
+}