@tiledesk/tiledesk-server
Version:
The Tiledesk server module
751 lines (551 loc) • 148 kB
JavaScript
//During the test the env variable is set to test
process.env.NODE_ENV = 'test';
//Require the dev-dependencies
let chai = require('chai');
let chaiHttp = require('chai-http');
let server = require('../app');
var projectService = require('../services/projectService');
var userService = require('../services/userService');
let should = chai.should();
var messageService = require('../services/messageService');
var requestService = require('../services/requestService');
var faqService = require('../services/faqService');
var Department = require('../models/department');
var Faq = require('../models/faq');
var faqBotSupport = require('../services/faqBotSupport');
var Project_user = require("../models/project_user");
var expect = chai.expect;
var assert = chai.assert;
//server client
var express = require('express');
const bodyParser = require('body-parser');
var leadService = require('../services/leadService');
const chatbotTypes = require('../models/chatbotTypes');
// var http = require('http');
// const { parse } = require('querystring');
//end server client
chai.use(chaiHttp);
describe('bot', () => {
describe('/messages', () => {
// mocha test-int/bot.js --grep 'createSimpleExatMatch'
it('createSimpleExatMatch', (done) => {
var email = "test-bot-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
projectService.create("test-bot", savedUser._id).then(function(savedProject) {
// create(name, url, projectid, user_id, type)
faqService.create(savedProject._id, savedUser._id, { name: "testbot", type: "internal" }).then(function(savedBot) {
var newFaq = new Faq({
id_faq_kb: savedBot._id,
question: 'question',
answer: 'answer',
id_project: savedProject._id,
createdBy: savedUser._id,
updatedBy: savedUser._id
});
newFaq.save(function (err, savedFaq) {
Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
chai.request(server)
.post('/'+ savedProject._id + '/subscriptions')
.auth(email, pwd)
.set('content-type', 'application/json')
.send({"event":"message.create", "target":"http://localhost:3005/"})
.end((err, res) => {
console.log("res.body", JSON.stringify(res.body));
// console.dir("res.body 1", res.body);
console.log("res.headers", res.headers);
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.event).to.equal("message.create");
var secret = res.body.secret;
expect(secret).to.not.equal(null);
expect(res.headers["x-hook-secret"]).to.equal(secret);
let messageReceived = 0;
var serverClient = express();
serverClient.use(bodyParser.json());
serverClient.post('/', function (req, res) {
console.log('serverClient req', JSON.stringify(req.body));
console.log("serverClient.headers", JSON.stringify(req.headers));
messageReceived = messageReceived+1;
expect(req.body.hook.event).to.equal("message.create");
expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-sending");
expect(req.body.payload.request.department).to.not.equal(null);
expect(req.body.payload.request.department.bot).to.not.equal(null);
expect(req.body.payload.request.department.bot.name).to.equal("testbot");
expect(req.headers["x-hook-secret"]).to.equal(secret);
res.send('POST request to the homepage');
expect(req.body.payload.text).to.equal("answer");
// console.log("savedFaq",savedFaq);
expect(req.body.payload.sender).to.equal("bot_"+savedBot.id);
expect(req.body.payload.recipient).to.equal("request_id-subscription-message-sending");
// expect(req.body.payload.attributes._answer._id.toString()).to.equal(savedFaq._id.toString());
expect(req.body.payload.attributes._answerid.toString()).to.equal(savedFaq._id.toString());
expect(req.body.payload.attributes.intent_info.is_fallback).to.equal(false);
expect(req.body.payload.attributes.intent_info.question_payload.text).to.equal("question");
done();
});
var listener = serverClient.listen(3005, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
requestService.createWithId("request_id-subscription-message-sending", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
savedProject._id, savedUser._id).then(function(savedMessage){
expect(savedMessage.text).to.equal("question");
// expect(savedMessage.sender).to.equal("question");
});
});
});
});
});
});
});
});
});
}).timeout(20000);
// mocha test-int/bot.js --grep 'createSimpleAgent'
it('createSimpleAgent', (done) => {
var email = "test-bot-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
projectService.create("test-bot", savedUser._id).then(function(savedProject) {
// create(name, url, projectid, user_id, type)
faqService.create(savedProject._id, savedUser._id, { name: "testbot", type: "internal" }).then(function(savedBot) {
var newFaq = new Faq({
id_faq_kb: savedBot._id,
question: 'switch agent',
answer: '\\agent',
id_project: savedProject._id,
createdBy: savedUser._id,
updatedBy: savedUser._id
});
newFaq.save(function (err, savedFaq) {
Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
console.log('000');
chai.request(server)
.post('/'+ savedProject._id + '/subscriptions')
.auth(email, pwd)
.set('content-type', 'application/json')
.send({"event":"request.update", "target":"http://localhost:3006/"})
.end((err, res) => {
console.log("res.body", JSON.stringify(res.body));
// console.dir("res.body 1", res.body);
console.log("res.headers", res.headers);
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.event).to.equal("request.update");
var secret = res.body.secret;
expect(secret).to.not.equal(null);
expect(res.headers["x-hook-secret"]).to.equal(secret);
console.log('001');
let messageReceived = 0;
var serverClient = express();
serverClient.use(bodyParser.json());
serverClient.post('/', function (req, res) {
console.log('serverClient req', JSON.stringify(req.body));
console.log("serverClient.headers", JSON.stringify(req.headers));
messageReceived = messageReceived+1;
expect(req.body.hook.event).to.equal("request.update");
console.log('11');
expect(req.body.payload.request_id).to.equal("request_id-subscription-message-sending-createSimpleAgent");
console.log('12');
expect(req.body.payload.hasBot).equal(false);
console.log('savedUser._id',savedUser._id);
expect(req.body.payload.participantsAgents[0]).equal(savedUser._id.toString());
console.log('13');
expect(req.headers["x-hook-secret"]).to.equal(secret);
res.send('POST request to the homepage');
expect(req.body.payload.first_text).to.equal("first_text");
done();
});
var listener = serverClient.listen(3006, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
leadService.createIfNotExists("leadfullname-subscription-message-sending-createSimpleAgent", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
requestService.createWithId("request_id-subscription-message-sending-createSimpleAgent", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
messageService.create(savedUser._id, "test sender", savedRequest.request_id, "switch agent",
savedProject._id, savedUser._id).then(function(savedMessage){
expect(savedMessage.text).to.equal("switch agent");
// expect(savedMessage.sender).to.equal("question");
});
});
});
});
});
});
});
});
});
}).timeout(20000);
// mocha test-int/bot.js --grep 'createSimpleAgentTwoAgent'
it('createSimpleAgentTwoAgent', (done) => {
var email = "test-bot-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
projectService.create("test-bot", savedUser._id).then(function(savedProject) {
userService.signup( "test-bot-" + Date.now() + "@email.com" ,pwd, "Test Firstname", "Test lastname").then(function(savedUser2) {
var newProject_user = new Project_user({
// _id: new mongoose.Types.ObjectId(),
id_project: savedProject._id.toString(),
id_user: savedUser2._id.toString(),
role: "agent",
user_available: true,
createdBy: savedUser._id,
updatedBy: savedUser._id
});
return newProject_user.save(function (err, savedProject_user) {
if (err) {
console.log("err",err)
}
leadService.createIfNotExists("leadfullname-subscription-message-sending-createSimpleAgent", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
requestService.createWithId("request_id-subscription-message-sending-createSimpleAgent-2", createdLead._id, savedProject._id, "first_text").then(function(savedRequest2) {
console.log("savedRequest2", savedRequest2);
expect(savedRequest2.request_id).to.equal("request_id-subscription-message-sending-createSimpleAgent-2");
// expect(savedRequest2.participantsAgents[0]).equal(savedUser2._id.toString());
var selectedAgent = savedRequest2.participantsAgents[0];
console.log("selectedAgent", selectedAgent);
expect(savedRequest2.hasBot).equal(false);
messageService.create(savedUser._id, "test sender", savedRequest2.request_id, "switch agent", savedProject._id, savedUser._id).then(function(savedMessage2){
expect(savedMessage2.text).to.equal("switch agent");
// expect(savedMessage.sender).to.equal("question");
// create(name, url, projectid, user_id, type)
faqService.create(savedProject._id, savedUser._id, { name: "testbot", type: "internal" }).then(function(savedBot) {
var newFaq = new Faq({
id_faq_kb: savedBot._id,
question: 'switch agent',
answer: '\\agent',
id_project: savedProject._id,
createdBy: savedUser._id,
updatedBy: savedUser._id
});
newFaq.save(function (err, savedFaq) {
Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
console.log('000');
chai.request(server)
.post('/'+ savedProject._id + '/subscriptions')
.auth(email, pwd)
.set('content-type', 'application/json')
.send({"event":"request.update", "target":"http://localhost:3021/"})
.end((err, res) => {
console.log("res.body", JSON.stringify(res.body));
// console.dir("res.body 1", res.body);
console.log("res.headers", res.headers);
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.event).to.equal("request.update");
var secret = res.body.secret;
expect(secret).to.not.equal(null);
expect(res.headers["x-hook-secret"]).to.equal(secret);
console.log('001');
let messageReceived = 0;
var serverClient = express();
serverClient.use(bodyParser.json());
serverClient.post('/', function (req, res) {
console.log('serverClient req', JSON.stringify(req.body));
console.log("serverClient.headers", JSON.stringify(req.headers));
messageReceived = messageReceived+1;
expect(req.body.hook.event).to.equal("request.update");
console.log('11');
expect(req.body.payload.request_id).to.equal("request_id-subscription-message-sending-createSimpleAgent");
console.log('12');
expect(req.body.payload.hasBot).equal(false);
console.log('savedUser._id',savedUser._id);
console.log('savedUser2._id',savedUser2._id);
// expect(req.body.payload.participantsAgents[0]).equal(savedUser._id.toString());
expect(req.body.payload.participantsAgents[0]).not.equal(selectedAgent);
console.log('13');
expect(req.headers["x-hook-secret"]).to.equal(secret);
res.send('POST request to the homepage');
expect(req.body.payload.first_text).to.equal("first_text");
done();
});
var listener = serverClient.listen(3021, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
requestService.createWithId("request_id-subscription-message-sending-createSimpleAgent", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
messageService.create(savedUser._id, "test sender", savedRequest.request_id, "switch agent",
savedProject._id, savedUser._id).then(function(savedMessage){
expect(savedMessage.text).to.equal("switch agent");
// expect(savedMessage.sender).to.equal("question");
});
});
});
});
});
});
});
});
});
});
});
});
});
}).timeout(20000);
// mocha test-int/bot.js --grep 'createSimpleFulltext'
it('createSimpleFulltext', (done) => {
var email = "test-bot-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
projectService.create("test-bot", savedUser._id).then(function(savedProject) {
// create(name, url, projectid, user_id, type)
faqService.create(savedProject._id, savedUser._id, { name: "testbot", type: "internal" }).then(function(savedBot) {
var newFaq = new Faq({
id_faq_kb: savedBot._id,
question: 'question number one',
answer: 'answer',
id_project: savedProject._id,
createdBy: savedUser._id,
updatedBy: savedUser._id
});
newFaq.save(function (err, savedFaq) {
Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
chai.request(server)
.post('/'+ savedProject._id + '/subscriptions')
.auth(email, pwd)
.set('content-type', 'application/json')
.send({"event":"message.create", "target":"http://localhost:3010/"})
.end((err, res) => {
console.log("res.body", JSON.stringify(res.body));
// console.dir("res.body 1", res.body);
console.log("res.headers", res.headers);
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.event).to.equal("message.create");
var secret = res.body.secret;
expect(secret).to.not.equal(null);
expect(res.headers["x-hook-secret"]).to.equal(secret);
let messageReceived = 0;
var serverClient = express();
serverClient.use(bodyParser.json());
serverClient.post('/', function (req, res) {
console.log('serverClient req', JSON.stringify(req.body));
console.log("serverClient.headers", JSON.stringify(req.headers));
messageReceived = messageReceived+1;
expect(req.body.hook.event).to.equal("message.create");
expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-sending");
expect(req.body.payload.request.department).to.not.equal(null);
expect(req.body.payload.request.department.bot).to.not.equal(null);
expect(req.body.payload.request.department.bot.name).to.equal("testbot");
expect(req.headers["x-hook-secret"]).to.equal(secret);
res.send('POST request to the homepage');
expect(req.body.payload.text).to.equal("answer");
// console.log("savedFaq",savedFaq);
expect(req.body.payload.sender).to.equal("bot_"+savedBot.id);
expect(req.body.payload.recipient).to.equal("request_id-subscription-message-sending");
// expect(req.body.payload.attributes._answer._id.toString()).to.equal(savedFaq._id.toString());
expect(req.body.payload.attributes._answerid.toString()).to.equal(savedFaq._id.toString());
done();
});
var listener = serverClient.listen(3010, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
requestService.createWithId("request_id-subscription-message-sending", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
savedProject._id, savedUser._id).then(function(savedMessage){
expect(savedMessage.text).to.equal("question");
// expect(savedMessage.sender).to.equal("question");
});
});
});
});
});
});
});
});
});
}).timeout(20000);
// mocha test-int/bot.js --grep 'createSimpleExternalSearcherBot'
it('createSimpleExternalSearcherBot', (done) => {
var email = "test-bot-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
projectService.create("test-bot", savedUser._id).then(function(savedProject) {
// create(name, url, projectid, user_id, type)
faqService.create(savedProject._id, savedUser._id, { name: "testbot", url: "http://localhost:3001/samples/bot/external/searcher", type: "internal" }).then(function(savedBot) {
var newFaq = new Faq({
id_faq_kb: savedBot._id,
question: 'question number one',
answer: 'answer',
id_project: savedProject._id,
createdBy: savedUser._id,
updatedBy: savedUser._id
});
newFaq.save(function (err, savedFaq) {
Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
chai.request(server)
.post('/'+ savedProject._id + '/subscriptions')
.auth(email, pwd)
.set('content-type', 'application/json')
.send({"event":"message.create", "target":"http://localhost:3010/"})
.end((err, res) => {
console.log("res.body", JSON.stringify(res.body));
// console.dir("res.body 1", res.body);
console.log("res.headers", res.headers);
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.event).to.equal("message.create");
var secret = res.body.secret;
expect(secret).to.not.equal(null);
expect(res.headers["x-hook-secret"]).to.equal(secret);
let messageReceived = 0;
var serverClient = express();
serverClient.use(bodyParser.json());
serverClient.post('/', function (req, res) {
console.log('serverClient req', JSON.stringify(req.body));
console.log("serverClient.headers", JSON.stringify(req.headers));
messageReceived = messageReceived+1;
expect(req.body.hook.event).to.equal("message.create");
expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-sending");
expect(req.body.payload.request.department).to.not.equal(null);
expect(req.body.payload.request.department.bot).to.not.equal(null);
expect(req.body.payload.request.department.bot.name).to.equal("testbot");
expect(req.headers["x-hook-secret"]).to.equal(secret);
res.send('POST request to the homepage');
expect(req.body.payload.text).to.equal("answer");
// console.log("savedFaq",savedFaq);
expect(req.body.payload.sender).to.equal("bot_"+savedBot.id);
expect(req.body.payload.recipient).to.equal("request_id-subscription-message-sending");
// expect(req.body.payload.attributes._answer._id.toString()).to.equal(savedFaq._id.toString());
expect(req.body.payload.attributes._answerid.toString()).to.equal(savedFaq._id.toString());
done();
});
var listener = serverClient.listen(3010, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
requestService.createWithId("request_id-subscription-message-sending", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
savedProject._id, savedUser._id).then(function(savedMessage){
expect(savedMessage.text).to.equal("question");
// expect(savedMessage.sender).to.equal("question");
});
});
});
});
});
});
});
});
});
}).timeout(20000);
// mocha test-int/bot.js --grep 'createNotFoundDefaultFallback'
it('createNotFoundDefaultFallback', (done) => {
var email = "test-bot-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
projectService.create("test-bot", savedUser._id).then(function(savedProject) {
// create(name, url, projectid, user_id, type)
faqService.create(savedProject._id, savedUser._id, { name: "testbot", type: "internal" }).then(function(savedBot) {
var newFaq = new Faq({
id_faq_kb: savedBot._id,
question: 'question',
answer: 'answer',
id_project: savedProject._id,
createdBy: savedUser._id,
updatedBy: savedUser._id
});
newFaq.save(function (err, savedFaq) {
Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
chai.request(server)
.post('/'+ savedProject._id + '/subscriptions')
.auth(email, pwd)
.set('content-type', 'application/json')
.send({"event":"message.create", "target":"http://localhost:3008/"})
.end((err, res) => {
console.log("res.body", JSON.stringify(res.body));
// console.dir("res.body 1", res.body);
console.log("res.headers", res.headers);
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.event).to.equal("message.create");
var secret = res.body.secret;
expect(secret).to.not.equal(null);
expect(res.headers["x-hook-secret"]).to.equal(secret);
let messageReceived = 0;
var serverClient = express();
serverClient.use(bodyParser.json());
serverClient.post('/', function (req, res) {
console.log('serverClient req', JSON.stringify(req.body));
console.log("serverClient.headers", JSON.stringify(req.headers));
messageReceived = messageReceived+1;
expect(req.body.hook.event).to.equal("message.create");
expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-sending-createNotFoundDefaultFallback");
expect(req.body.payload.request.department).to.not.equal(null);
expect(req.body.payload.request.department.bot).to.not.equal(null);
expect(req.body.payload.request.department.bot.name).to.equal("testbot");
expect(req.headers["x-hook-secret"]).to.equal(secret);
expect(req.body.payload.text).to.equal("I can not provide an adequate answer. Write a new question or talk to a human agent.");
// expect(req.body.payload.attributes._answer.text).to.equal("I can not provide an adequate answer. Write a new question or talk to a human agent.");
expect(req.body.payload.attributes._answerid).to.not.equal(null);
res.send('POST request to the homepage');
done();
});
var listener = serverClient.listen(3008, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
leadService.createIfNotExists("leadfullname-subscription-message-sending-createNotFoundDefaultFallback", "andrea.leo@-subscription-message-sending-createNotFoundDefaultFallback.it", savedProject._id).then(function(createdLead) {
requestService.createWithId("request_id-subscription-message-sending-createNotFoundDefaultFallback", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
messageService.create(savedUser._id, "test sender", savedRequest.request_id, "questionNOTFOUND",
savedProject._id, savedUser._id).then(function(savedMessage){
expect(savedMessage.text).to.equal("questionNOTFOUND");
});
});
});
});
});
});
});
});
});
}).timeout(20000);
// mocha test-int/bot.js --grep 'createFaqWithImage'
it('createFaqWithImage', (done) => {
var email = "test-bot-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
projectService.create("test-bot", savedUser._id).then(function(savedProject) {
// create(name, url, projectid, user_id, type)
faqService.create(savedProject._id, savedUser._id, { name: "testbot", type: "internal" }).then(function(savedBot) {
var newFaq = new Faq({
id_faq_kb: savedBot._id,
question: 'question',
answer: 'answer \n\\image:https://www.tiledesk.com/wp-content/uploads/2018/03/tiledesk-logo.png',
id_project: savedProject._id,
createdBy: savedUser._id,
updatedBy: savedUser._id
});
newFaq.save(function (err, savedFaq) {
Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
chai.request(server)
.post('/'+ savedProject._id + '/subscriptions')
.auth(email, pwd)
.set('content-type', 'application/json')
.send({"event":"message.create", "target":"http://localhost:3011/"})
.end((err, res) => {
console.log("res.body", JSON.stringify(res.body));
// console.dir("res.body 1", res.body);
console.log("res.headers", res.headers);
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.event).to.equal("message.create");
var secret = res.body.secret;
expect(secret).to.not.equal(null);
expect(res.headers["x-hook-secret"]).to.equal(secret);
let messageReceived = 0;
var serverClient = express();
serverClient.use(bodyParser.json());
serverClient.post('/', function (req, res) {
console.log('serverClient req', JSON.stringify(req.body));
console.log("serverClient.headers", JSON.stringify(req.headers));
if (req.body.payload.text=="question") {
return res.send('POST request to the homepage');
}
messageReceived = messageReceived+1;
expect(req.body.hook.event).to.equal("message.create");
expect(req.body.payload.type).to.equal("image");
expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithImage");
expect(req.body.payload.request.department).to.not.equal(null);
expect(req.body.payload.request.department.bot).to.not.equal(null);
expect(req.body.payload.request.department.bot.name).to.equal("testbot");
expect(req.headers["x-hook-secret"]).to.equal(secret);
res.send('POST request to the homepage');
expect(req.body.payload.text).to.equal("answer");
expect(req.body.payload.metadata.src).to.equal("https://www.tiledesk.com/wp-content/uploads/2018/03/tiledesk-logo.png");
expect(req.body.payload.metadata.width).to.equal(200);
expect(req.body.payload.metadata.height).to.equal(200);
expect(req.body.payload.attributes.intent_info.is_fallback).to.equal(false);
expect(req.body.payload.attributes.intent_info.question_payload.text).to.equal("question");
expect(req.body.payload.attributes._raw_message).to.equal('answer \n\\image:https://www.tiledesk.com/wp-content/uploads/2018/03/tiledesk-logo.png');
done();;
});
var listener = serverClient.listen(3011, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscripti