Skip to content

Instantly share code, notes, and snippets.

@microsoftly
Last active August 28, 2017 23:29
Show Gist options
  • Select an option

  • Save microsoftly/f5b27156aa012547e315fa9a2039b983 to your computer and use it in GitHub Desktop.

Select an option

Save microsoftly/f5b27156aa012547e315fa9a2039b983 to your computer and use it in GitHub Desktop.
botbuilder unit test canonical
var assert = require('assert');
var builder = require('../');
describe('dialogs', function () {
this.timeout(5000);
it('should process a waterfall of all built-in prompt types', function (done) {
var step = 0;
var connector = new builder.ConsoleConnector();
var bot = new builder.UniversalBot(connector);
bot.dialog('/', [
function (session) {
assert(session.message.text == 'start');
builder.Prompts.text(session, 'enter text');
},
function (session, results) {
assert(results.response === 'some text');
builder.Prompts.number(session, 'enter a number');
},
function (session, results) {
assert(results.response === 42);
builder.Prompts.choice(session, 'pick a color', 'red|green|blue');
},
function (session, results) {
assert(results.response && results.response.entity === 'green');
builder.Prompts.confirm(session, 'Is green your choice?');
},
function (session, results) {
assert(results.response && results.response === true);
builder.Prompts.time(session, 'enter a time');
},
function (session, results) {
assert(results.response);
var date = builder.EntityRecognizer.resolveTime([results.response]);
assert(date);
session.send('done');
}
]);
bot.on('send', function (message) {
switch (++step) {
case 1:
assert(message.text == 'enter text');
connector.processMessage('some text');
break;
case 2:
connector.processMessage('42');
break;
case 3:
connector.processMessage('green');
break;
case 4:
connector.processMessage('yes');
break;
case 5:
connector.processMessage('in 5 minutes');
break;
case 6:
assert(message.text == 'done');
done();
break;
}
});
connector.processMessage('start');
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment