1 var fs = require('graceful-fs')
2 var path = require('path')
3 var osenv = require('osenv')
4 var mkdirp = require('mkdirp')
5 var mr = require('npm-registry-mock')
6 var rimraf = require('rimraf')
7 var test = require('tap').test
9 var common = require('../common-tap.js')
11 var pkg = path.resolve(__dirname, 'outdated-symlink')
12 var cache = path.resolve(pkg, 'cache')
15 var fakeRoot = path.join(__dirname, 'fakeRoot')
18 'npm_config_prefix': fakeRoot
23 name: 'my-local-package',
24 description: 'fixture',
28 test('setup', function (t) {
30 originalLog = console.log
33 path.join(pkg, 'package.json'),
34 JSON.stringify(json, null, 2)
37 common.npm(['install', '-g', 'async@0.2.9', 'underscore@1.3.1'], OPTS, function (err, c, out) {
38 t.ifError(err, 'global install did not error')
39 common.npm(['link'], OPTS, function (err, c, out) {
40 t.ifError(err, 'link did not error')
41 common.npm(['ls', '-g'], OPTS, function (err, c, out, stderr) {
44 t.equal(stderr, '', 'got expected stderr')
45 t.has(out, /my-local-package@1.0.0/, 'creates global link ok')
52 test('when outdated is called linked packages should be displayed as such', function (t) {
53 var regOutLinked = /my-local-package\s*1.0.0\s*linked\s*linked/
54 var regOutInstallOne = /async\s*0.2.9\s*0.2.10\s*0.2.10/
55 var regOutInstallTwo = /underscore\s*1.3.1\s*1.5.1\s*1.5.1/
57 console.log = function () {}
58 mr({ port: common.port }, function (er, s) {
61 '--registry', common.registry,
65 function (err, c, out, stderr) {
67 t.match(out, regOutLinked, 'Global Link format as expected')
68 t.match(out, regOutInstallOne, 'Global Install format as expected')
69 t.match(out, regOutInstallTwo, 'Global Install format as expected')
77 test('cleanup', function (t) {
78 process.chdir(osenv.tmpdir())
79 common.npm(['rm', 'outdated'], OPTS, function (err, code) {
80 t.ifError(err, 'npm removed the linked package without error')
81 t.equal(code, 0, 'cleanup outdated in local ok')
82 common.npm(['rm', '-g', 'outdated', 'async', 'underscore'], OPTS, function (err, code) {
83 t.ifError(err, 'npm removed the global package without error')
84 t.equal(code, 0, 'cleanup outdated in global ok')
86 console.log = originalLog