Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Avatar for KuCalc : devops.
Download
50665 views
1
var spawn = require('child_process').spawn;
2
var assert = require('assert');
3
4
exports.dotSlashEmpty = function () {
5
testCmd('./bin.js', []);
6
};
7
8
exports.dotSlashArgs = function () {
9
testCmd('./bin.js', [ 'a', 'b', 'c' ]);
10
};
11
12
exports.nodeEmpty = function () {
13
testCmd('node bin.js', []);
14
};
15
16
exports.nodeArgs = function () {
17
testCmd('node bin.js', [ 'x', 'y', 'z' ]);
18
};
19
20
exports.whichNodeEmpty = function () {
21
var which = spawn('which', ['node']);
22
23
which.stdout.on('data', function (buf) {
24
testCmd(buf.toString().trim() + ' bin.js', []);
25
});
26
27
which.stderr.on('data', function (err) {
28
assert.fail(err.toString());
29
});
30
};
31
32
exports.whichNodeArgs = function () {
33
var which = spawn('which', ['node']);
34
35
which.stdout.on('data', function (buf) {
36
testCmd(buf.toString().trim() + ' bin.js', [ 'q', 'r' ]);
37
});
38
39
which.stderr.on('data', function (err) {
40
assert.fail(err.toString());
41
});
42
};
43
44
function testCmd (cmd, args) {
45
var to = setTimeout(function () {
46
assert.fail('Never got stdout data.')
47
}, 5000);
48
49
var oldDir = process.cwd();
50
process.chdir(__dirname + '/_');
51
52
var cmds = cmd.split(' ');
53
54
var bin = spawn(cmds[0], cmds.slice(1).concat(args.map(String)));
55
process.chdir(oldDir);
56
57
bin.stderr.on('data', function (err) {
58
assert.fail(err.toString());
59
});
60
61
bin.stdout.on('data', function (buf) {
62
clearTimeout(to);
63
var _ = JSON.parse(buf.toString());
64
assert.eql(_.map(String), args.map(String));
65
});
66
}
67
68