botkitify
Version:
Easily translate AIML, RiveScript, and more into botkit JS code.
85 lines (72 loc) • 3.6 kB
JavaScript
;
var should = require('should');
var utils = require('../utils.js')
context('botkitify-cli', function () {
var binName = './index.js';
var index = require('.' + binName);
describe('options', function () {
var spawn = require('cross-spawn');
// Spawning a new process takes some time, so raise the default 'slow' time
this.slow(300);
describe('should produce help output when ran with', function () {
var possibleOptions = utils.generateAllPossibleOptions('help');
var expectedHelpOutput = 'botkitify - Easily translate AIML, RiveScript, and more into botkit JS code.\n\nUsage:\n botkitify <filename> [options | commands]\n botkitify [options] <filename>\n botkitify -h | --help\n\nOptions:\n -h --help Show this screen.\n -v --version Show version.\n\nNote: All options are also available as commands, e.g. botkitify help\n'
it('no arguments', function () {
var botkitifyCli = spawn.sync('node', [binName]);
botkitifyCli.stdout.toString().should.equal(expectedHelpOutput);
});
// For command style e.g. 'help'
for (var i = 0; i < possibleOptions.length; i++) {
var possibleOption = possibleOptions[i];
it(possibleOption, function () {
var botkitifyCli = spawn.sync('node', [binName, possibleOption]);
botkitifyCli.stdout.toString().should.equal(expectedHelpOutput);
});
}
// For single dash style e.g. '-help'
for (var i = 0; i < possibleOptions.length; i++) {
var possibleOption = '-' + possibleOptions[i];
it(possibleOption, function () {
var botkitifyCli = spawn.sync('node', [binName, possibleOption]);
botkitifyCli.stdout.toString().should.equal(expectedHelpOutput);
});
}
// For double dash style e.g. '--help'
for (var i = 0; i < possibleOptions.length; i++) {
var possibleOption = '--' + possibleOptions[i];
it (possibleOption, function () {
var botkitifyCli = spawn.sync('node', [binName, possibleOption]);
botkitifyCli.stdout.toString().should.equal(expectedHelpOutput);
});
}
});
describe('should produce version when ran with', function () {
var possibleOptions = utils.generateAllPossibleOptions('version');
var expectedVersion = require('../package.json').version + '\n';
// For command style e.g. 'version'
for (var i = 0; i < possibleOptions.length; i++) {
var possibleOption = possibleOptions[i];
it(possibleOption, function () {
var botkitifyCli = spawn.sync('node', [binName, possibleOption]);
botkitifyCli.stdout.toString().should.equal(expectedVersion);
});
}
// For single dash style e.g. '-version'
for (var i = 0; i < possibleOptions.length; i++) {
var possibleOption = '-' + possibleOptions[i];
it(possibleOption, function () {
var botkitifyCli = spawn.sync('node', [binName, possibleOption]);
botkitifyCli.stdout.toString().should.equal(expectedVersion);
});
}
// For double dash style e.g. '--version'
for (var i = 0; i < possibleOptions.length; i++) {
var possibleOption = '--' + possibleOptions[i];
it (possibleOption, function () {
var botkitifyCli = spawn.sync('node', [binName, possibleOption]);
botkitifyCli.stdout.toString().should.equal(expectedVersion);
});
}
});
});
});