UNPKG

claudia-bot-builder-fb

Version:

Create chat-bots for various platforms and deploy to AWS Lambda quickly

43 lines (35 loc) 1.93 kB
/*global describe, it, expect, require */ var parse = require('../../lib/slack/parse'); describe('Slack parse', () => { it('returns nothing if the format is invalid', () => { expect(parse('string')).toBeUndefined(); expect(parse()).toBeUndefined(); expect(parse(false)).toBeUndefined(); expect(parse(123)).toBeUndefined(); expect(parse({})).toBeUndefined(); expect(parse([1, 2, 3])).toBeUndefined(); }); it('returns nothing if user_id and actions are missing', () => { expect(parse({text: 'pete'})).toBeUndefined(); }); it('returns an empty text if the text is missing', () => { var msg = { user_id: 123 }; expect(parse(msg)).toEqual({ sender: 123, text: '', originalRequest: msg, type: 'slack-slash-command'}); }); it('returns a parsed object when text and user_id are present', () => { var msg = { user_id: 123, text: 'Hello' }; expect(parse(msg)).toEqual({ sender: 123, text: 'Hello', originalRequest: msg, type: 'slack-slash-command'}); }); it('returns a parsed object when actions are present', () => { var msg = { user: { id: 123, name: 'username' }, actions: [{name: 'test', value: 'action'}] }; expect(parse(msg)).toEqual({ sender: 123, text: '', originalRequest: msg, type: 'slack-message-action', postback: true}); }); it('returns a parsed object when user and type dialog_submission are present', () => { var msg = { user: { id: 123, name: 'username' }, type: 'dialog_submission' }; expect(parse(msg)).toEqual({ sender: 123, text: '', originalRequest: msg, type: 'slack-dialog-confirm', postback: true}); }); it('returns a parsed object when user and type dialog_cancellation are present', () => { var msg = { user: { id: 123, name: 'username' }, type: 'dialog_cancellation' }; expect(parse(msg)).toEqual({ sender: 123, text: '', originalRequest: msg, type: 'slack-dialog-cancel', postback: true}); }); });