mirror of
https://github.com/shelljs/shelljs.git
synced 2026-01-18 16:03:37 +00:00
57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
var shell = require('..');
|
|
|
|
var assert = require('assert');
|
|
var child = require('child_process');
|
|
|
|
shell.config.silent = true;
|
|
|
|
shell.rm('-rf', 'tmp');
|
|
shell.mkdir('tmp');
|
|
|
|
//
|
|
// Valids
|
|
//
|
|
|
|
|
|
// From here on we use child.exec() to intercept the stdout
|
|
|
|
|
|
// simple test with defaults
|
|
shell.mkdir('-p', 'tmp');
|
|
var file = 'tmp/tempscript' + Math.random() + '.js';
|
|
var script = 'require(\'../../global.js\'); echo("-asdf", "111");'; // test '-' bug (see issue #20)
|
|
shell.ShellString(script).to(file);
|
|
child.exec(JSON.stringify(process.execPath) + ' ' + file, function (err, stdout) {
|
|
assert.equal(stdout, '-asdf 111\n');
|
|
|
|
// using null as an explicit argument doesn't crash the function
|
|
file = 'tmp/tempscript' + Math.random() + '.js';
|
|
script = 'require(\'../../global.js\'); echo(null);';
|
|
shell.ShellString(script).to(file);
|
|
child.exec(JSON.stringify(process.execPath) + ' ' + file, function (err2, stdout2, stderr2) {
|
|
assert.equal(stdout2, 'null\n');
|
|
assert.equal(stderr2, '');
|
|
|
|
// simple test with silent(true)
|
|
script = 'require(\'../../global.js\'); config.silent=true; echo(555);';
|
|
shell.ShellString(script).to(file);
|
|
child.exec(JSON.stringify(process.execPath) + ' ' + file, function (err3, stdout3) {
|
|
assert.equal(stdout3, '555\n');
|
|
|
|
script = "require('../../global.js'); echo('-e', '\\tmessage');";
|
|
shell.ShellString(script).to(file);
|
|
child.exec(JSON.stringify(process.execPath) + ' ' + file, function (err4, stdout4) {
|
|
assert.equal(stdout4, '\tmessage\n');
|
|
|
|
theEnd();
|
|
});
|
|
});
|
|
|
|
// simple test with silent(true)
|
|
});
|
|
});
|
|
|
|
function theEnd() {
|
|
shell.exit(123);
|
|
}
|