UNPKG

node-red-contrib-chatbot

Version:

REDBot a Chat bot for a full featured chat bot for Telegram, Facebook Messenger and Slack. Almost no coding skills required

101 lines (93 loc) 3.3 kB
const _ = require('underscore'); const assert = require('chai').assert; const RED = require('../lib/red-stub')(); const NLPEntityBlock = require('../nodes/chatbot-nlp-intent'); require('../lib/platforms/telegram'); require('../lib/platforms/slack/index'); describe('Chat nlp intent node', () => { it('set the intent payload', () => { const msg = RED.createMessage(); RED.node.config({ intent: 'switch.on', language: 'en', utterances: [ 'switch on the lights', 'turn on the lights' ] }); NLPEntityBlock(RED); RED.node.get().emit('input', msg); return RED.node.get().await() .then(() => { const payload = RED.node.message().payload; assert.isObject(payload); assert.isObject(payload.intents); assert.isObject(payload.intents.en); assert.isArray(payload.intents.en['switch.on']); assert.lengthOf(payload.intents.en['switch.on'], 2); assert.equal(payload.intents.en['switch.on'][0], 'switch on the lights'); assert.equal(payload.intents.en['switch.on'][1], 'turn on the lights'); }); }); it('set the intent payload from message', () => { const msg = RED.createMessage({ intent: 'switch.on', language: 'en', utterances: [ 'switch on the lights', 'turn on the lights' ] }); RED.node.config({}); NLPEntityBlock(RED); RED.node.get().emit('input', msg); return RED.node.get().await() .then(() => { const payload = RED.node.message().payload; assert.isObject(payload); assert.isObject(payload.intents); assert.isObject(payload.intents.en); assert.isArray(payload.intents.en['switch.on']); assert.lengthOf(payload.intents.en['switch.on'], 2); assert.equal(payload.intents.en['switch.on'][0], 'switch on the lights'); assert.equal(payload.intents.en['switch.on'][1], 'turn on the lights'); }); }); it('set the intent payload and append to previous', () => { const msg = RED.createMessage({ intents: { en: { 'switch.on': ['switch on all the lights'] }, it: { 'switch.on': ['appiccia la luce'] } } }); RED.node.config({ intent: 'switch.on', language: 'en', utterances: [ 'switch on the lights', 'turn on the lights' ] }); NLPEntityBlock(RED); RED.node.get().emit('input', msg); return RED.node.get().await() .then(() => { const payload = RED.node.message().payload; assert.isObject(payload); assert.isObject(payload.intents); assert.isObject(payload.intents.en); assert.isArray(payload.intents.en['switch.on']); assert.lengthOf(payload.intents.en['switch.on'], 3); assert.equal(payload.intents.en['switch.on'][0], 'switch on all the lights'); assert.equal(payload.intents.en['switch.on'][1], 'switch on the lights'); assert.equal(payload.intents.en['switch.on'][2], 'turn on the lights'); assert.isArray(payload.intents.it['switch.on']); assert.lengthOf(payload.intents.it['switch.on'], 1); assert.equal(payload.intents.it['switch.on'][0], 'appiccia la luce'); }); }); });