83 lines
2.0 KiB
JavaScript
83 lines
2.0 KiB
JavaScript
|
|
/*
|
||
|
|
* 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;
|
||
|
|
};
|
||
|
|
|