f23b6eb84fb85ff2ce3a229eb381d83628d0fd5f
[platform/framework/web/crosswalk-tizen.git] /
1 "use strict"
2
3 var test = require('tape')
4
5 var path = require('path')
6
7 var npmRun = require('../')
8
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')
12
13 var level = [level0, level1, level2]
14
15 test('execution', function(t) {
16   npmRun('level1', {cwd: level[0]}, function(err, stdout, stderr) {
17     t.ifError(err)
18     t.equal(stderr.length, 0)
19     t.equal(stdout.trim(), 'level1')
20     t.end()
21   })
22 })
23
24 test('passing args', function(t) {
25   npmRun('level1 here are some arguments', {cwd: level[0]}, function(err, stdout, stderr) {
26     t.ifError(err)
27     t.equal(stderr.trim(), 'here are some arguments')
28     t.equal(stdout.trim(), 'level1')
29     t.end()
30   })
31 })
32
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) {
36       t.ifError(err)
37       t.equal(stderr.length, 0)
38       t.equal(stdout.trim(), 'level1')
39       t.end()
40     })
41   })
42
43   t.test('nesting', function(t) {
44     t.plan(6)
45
46     npmRun('level1', {cwd: level[1]}, function(err, stdout, stderr) {
47       t.ifError(err)
48       t.equal(stderr.length, 0)
49       t.equal(stdout.trim(), 'level1')
50     })
51
52     npmRun('level2', {cwd: level[1]}, function(err, stdout, stderr) {
53       t.ifError(err)
54       t.equal(stderr.length, 0)
55       t.equal(stdout.trim(), 'level2')
56     })
57   })
58
59   t.test('more nesting', function(t) {
60     t.plan(6)
61
62     npmRun('level1', {cwd: level[2]}, function(err, stdout, stderr) {
63       t.ifError(err)
64       t.equal(stderr.length, 0)
65       t.equal(stdout.trim(), 'level1')
66     })
67
68     npmRun('level2', {cwd: level[2]}, function(err, stdout, stderr) {
69       t.ifError(err)
70       t.equal(stderr.length, 0)
71       t.equal(stdout.trim(), 'level2')
72     })
73   })
74
75   t.end()
76 })
77
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')
82     t.end()
83   })
84
85   t.test('nesting', function(t) {
86     var stdout = npmRun.sync('level1', {cwd: level[1]})
87     t.equal(stdout.trim(), 'level1')
88
89     stdout = npmRun.sync('level2', {cwd: level[1]})
90     t.equal(stdout.trim(), 'level2')
91     t.end()
92   })
93
94   t.test('more nesting', function(t) {
95     var stdout = npmRun.sync('level1', {cwd: level[2]})
96     t.equal(stdout.trim(), 'level1')
97
98     stdout = npmRun.sync('level2', {cwd: level[2]})
99     t.equal(stdout.trim(), 'level2')
100     t.end()
101   })
102
103   t.end()
104 })
105