3 var test = require('tape')
5 var path = require('path')
7 var npmRun = require('../')
9 var level0 = path.join(__dirname, 'fixtures', 'level0')
10 var level1 = path.join(level0, 'node_modules', 'level1')
11 var level2 = path.join(level1, 'node_modules', 'level2')
13 var level = [level0, level1, level2]
15 test('execution', function(t) {
16 npmRun('level1', {cwd: level[0]}, function(err, stdout, stderr) {
18 t.equal(stderr.length, 0)
19 t.equal(stdout.trim(), 'level1')
24 test('passing args', function(t) {
25 npmRun('level1 here are some arguments', {cwd: level[0]}, function(err, stdout, stderr) {
27 t.equal(stderr.trim(), 'here are some arguments')
28 t.equal(stdout.trim(), 'level1')
33 test('includes all .bin dirs in all parent node_modules folders', function(t) {
34 t.test('no nesting', function(t) {
35 npmRun('level1', {cwd: level[0]}, function(err, stdout, stderr) {
37 t.equal(stderr.length, 0)
38 t.equal(stdout.trim(), 'level1')
43 t.test('nesting', function(t) {
46 npmRun('level1', {cwd: level[1]}, function(err, stdout, stderr) {
48 t.equal(stderr.length, 0)
49 t.equal(stdout.trim(), 'level1')
52 npmRun('level2', {cwd: level[1]}, function(err, stdout, stderr) {
54 t.equal(stderr.length, 0)
55 t.equal(stdout.trim(), 'level2')
59 t.test('more nesting', function(t) {
62 npmRun('level1', {cwd: level[2]}, function(err, stdout, stderr) {
64 t.equal(stderr.length, 0)
65 t.equal(stdout.trim(), 'level1')
68 npmRun('level2', {cwd: level[2]}, function(err, stdout, stderr) {
70 t.equal(stderr.length, 0)
71 t.equal(stdout.trim(), 'level2')
78 test('sync', function(t) {
79 t.test('no nesting', function(t) {
80 var stdout = npmRun.sync('level1', {cwd: level[0]})
81 t.equal(stdout.trim(), 'level1')
85 t.test('nesting', function(t) {
86 var stdout = npmRun.sync('level1', {cwd: level[1]})
87 t.equal(stdout.trim(), 'level1')
89 stdout = npmRun.sync('level2', {cwd: level[1]})
90 t.equal(stdout.trim(), 'level2')
94 t.test('more nesting', function(t) {
95 var stdout = npmRun.sync('level1', {cwd: level[2]})
96 t.equal(stdout.trim(), 'level1')
98 stdout = npmRun.sync('level2', {cwd: level[2]})
99 t.equal(stdout.trim(), 'level2')