| @@ -0,0 +1,12 @@ | ||
| var test = require('tap').test | ||
| var spawn = require('child_process').spawn | ||
| var node = process.execPath | ||
| var npm = require.resolve('../../') | ||
| var args = [ npm, 'ls', 'ceci n’est pas une package' ] | ||
| test('ls exits non-zero when nothing found', function (t) { | ||
| var child = spawn(node, args) | ||
| child.on('exit', function (code) { | ||
| t.notEqual(code, 0) | ||
| t.end() | ||
| }) | ||
| }) |
| @@ -0,0 +1,23 @@ | ||
| var test = require("tap").test | ||
| var npm = require("../../") | ||
|
|
||
| var mr = require("npm-registry-mock") | ||
|
|
||
| // config | ||
| var port = 1331 | ||
| var address = "http://localhost:" + port | ||
| var pkg = __dirname + '/outdated-include-devdependencies' | ||
|
|
||
|
|
||
| test("includes devDependencies in outdated", function (t) { | ||
| process.chdir(pkg) | ||
| mr(port, function (s) { | ||
| npm.load({registry: address}, function () { | ||
| npm.outdated(function (er, d) { | ||
| t.equal("1.5.1", d[0][3]) | ||
| s.close() | ||
| t.end() | ||
| }) | ||
| }) | ||
| }) | ||
| }) |
| @@ -0,0 +1,8 @@ | ||
| { | ||
| "author": "Rocko Artischocko", | ||
| "name": "ignore-shrinkwrap", | ||
| "version": "0.0.0", | ||
| "devDependencies": { | ||
| "underscore": ">=1.3.1" | ||
| } | ||
| } |
| @@ -0,0 +1,38 @@ | ||
| var test = require("tap").test | ||
| var npm = require("../../") | ||
| var mkdirp = require("mkdirp") | ||
| var rimraf = require("rimraf") | ||
|
|
||
|
|
||
| var mr = require("npm-registry-mock") | ||
|
|
||
| // config | ||
| var port = 1331 | ||
| var address = "http://localhost:" + port | ||
| var pkg = __dirname + "/outdated-new-versions" | ||
| mkdirp.sync(pkg + "/cache") | ||
|
|
||
|
|
||
| test("dicovers new versions in outdated", function (t) { | ||
| process.chdir(pkg) | ||
| t.plan(2) | ||
| mr(port, function (s) { | ||
| npm.load({cache: pkg + "/cache", registry: address}, function () { | ||
| npm.outdated(function (er, d) { | ||
| for (var i = 0; i < d.length; i++) { | ||
| if (d[i][1] === "underscore") | ||
| t.equal("1.5.1", d[i][4]) | ||
| if (d[i][1] === "request") | ||
| t.equal("2.27.0", d[i][4]) | ||
| } | ||
| s.close() | ||
| t.end() | ||
| }) | ||
| }) | ||
| }) | ||
| }) | ||
|
|
||
| test("cleanup", function (t) { | ||
| rimraf.sync(pkg + "/cache") | ||
| t.end() | ||
| }) |
| @@ -0,0 +1,11 @@ | ||
| { | ||
| "name": "new-versions-with-outdated", | ||
| "author": "Rockbert", | ||
| "version": "0.0.0", | ||
| "dependencies": { | ||
| "underscore": "~1.3.1" | ||
| }, | ||
| "devDependencies": { | ||
| "request": "~0.9.0" | ||
| } | ||
| } |
| @@ -0,0 +1,90 @@ | ||
| // verify that prepublish runs on pack and publish | ||
| var test = require('tap').test | ||
| var npm = require('../../') | ||
| var fs = require('fs') | ||
| var pkg = __dirname + '/prepublish_package' | ||
| var tmp = pkg + '/tmp' | ||
| var cache = pkg + '/cache' | ||
| var mkdirp = require('mkdirp') | ||
| var rimraf = require('rimraf') | ||
| var path = require('path') | ||
| var os = require('os') | ||
|
|
||
| test('setup', function (t) { | ||
| var n = 0 | ||
| mkdirp(pkg, then()) | ||
| mkdirp(cache, then()) | ||
| mkdirp(tmp, then()) | ||
| function then (er) { | ||
| n ++ | ||
| return function (er) { | ||
| if (er) | ||
| throw er | ||
| if (--n === 0) | ||
| next() | ||
| } | ||
| } | ||
|
|
||
| function next () { | ||
| fs.writeFile(pkg + '/package.json', JSON.stringify({ | ||
| name: 'npm-test-prepublish', | ||
| version: '1.2.5', | ||
| scripts: { prepublish: 'echo ok' } | ||
| }), 'ascii', function (er) { | ||
| if (er) | ||
| throw er | ||
| t.pass('setup done') | ||
| t.end() | ||
| }) | ||
| } | ||
| }) | ||
|
|
||
| test('test', function (t) { | ||
| var spawn = require('child_process').spawn | ||
| var node = process.execPath | ||
| var npm = path.resolve(__dirname, '../../cli.js') | ||
| var env = { | ||
| npm_config_cache: cache, | ||
| npm_config_tmp: tmp, | ||
| npm_config_prefix: pkg, | ||
| npm_config_global: 'false' | ||
| } | ||
| for (var i in process.env) { | ||
| if (!/^npm_config_/.test(i)) | ||
| env[i] = process.env[i] | ||
| } | ||
| var child = spawn(node, [npm, 'pack'], { | ||
| cwd: pkg, | ||
| env: env | ||
| }) | ||
| child.stdout.setEncoding('utf8') | ||
| child.stderr.on('data', function(chunk) { | ||
| throw new Error('got stderr data: ' + JSON.stringify('' + chunk)) | ||
| }) | ||
| child.stdout.on('data', ondata) | ||
| child.on('close', onend) | ||
| var c = '' | ||
| function ondata (chunk) { | ||
| c += chunk | ||
| } | ||
| function onend () { | ||
| c = c.trim() | ||
| t.equal( c | ||
| , '> npm-test-prepublish@1.2.5 prepublish .' + os.EOL | ||
| + '> echo ok' + os.EOL | ||
| + os.EOL | ||
| + 'ok' + os.EOL | ||
| + 'npm-test-prepublish-1.2.5.tgz') | ||
| t.end() | ||
| } | ||
| }) | ||
|
|
||
| test('cleanup', function (t) { | ||
| rimraf(pkg, function(er) { | ||
| if (er) | ||
| throw er | ||
| t.pass('cleaned up') | ||
| t.end() | ||
| }) | ||
| }) | ||
|
|
| @@ -0,0 +1,24 @@ | ||
| var test = require("tap").test | ||
| , npm = require("../../") | ||
|
|
||
| test("returns a list of removed items", function (t) { | ||
| t.plan(1) | ||
|
|
||
| setup(function () { | ||
| npm.install(".", function (err) { | ||
| if (err) return t.fail(err) | ||
| npm.uninstall("once", "ini", "lala", function (err, d) { | ||
| if (err) return t.fail(err) | ||
| t.same(d.sort(), ["once", "ini"].sort()) | ||
| t.end() | ||
| }) | ||
| }) | ||
| }) | ||
| }) | ||
|
|
||
| function setup (cb) { | ||
| process.chdir(__dirname + "/uninstall-package") | ||
| npm.load(function () { | ||
| cb() | ||
| }) | ||
| } |
| @@ -0,0 +1,9 @@ | ||
| { | ||
| "name": "beep", | ||
| "version": "0.0.0", | ||
| "main": "index.js", | ||
| "dependencies": { | ||
| "once": "*", | ||
| "ini": "*" | ||
| } | ||
| } |