summaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/test/tap/ls.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/npm/test/tap/ls.js')
-rw-r--r--deps/node/deps/npm/test/tap/ls.js188
1 files changed, 188 insertions, 0 deletions
diff --git a/deps/node/deps/npm/test/tap/ls.js b/deps/node/deps/npm/test/tap/ls.js
new file mode 100644
index 00000000..acec723a
--- /dev/null
+++ b/deps/node/deps/npm/test/tap/ls.js
@@ -0,0 +1,188 @@
+'use strict'
+var test = require('tap').test
+var path = require('path')
+var rimraf = require('rimraf')
+var common = require('../common-tap.js')
+var basepath = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixturepath = path.resolve(basepath, 'npm-test-files')
+var pkgpath = path.resolve(fixturepath, 'npm-test-ls')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+test('ls without arg', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'npm-test-ls': Dir({
+ 'package.json': File({
+ name: 'npm-test-ls',
+ version: '1.0.0',
+ dependencies: {
+ 'dep': 'file:../dep'
+ }
+ })
+ }),
+ 'dep': Dir({
+ 'package.json': File({
+ name: 'dep',
+ version: '1.0.0'
+ })
+ })
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ common.npm([
+ 'ls', '--json'
+ ], {
+ cwd: pkgpath
+ }, function (err, code, stdout, stderr) {
+ t.ifErr(err, 'ls succeeded')
+ t.equal(0, code, 'exit 0 on ls')
+ var pkg = JSON.parse(stdout)
+ var deps = pkg.dependencies
+ t.ok(deps.dep, 'dep present')
+ done()
+ })
+ })
+})
+
+test('ls with filter arg', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'npm-test-ls': Dir({
+ 'package.json': File({
+ name: 'npm-test-ls',
+ version: '1.0.0',
+ dependencies: {
+ 'dep': 'file:../dep'
+ }
+ })
+ }),
+ 'dep': Dir({
+ 'package.json': File({
+ name: 'dep',
+ version: '1.0.0'
+ })
+ }),
+ 'otherdep': Dir({
+ 'package.json': File({
+ name: 'otherdep',
+ version: '1.0.0'
+ })
+ })
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ common.npm([
+ 'ls', 'dep',
+ '--json'
+ ], {
+ cwd: path.join(fixturepath, 'npm-test-ls')
+ }, function (err, code, stdout, stderr) {
+ t.ifErr(err, 'ls succeeded')
+ t.equal(0, code, 'exit 0 on ls')
+ var pkg = JSON.parse(stdout)
+ var deps = pkg.dependencies
+ t.ok(deps.dep, 'dep present')
+ t.notOk(deps.otherdep, 'other dep not present')
+ done()
+ })
+ })
+})
+
+test('ls with missing filtered arg', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'npm-test-ls': Dir({
+ 'package.json': File({
+ name: 'npm-test-ls',
+ version: '1.0.0',
+ dependencies: {
+ 'dep': 'file:../dep'
+ }
+ })
+ }),
+ 'dep': Dir({
+ 'package.json': File({
+ name: 'dep',
+ version: '1.0.0'
+ })
+ })
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ common.npm([
+ 'ls', 'notadep',
+ '--json'
+ ], {
+ cwd: path.join(fixturepath, 'npm-test-ls')
+ }, function (err, code, stdout, stderr) {
+ t.ifErr(err, 'ls succeeded')
+ t.equal(1, code, 'exit 1 on ls')
+ var pkg = JSON.parse(stdout)
+ var deps = pkg.dependencies
+ t.notOk(deps, 'deps missing')
+ t.done()
+ })
+ })
+})
+
+test('ls with prerelease pkg', function (t) {
+ var fixture = new Tacks(
+ Dir({
+ 'npm-test-ls': Dir({
+ 'package.json': File({
+ name: 'npm-test-ls',
+ version: '1.0.0',
+ dependencies: {
+ 'dep': 'file:../dep'
+ }
+ })
+ }),
+ 'dep': Dir({
+ 'package.json': File({
+ name: 'dep',
+ version: '1.0.0-pre'
+ })
+ })
+ })
+ )
+ withFixture(t, fixture, function (done) {
+ common.npm([
+ 'ls', 'dep',
+ '--json'
+ ], {
+ cwd: path.join(fixturepath, 'npm-test-ls')
+ }, function (err, code, stdout, stderr) {
+ t.ifErr(err, 'ls succeeded')
+ t.equal(0, code, 'exit 0 on ls')
+ var pkg = JSON.parse(stdout)
+ var deps = pkg.dependencies
+ t.ok(deps.dep, 'dep present')
+ t.done()
+ })
+ })
+})
+
+test('cleanup', function (t) {
+ rimraf.sync(basepath)
+ t.done()
+})
+
+function withFixture (t, fixture, tester) {
+ fixture.create(fixturepath)
+ common.npm(['install'], {
+ cwd: path.join(fixturepath, 'npm-test-ls')
+ }, checkAndTest)
+ function checkAndTest (err, code) {
+ if (err) throw err
+ t.is(code, 0, 'install went ok')
+ tester(removeAndDone)
+ }
+ function removeAndDone (err) {
+ if (err) throw err
+ fixture.remove(fixturepath)
+ rimraf.sync(basepath)
+ t.done()
+ }
+}