bd5aa3c949955a986c91c73b5880af26d8a55ff2
[platform/framework/web/crosswalk-tizen.git] /
1 "use strict"
2
3 var test = require('tape')
4 var bl = require('bl')
5
6 var path = require('path')
7
8 var npmRun = require('../')
9
10 var level0 = path.join(__dirname, 'fixtures', 'level0')
11 var level1 = path.join(level0, 'node_modules', 'level1')
12 var level2 = path.join(level1, 'node_modules', 'level2')
13
14 var level = [level0, level1, level2]
15 var binPath = level.map(function(levelPath) {
16   return path.join(levelPath, "node_modules", ".bin")
17 })
18
19 test('spawn', function(t) {
20   t.plan(3)
21   var child = npmRun.spawn(
22     'level1',
23     'here are some arguments'.split(' '),
24     {cwd: level[0]}
25   )
26   var stdout = bl(function(err, data) {
27     t.equal(data.toString().trim(), 'level1')
28   })
29   var stderr = bl(function(err, data) {
30     t.equal(data.toString().trim(), 'here are some arguments')
31   })
32   child.stdout.pipe(stdout)
33   child.stderr.pipe(stderr)
34   child.on('close', function(errCode) {
35     t.equal(errCode, 0)
36   })
37 })
38
39 test('spawn nested', function(t) {
40   t.plan(3)
41   var child = npmRun.spawn(
42     'level1',
43     'here are some arguments'.split(' '),
44     {cwd: level[1]}
45   )
46   var stdout = bl(function(err, data) {
47     t.equal(data.toString().trim(), 'level1')
48   })
49   var stderr = bl(function(err, data) {
50     t.equal(data.toString().trim(), 'here are some arguments')
51   })
52   child.stdout.pipe(stdout)
53   child.stderr.pipe(stderr)
54   child.on('close', function(errCode) {
55     t.equal(errCode, 0)
56   })
57 })
58
59 test('spawn bad command', function(t) {
60   var badPath = 'not-exist-adsjk'
61   npmRun.spawn(
62     badPath,
63     'here are some arguments'.split(' '),
64     {cwd: level[1]}
65   ).on('error', function(err) {
66     t.ok(err, 'has error')
67     t.equal(err.code, 'ENOENT')
68     t.ok(err.message.indexOf(badPath) !== -1)
69     t.end()
70   })
71 })