UNPKG

botbuilder-unit

Version:
115 lines (111 loc) 2.65 kB
const botFactory = require('./lib/botFactory'); const unit = require('../'); describe('Support for session management functions', function () { let bot = null; let script = null; let sessionBot = () => { bot = botFactory(); bot.dialog('/test', [ (session) => { let name = session.userData.name; session.endDialog(`Hello, ${name}!`) } ]) }; beforeEach((done) => { done(); }); it('Should support initialization of session, before starting a conversation', (done) => { sessionBot(); let script = [ {session: {userData: {name: 'Gisma'}}}, {user: 'Hi'}, {bot: 'Hello, Gisma!'}, {session: {userData: {name: 'Yulia'}}}, {user: 'Hi'}, {bot: "Hello, Yulia!"} ]; unit(bot, script).then(done, (e) => { fail('Aaaah... Fuck!') done(); }); }); it('Should support filtering callbacks ', (done) => { sessionBot(); let script = [ { session: function (currentSession) { currentSession.userData.name = 'Gisma'; return Promise.resolve(currentSession); } }, { user: 'Hi' }, { bot: 'Hello, Gisma!' }, { session: (currentSession) => { currentSession.userData.name = '123' + currentSession.userData.name return Promise.resolve(currentSession); } }, { user: 'Hi' }, { bot: 'Hello, 123Gisma!' } ] unit(bot, script).then(done); }) it('Should support multiple session modificator', (done) => { sessionBot(); let script = [ { session: {userData: {name: "Gi"}} }, { session: function (currentSession) {//// currentSession.userData.name += 'sma'; return Promise.resolve(currentSession); } }, { user: 'Hi' }, { bot: 'Hello, Gisma!' }, { session: (currentSession) => { currentSession.userData.name = '123' + currentSession.userData.name return Promise.resolve(currentSession); } }, { user: 'Hi' }, { bot: 'Hello, 123Gisma!' } ] unit(bot, script).then(done); }); it('Test edge cases', (done) => { bot = botFactory(); let script = [ {session: {myCustomName: 'Mr Freeman'}}, {user: 'hi'}, {bot: 'Hello, Mr Freeman!'} ]; bot.dialog('/test', [ (session) => { let name = session.myCustomName; session.endDialog(`Hello, ${name}!`) } ]) unit(bot, script).then(done); }); })