var shell = require('..'); var assert = require('assert'), path = require('path'), fs = require('fs'), child = require('child_process'); // Node shims for < v0.7 fs.existsSync = fs.existsSync || path.existsSync; shell.config.silent = true; function numLines(str) { return typeof str === 'string' ? str.match(/\n/g).length : 0; } 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', script = 'require(\'../../global.js\'); echo("-asdf", "111");'; // test '-' bug (see issue #20) script.to(file); child.exec('node '+file, function(err, stdout, stderr) { assert.ok(stdout === '-asdf 111\n' || stdout === '-asdf 111\nundefined\n'); // 'undefined' for v0.4 // simple test with silent(true) shell.mkdir('-p', 'tmp'); var file = 'tmp/tempscript'+Math.random()+'.js', script = 'require(\'../../global.js\'); config.silent=true; echo(555);'; script.to(file); child.exec('node '+file, function(err, stdout, stderr) { assert.ok(stdout === '555\n' || stdout === '555\nundefined\n'); // 'undefined' for v0.4 theEnd(); }); }); function theEnd() { shell.exit(123); }