From 9fd6ce66060033f70d0dd7424f65d9a4fc414039 Mon Sep 17 00:00:00 2001 From: Rebecca Turner Date: Thu, 11 May 2017 15:31:38 -0700 Subject: test: shrinkwrap-local-dependency --- .../shrinkwrap-local-dependency.js | 121 --------------------- test/tap/shrinkwrap-local-dependency.js | 120 ++++++++++++++++++++ 2 files changed, 120 insertions(+), 121 deletions(-) delete mode 100644 test/need-npm5-update/shrinkwrap-local-dependency.js create mode 100644 test/tap/shrinkwrap-local-dependency.js (limited to 'test') diff --git a/test/need-npm5-update/shrinkwrap-local-dependency.js b/test/need-npm5-update/shrinkwrap-local-dependency.js deleted file mode 100644 index 827a3960f..000000000 --- a/test/need-npm5-update/shrinkwrap-local-dependency.js +++ /dev/null @@ -1,121 +0,0 @@ -var test = require('tap').test -var path = require('path') -var fs = require('fs') -var rimraf = require('rimraf') -var common = require('../common-tap.js') -var Tacks = require('tacks') -var File = Tacks.File -var Dir = Tacks.Dir - -var testdir = path.resolve(__dirname, path.basename(__filename, '.js')) -var cachedir = path.resolve(testdir, 'cache') -var config = ['--cache=' + cachedir, '--loglevel=error'] - -var shrinkwrap = { - name: 'shrinkwrap-local-dependency', - version: '1.0.0', - dependencies: { - mod2: { - version: '1.0.0', - resolved: 'file:' + path.join('mods', 'mod2'), - dependencies: { - mod1: { - version: '1.0.0', - resolved: 'file:' + path.join('mods', 'mod1') - } - } - } - } -} - -var fixture = new Tacks( - Dir({ - cache: Dir(), - mods: Dir({ - mod1: Dir({ - 'package.json': File({ - name: 'mod1', - version: '1.0.0' - }) - }), - mod2: Dir({ - 'package.json': File({ - name: 'mod2', - version: '1.0.0', - dependencies: { - mod1: 'file:' + path.join('..', 'mod1') - } - }) - }) - }), - 'package.json': File({ - name: 'shrinkwrap-local-dependency', - version: '1.0.0', - dependencies: { - mod2: 'file:' + path.join('mods', 'mod2') - } - }) - }) -) - -function setup () { - cleanup() - fixture.create(testdir) -} - -function cleanNodeModules () { - rimraf.sync(path.resolve(testdir, 'node_modules')) -} - -function cleanup () { - fixture.remove(testdir) -} - -test('shrinkwrap uses resolved with file: on local deps', function (t) { - setup() - - common.npm(config.concat(['install', '--legacy']), {cwd: testdir}, function (err, code, stdout, stderr) { - if (err) throw err - t.comment(stdout.trim()) - t.comment(stderr.trim()) - t.equal(code, 0, 'npm exited normally') - - common.npm(config.concat('shrinkwrap'), {cwd: testdir}, function (err, code, stdout, stderr) { - if (err) throw err - t.comment(stdout.trim()) - t.comment(stderr.trim()) - t.equal(code, 0, 'npm exited normally') - var data = fs.readFileSync(path.join(testdir, 'npm-shrinkwrap.json'), { encoding: 'utf8' }) - t.deepEqual(JSON.parse(data), shrinkwrap, 'shrinkwrap looks correct') - t.end() - }) - }) -}) - -function exists (file) { - try { - fs.statSync(file) - return true - } catch (ex) { - return false - } -} - -test("'npm install' should install local packages from shrinkwrap", function (t) { - cleanNodeModules() - - common.npm(config.concat(['install']), {cwd: testdir}, function (err, code, stdout, stderr) { - if (err) throw err - t.comment(stdout.trim()) - t.comment(stderr.trim()) - t.equal(code, 0, 'npm exited normally') - t.ok(exists(path.join(testdir, 'node_modules', 'mod2')), 'mod2 exists') - t.ok(exists(path.join(testdir, 'node_modules', 'mod2', 'node_modules', 'mod1')), 'mod1 exists') - t.end() - }) -}) - -test('cleanup', function (t) { - cleanup() - t.end() -}) diff --git a/test/tap/shrinkwrap-local-dependency.js b/test/tap/shrinkwrap-local-dependency.js new file mode 100644 index 000000000..56e044de0 --- /dev/null +++ b/test/tap/shrinkwrap-local-dependency.js @@ -0,0 +1,120 @@ +var test = require('tap').test +var path = require('path') +var fs = require('fs') +var rimraf = require('rimraf') +var common = require('../common-tap.js') +var Tacks = require('tacks') +var File = Tacks.File +var Dir = Tacks.Dir + +var testdir = path.resolve(__dirname, path.basename(__filename, '.js')) +var cachedir = path.resolve(testdir, 'cache') +var config = ['--cache=' + cachedir, '--loglevel=error'] + +var shrinkwrap = { + name: 'shrinkwrap-local-dependency', + version: '1.0.0', + dependencies: { + mod2: { + version: 'file:' + path.join('mods', 'mod2'), + dependencies: { + mod1: { + version: 'file:' + path.join('mods', 'mod1'), + bundled: true + } + } + } + } +} + +var fixture = new Tacks( + Dir({ + cache: Dir(), + mods: Dir({ + mod1: Dir({ + 'package.json': File({ + name: 'mod1', + version: '1.0.0' + }) + }), + mod2: Dir({ + 'package.json': File({ + name: 'mod2', + version: '1.0.0', + dependencies: { + mod1: 'file:' + path.join('..', 'mod1') + } + }) + }) + }), + 'package.json': File({ + name: 'shrinkwrap-local-dependency', + version: '1.0.0', + dependencies: { + mod2: 'file:' + path.join('mods', 'mod2') + } + }) + }) +) + +function setup () { + cleanup() + fixture.create(testdir) +} + +function cleanNodeModules () { + rimraf.sync(path.resolve(testdir, 'node_modules')) +} + +function cleanup () { + fixture.remove(testdir) +} + +test('shrinkwrap uses resolved with file: on local deps', function (t) { + setup() + + common.npm(config.concat(['install', '--legacy']), {cwd: testdir}, function (err, code, stdout, stderr) { + if (err) throw err + t.comment(stdout.trim()) + t.comment(stderr.trim()) + t.equal(code, 0, 'npm exited normally') + + common.npm(config.concat('shrinkwrap'), {cwd: testdir}, function (err, code, stdout, stderr) { + if (err) throw err + t.comment(stdout.trim()) + t.comment(stderr.trim()) + t.equal(code, 0, 'npm exited normally') + var data = fs.readFileSync(path.join(testdir, 'npm-shrinkwrap.json'), { encoding: 'utf8' }) + t.deepEqual(JSON.parse(data), shrinkwrap, 'shrinkwrap looks correct') + t.end() + }) + }) +}) + +function exists (file) { + try { + fs.statSync(file) + return true + } catch (ex) { + return false + } +} + +test("'npm install' should install local packages from shrinkwrap", function (t) { + cleanNodeModules() + + common.npm(config.concat(['install']), {cwd: testdir}, function (err, code, stdout, stderr) { + if (err) throw err + t.comment(stdout.trim()) + t.comment(stderr.trim()) + t.equal(code, 0, 'npm exited normally') + t.ok(exists(path.join(testdir, 'node_modules', 'mod2')), 'mod2 exists') + t.ok(exists(path.join(testdir, 'node_modules', 'mod2', 'node_modules', 'mod1')), 'mod1 exists') + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) -- cgit v1.2.3