blob: 9f58f082f33ca22a31ca8a24c6e745bfef1a0b63 [file] [log] [blame]
/*
* macros.js: Test macros for prompt.
*
* (C) 2010, Nodejitsu Inc.
*
*/
var assert = require('assert'),
helpers = require('./helpers'),
prompt = require('../lib/prompt');
exports.shouldConfirm = function (options, mixin) {
var message = options.response.toString().replace(/\n/g, ''),
messages = ["When using prompt", "the confirm() method"],
context = {},
last = context;
messages = messages.concat(options.messages || []);
while (messages.length) {
var text = messages.shift();
last[text] = {};
last = last[text];
}
last['responding with ' + message] = {
topic: function () {
if(!mixin)
prompt.confirm(options.prop, this.callback);
else
prompt.confirm(options.prop, mixin, this.callback);
if (!Array.isArray(options.response)) {
helpers.stdin.writeNextTick(options.response + '\n');
}
else {
helpers.stdin.writeSequence(options.response);
}
},
"should respond with true" : function(err, result) {
assert.isNull(err);
assert.isTrue(result);
}
}
return context;
};
exports.shouldNotConfirm = function (options) {
var message = options.response.toString().replace(/\n/g, ''),
messages = ["When using prompt", "the confirm() method"],
context = {},
last = context;
messages = messages.concat(options.messages || []);
while (messages.length) {
var text = messages.shift();
last[text] = {};
last = last[text];
}
last['responding with ' + message] = {
topic: function () {
prompt.confirm(options.prop, this.callback);
if (!Array.isArray(options.response)) {
helpers.stdin.writeNextTick(options.response + '\n');
}
else {
helpers.stdin.writeSequence(options.response);
}
},
"should respond with false" : function(err, result) {
assert.isNull(err);
assert.isFalse(result);
}
};
return context;
};