Navigation Menu

Skip to content

Commit

Permalink
Define "utils.run()" as a shared helper for tests about command line …
Browse files Browse the repository at this point in the history
…interfaces
  • Loading branch information
piroor committed Aug 6, 2012
1 parent e087a1e commit 791fc7b
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 24 deletions.
30 changes: 6 additions & 24 deletions test/gcs.test.js
@@ -1,32 +1,14 @@
var utils = require('./test-utils');
var assert = require('chai').assert;
var spawn = require('child_process').spawn;

function run(options, callback) {
var command, commandPath, output;
commandPath = __dirname + '/../bin/gcs';
command = spawn(commandPath, options);
output = {
stdout: '',
stderr: ''
};
command.stdout.on('data', function(data) {
output.stdout += data;
});
command.stderr.on('data', function(data) {
output.stderr += data;
});
callback(null, command, output);
}

suite('gcs command', function() {
test('should output help for --help', function(done) {
run(['--help'], function(error, command, output) {
command.on('exit', function(code) {
assert.equal(output.stderr, '');
assert.include(output.stdout, 'Usage:');
assert.equal(code, 0);
utils.run('gcs', '--help')
.next(function(result) {
assert.equal(result.output.stderr, '');
assert.include(result.output.stdout, 'Usage:');
assert.equal(result.code, 0);
done();
});
});
});
});
26 changes: 26 additions & 0 deletions test/test-utils.js
Expand Up @@ -7,6 +7,7 @@ var Deferred = require('jsdeferred').Deferred;
var nativeNroonga = require('nroonga');
var wrappedNroonga = require(__dirname + '/../lib/wrapped-nroonga');
var xml2js = require('xml2js');
var spawn = require('child_process').spawn;

var temporaryDirectory = exports.temporaryDirectory = path.join(__dirname, 'tmp');

Expand Down Expand Up @@ -153,6 +154,31 @@ function XMLStringToJSON(xml) {
}
exports.XMLStringToJSON = XMLStringToJSON;

function run() {
var deferred = new Deferred();
var options = Array.prototype.slice.call(arguments, 0)

var commandName = options.shift();
var commandPath = __dirname + '/../bin/' + commandName;
var command = spawn(commandPath, options);
var output = {
stdout: '',
stderr: ''
};
command.stdout.on('data', function(data) {
output.stdout += data;
});
command.stderr.on('data', function(data) {
output.stderr += data;
});
command.on('exit', function(code) {
deferred.call({ code: code, output: output });
});

return deferred;
}
exports.run = run;


// activate diff for chai.assert.deepEqual

Expand Down

0 comments on commit 791fc7b

Please sign in to comment.