interactive-prompt-test.js
1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
* prompt-test.js: Tests for prompt.
*
* (C) 2010, Nodejitsu Inc.
*
*/
var assert = require('assert'),
vows = require('vows'),
prompt = require('../lib/prompt'),
winston = require('winston').cli(),
helpers = require('./helpers');
vows.describe('prompt/interactive').addBatch({
"When using prompt": {
topic: function () {
//
// Reset the prompt for interactive testing
//
prompt.started = false;
prompt.start();
winston.info('These prompt tests are interactive');
winston.info('Not following instructions will result in test failure');
return null;
},
"the getInput() method": {
"when passed a complex property with `hidden: true`": {
topic: function () {
winston.info('When prompted, enter: 12345 [backspace] [backspace] [enter]');
prompt.getInput({ path: ['password'], schema: helpers.schema.properties.password }, this.callback);
},
"should respond with `123`": function (err, result) {
assert.isNull(err);
assert.equal(result, '123');
},
"and then when passed a complex property expecting a number": {
topic: function () {
winston.info('When prompted, enter: 123 [enter]');
prompt.getInput({ path: ['number'], schema: helpers.schema.properties.number }, this.callback);
},
"should respond with `123` (as a number)": function (err, result) {
assert.isNull(err);
assert.equal(result, 123);
}
}
}
}
}
}).export(module);