@tiledesk/tiledesk-server 2.2.15 → 2.2.16

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,2074 +0,0 @@
1
- //During the test the env variable is set to test
2
- process.env.NODE_ENV = 'test';
3
-
4
-
5
- //Require the dev-dependencies
6
- let chai = require('chai');
7
- let chaiHttp = require('chai-http');
8
- let server = require('../app');
9
- var projectService = require('../services/projectService');
10
- var userService = require('../services/userService');
11
- let should = chai.should();
12
- var messageService = require('../services/messageService');
13
- var requestService = require('../services/requestService');
14
- var faqService = require('../services/faqService');
15
- var Department = require('../models/department');
16
- var Faq = require('../models/faq');
17
- var faqBotSupport = require('../services/faqBotSupport');
18
- var Project_user = require("../models/project_user");
19
-
20
- var expect = chai.expect;
21
- var assert = chai.assert;
22
-
23
- //server client
24
- var express = require('express');
25
- const bodyParser = require('body-parser');
26
-
27
- var leadService = require('../services/leadService');
28
-
29
- // var http = require('http');
30
- // const { parse } = require('querystring');
31
-
32
- //end server client
33
-
34
- chai.use(chaiHttp);
35
-
36
- describe('bot', () => {
37
-
38
- describe('/messages', () => {
39
-
40
-
41
- // mocha test-int/bot.js --grep 'createSimpleExatMatch'
42
- it('createSimpleExatMatch', (done) => {
43
-
44
- var email = "test-bot-" + Date.now() + "@email.com";
45
- var pwd = "pwd";
46
-
47
-
48
-
49
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
50
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
51
- // create(name, url, projectid, user_id, type)
52
- faqService.create("testbot", null, savedProject._id, savedUser._id, "internal").then(function(savedBot) {
53
-
54
- var newFaq = new Faq({
55
- id_faq_kb: savedBot._id,
56
- question: 'question',
57
- answer: 'answer',
58
- id_project: savedProject._id,
59
- createdBy: savedUser._id,
60
- updatedBy: savedUser._id
61
- });
62
-
63
- newFaq.save(function (err, savedFaq) {
64
-
65
-
66
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
67
-
68
- chai.request(server)
69
- .post('/'+ savedProject._id + '/subscriptions')
70
- .auth(email, pwd)
71
- .set('content-type', 'application/json')
72
- .send({"event":"message.create", "target":"http://localhost:3005/"})
73
- .end((err, res) => {
74
- console.log("res.body", JSON.stringify(res.body));
75
- // console.dir("res.body 1", res.body);
76
- console.log("res.headers", res.headers);
77
- res.should.have.status(200);
78
- res.body.should.be.a('object');
79
- expect(res.body.event).to.equal("message.create");
80
- var secret = res.body.secret;
81
- expect(secret).to.not.equal(null);
82
- expect(res.headers["x-hook-secret"]).to.equal(secret);
83
-
84
-
85
- let messageReceived = 0;
86
- var serverClient = express();
87
- serverClient.use(bodyParser.json());
88
- serverClient.post('/', function (req, res) {
89
- console.log('serverClient req', JSON.stringify(req.body));
90
- console.log("serverClient.headers", JSON.stringify(req.headers));
91
- messageReceived = messageReceived+1;
92
- expect(req.body.hook.event).to.equal("message.create");
93
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-sending");
94
- expect(req.body.payload.request.department).to.not.equal(null);
95
- expect(req.body.payload.request.department.bot).to.not.equal(null);
96
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
97
-
98
- expect(req.headers["x-hook-secret"]).to.equal(secret);
99
- res.send('POST request to the homepage');
100
- expect(req.body.payload.text).to.equal("answer");
101
- // console.log("savedFaq",savedFaq);
102
- expect(req.body.payload.sender).to.equal("bot_"+savedBot.id);
103
- expect(req.body.payload.recipient).to.equal("request_id-subscription-message-sending");
104
- // expect(req.body.payload.attributes._answer._id.toString()).to.equal(savedFaq._id.toString());
105
- expect(req.body.payload.attributes._answerid.toString()).to.equal(savedFaq._id.toString());
106
-
107
- expect(req.body.payload.attributes.intent_info.is_fallback).to.equal(false);
108
-
109
- expect(req.body.payload.attributes.intent_info.question_payload.text).to.equal("question");
110
-
111
-
112
- done();
113
-
114
-
115
-
116
-
117
- });
118
- var listener = serverClient.listen(3005, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
119
-
120
-
121
- leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
122
- requestService.createWithId("request_id-subscription-message-sending", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
123
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
124
- savedProject._id, savedUser._id).then(function(savedMessage){
125
- expect(savedMessage.text).to.equal("question");
126
- // expect(savedMessage.sender).to.equal("question");
127
- });
128
- });
129
- });
130
- });
131
- });
132
- });
133
- });
134
-
135
- });
136
- });
137
- }).timeout(20000);
138
-
139
-
140
-
141
-
142
-
143
- // mocha test-int/bot.js --grep 'createSimpleAgent'
144
- it('createSimpleAgent', (done) => {
145
-
146
- var email = "test-bot-" + Date.now() + "@email.com";
147
- var pwd = "pwd";
148
-
149
-
150
-
151
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
152
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
153
- // create(name, url, projectid, user_id, type)
154
- faqService.create("testbot", null, savedProject._id, savedUser._id, "internal").then(function(savedBot) {
155
-
156
- var newFaq = new Faq({
157
- id_faq_kb: savedBot._id,
158
- question: 'switch agent',
159
- answer: '\\agent',
160
- id_project: savedProject._id,
161
- createdBy: savedUser._id,
162
- updatedBy: savedUser._id
163
- });
164
-
165
- newFaq.save(function (err, savedFaq) {
166
-
167
-
168
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
169
- console.log('000');
170
- chai.request(server)
171
- .post('/'+ savedProject._id + '/subscriptions')
172
- .auth(email, pwd)
173
- .set('content-type', 'application/json')
174
- .send({"event":"request.update", "target":"http://localhost:3006/"})
175
- .end((err, res) => {
176
- console.log("res.body", JSON.stringify(res.body));
177
- // console.dir("res.body 1", res.body);
178
- console.log("res.headers", res.headers);
179
- res.should.have.status(200);
180
- res.body.should.be.a('object');
181
- expect(res.body.event).to.equal("request.update");
182
- var secret = res.body.secret;
183
- expect(secret).to.not.equal(null);
184
- expect(res.headers["x-hook-secret"]).to.equal(secret);
185
- console.log('001');
186
-
187
-
188
- let messageReceived = 0;
189
- var serverClient = express();
190
- serverClient.use(bodyParser.json());
191
- serverClient.post('/', function (req, res) {
192
- console.log('serverClient req', JSON.stringify(req.body));
193
- console.log("serverClient.headers", JSON.stringify(req.headers));
194
- messageReceived = messageReceived+1;
195
- expect(req.body.hook.event).to.equal("request.update");
196
- console.log('11');
197
- expect(req.body.payload.request_id).to.equal("request_id-subscription-message-sending-createSimpleAgent");
198
- console.log('12');
199
- expect(req.body.payload.hasBot).equal(false);
200
- console.log('savedUser._id',savedUser._id);
201
- expect(req.body.payload.participantsAgents[0]).equal(savedUser._id.toString());
202
- console.log('13');
203
-
204
- expect(req.headers["x-hook-secret"]).to.equal(secret);
205
- res.send('POST request to the homepage');
206
- expect(req.body.payload.first_text).to.equal("first_text");
207
-
208
- done();
209
-
210
-
211
-
212
-
213
- });
214
- var listener = serverClient.listen(3006, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
215
-
216
-
217
- leadService.createIfNotExists("leadfullname-subscription-message-sending-createSimpleAgent", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
218
- requestService.createWithId("request_id-subscription-message-sending-createSimpleAgent", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
219
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "switch agent",
220
- savedProject._id, savedUser._id).then(function(savedMessage){
221
- expect(savedMessage.text).to.equal("switch agent");
222
- // expect(savedMessage.sender).to.equal("question");
223
- });
224
- });
225
- });
226
- });
227
- });
228
- });
229
- });
230
-
231
- });
232
- });
233
- }).timeout(20000);
234
-
235
-
236
-
237
-
238
-
239
- // mocha test-int/bot.js --grep 'createSimpleAgentTwoAgent'
240
- it('createSimpleAgentTwoAgent', (done) => {
241
-
242
- var email = "test-bot-" + Date.now() + "@email.com";
243
- var pwd = "pwd";
244
-
245
-
246
-
247
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
248
-
249
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
250
-
251
- userService.signup( "test-bot-" + Date.now() + "@email.com" ,pwd, "Test Firstname", "Test lastname").then(function(savedUser2) {
252
-
253
- var newProject_user = new Project_user({
254
- // _id: new mongoose.Types.ObjectId(),
255
- id_project: savedProject._id.toString(),
256
- id_user: savedUser2._id.toString(),
257
- role: "agent",
258
- user_available: true,
259
- createdBy: savedUser._id,
260
- updatedBy: savedUser._id
261
- });
262
-
263
- return newProject_user.save(function (err, savedProject_user) {
264
-
265
- if (err) {
266
- console.log("err",err)
267
- }
268
- leadService.createIfNotExists("leadfullname-subscription-message-sending-createSimpleAgent", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
269
- requestService.createWithId("request_id-subscription-message-sending-createSimpleAgent-2", createdLead._id, savedProject._id, "first_text").then(function(savedRequest2) {
270
- console.log("savedRequest2", savedRequest2);
271
-
272
- expect(savedRequest2.request_id).to.equal("request_id-subscription-message-sending-createSimpleAgent-2");
273
- // expect(savedRequest2.participantsAgents[0]).equal(savedUser2._id.toString());
274
- var selectedAgent = savedRequest2.participantsAgents[0];
275
- console.log("selectedAgent", selectedAgent);
276
-
277
- expect(savedRequest2.hasBot).equal(false);
278
-
279
- messageService.create(savedUser._id, "test sender", savedRequest2.request_id, "switch agent", savedProject._id, savedUser._id).then(function(savedMessage2){
280
- expect(savedMessage2.text).to.equal("switch agent");
281
- // expect(savedMessage.sender).to.equal("question");
282
-
283
- // create(name, url, projectid, user_id, type)
284
- faqService.create("testbot", null, savedProject._id, savedUser._id, "internal").then(function(savedBot) {
285
-
286
- var newFaq = new Faq({
287
- id_faq_kb: savedBot._id,
288
- question: 'switch agent',
289
- answer: '\\agent',
290
- id_project: savedProject._id,
291
- createdBy: savedUser._id,
292
- updatedBy: savedUser._id
293
- });
294
-
295
- newFaq.save(function (err, savedFaq) {
296
-
297
-
298
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
299
- console.log('000');
300
- chai.request(server)
301
- .post('/'+ savedProject._id + '/subscriptions')
302
- .auth(email, pwd)
303
- .set('content-type', 'application/json')
304
- .send({"event":"request.update", "target":"http://localhost:3021/"})
305
- .end((err, res) => {
306
- console.log("res.body", JSON.stringify(res.body));
307
- // console.dir("res.body 1", res.body);
308
- console.log("res.headers", res.headers);
309
- res.should.have.status(200);
310
- res.body.should.be.a('object');
311
- expect(res.body.event).to.equal("request.update");
312
- var secret = res.body.secret;
313
- expect(secret).to.not.equal(null);
314
- expect(res.headers["x-hook-secret"]).to.equal(secret);
315
- console.log('001');
316
-
317
-
318
- let messageReceived = 0;
319
- var serverClient = express();
320
- serverClient.use(bodyParser.json());
321
- serverClient.post('/', function (req, res) {
322
- console.log('serverClient req', JSON.stringify(req.body));
323
- console.log("serverClient.headers", JSON.stringify(req.headers));
324
- messageReceived = messageReceived+1;
325
- expect(req.body.hook.event).to.equal("request.update");
326
- console.log('11');
327
- expect(req.body.payload.request_id).to.equal("request_id-subscription-message-sending-createSimpleAgent");
328
- console.log('12');
329
- expect(req.body.payload.hasBot).equal(false);
330
- console.log('savedUser._id',savedUser._id);
331
- console.log('savedUser2._id',savedUser2._id);
332
- // expect(req.body.payload.participantsAgents[0]).equal(savedUser._id.toString());
333
- expect(req.body.payload.participantsAgents[0]).not.equal(selectedAgent);
334
-
335
- console.log('13');
336
-
337
- expect(req.headers["x-hook-secret"]).to.equal(secret);
338
- res.send('POST request to the homepage');
339
- expect(req.body.payload.first_text).to.equal("first_text");
340
-
341
- done();
342
-
343
-
344
-
345
-
346
- });
347
- var listener = serverClient.listen(3021, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
348
-
349
-
350
-
351
- requestService.createWithId("request_id-subscription-message-sending-createSimpleAgent", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
352
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "switch agent",
353
- savedProject._id, savedUser._id).then(function(savedMessage){
354
- expect(savedMessage.text).to.equal("switch agent");
355
-
356
- // expect(savedMessage.sender).to.equal("question");
357
- });
358
- });
359
- });
360
- });
361
- });
362
- });
363
- });
364
- });
365
- });
366
- });
367
- });
368
- });
369
- });
370
- }).timeout(20000);
371
-
372
-
373
-
374
-
375
- // mocha test-int/bot.js --grep 'createSimpleFulltext'
376
- it('createSimpleFulltext', (done) => {
377
-
378
- var email = "test-bot-" + Date.now() + "@email.com";
379
- var pwd = "pwd";
380
-
381
-
382
-
383
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
384
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
385
- // create(name, url, projectid, user_id, type)
386
- faqService.create("testbot", null, savedProject._id, savedUser._id, "internal").then(function(savedBot) {
387
-
388
- var newFaq = new Faq({
389
- id_faq_kb: savedBot._id,
390
- question: 'question number one',
391
- answer: 'answer',
392
- id_project: savedProject._id,
393
- createdBy: savedUser._id,
394
- updatedBy: savedUser._id
395
- });
396
-
397
- newFaq.save(function (err, savedFaq) {
398
-
399
-
400
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
401
-
402
- chai.request(server)
403
- .post('/'+ savedProject._id + '/subscriptions')
404
- .auth(email, pwd)
405
- .set('content-type', 'application/json')
406
- .send({"event":"message.create", "target":"http://localhost:3010/"})
407
- .end((err, res) => {
408
- console.log("res.body", JSON.stringify(res.body));
409
- // console.dir("res.body 1", res.body);
410
- console.log("res.headers", res.headers);
411
- res.should.have.status(200);
412
- res.body.should.be.a('object');
413
- expect(res.body.event).to.equal("message.create");
414
- var secret = res.body.secret;
415
- expect(secret).to.not.equal(null);
416
- expect(res.headers["x-hook-secret"]).to.equal(secret);
417
-
418
-
419
- let messageReceived = 0;
420
- var serverClient = express();
421
- serverClient.use(bodyParser.json());
422
- serverClient.post('/', function (req, res) {
423
- console.log('serverClient req', JSON.stringify(req.body));
424
- console.log("serverClient.headers", JSON.stringify(req.headers));
425
- messageReceived = messageReceived+1;
426
- expect(req.body.hook.event).to.equal("message.create");
427
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-sending");
428
- expect(req.body.payload.request.department).to.not.equal(null);
429
- expect(req.body.payload.request.department.bot).to.not.equal(null);
430
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
431
-
432
- expect(req.headers["x-hook-secret"]).to.equal(secret);
433
- res.send('POST request to the homepage');
434
- expect(req.body.payload.text).to.equal("answer");
435
- // console.log("savedFaq",savedFaq);
436
- expect(req.body.payload.sender).to.equal("bot_"+savedBot.id);
437
- expect(req.body.payload.recipient).to.equal("request_id-subscription-message-sending");
438
- // expect(req.body.payload.attributes._answer._id.toString()).to.equal(savedFaq._id.toString());
439
- expect(req.body.payload.attributes._answerid.toString()).to.equal(savedFaq._id.toString());
440
- done();
441
-
442
-
443
-
444
-
445
- });
446
- var listener = serverClient.listen(3010, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
447
-
448
-
449
- leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
450
- requestService.createWithId("request_id-subscription-message-sending", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
451
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
452
- savedProject._id, savedUser._id).then(function(savedMessage){
453
- expect(savedMessage.text).to.equal("question");
454
- // expect(savedMessage.sender).to.equal("question");
455
- });
456
- });
457
- });
458
- });
459
- });
460
- });
461
- });
462
-
463
- });
464
- });
465
- }).timeout(20000);
466
-
467
-
468
-
469
- // mocha test-int/bot.js --grep 'createNotFoundDefaultFallback'
470
-
471
- it('createNotFoundDefaultFallback', (done) => {
472
-
473
- var email = "test-bot-" + Date.now() + "@email.com";
474
- var pwd = "pwd";
475
-
476
-
477
-
478
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
479
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
480
- // create(name, url, projectid, user_id, type)
481
- faqService.create("testbot", null, savedProject._id, savedUser._id, "internal").then(function(savedBot) {
482
-
483
- var newFaq = new Faq({
484
- id_faq_kb: savedBot._id,
485
- question: 'question',
486
- answer: 'answer',
487
- id_project: savedProject._id,
488
- createdBy: savedUser._id,
489
- updatedBy: savedUser._id
490
- });
491
-
492
- newFaq.save(function (err, savedFaq) {
493
-
494
-
495
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
496
-
497
- chai.request(server)
498
- .post('/'+ savedProject._id + '/subscriptions')
499
- .auth(email, pwd)
500
- .set('content-type', 'application/json')
501
- .send({"event":"message.create", "target":"http://localhost:3008/"})
502
- .end((err, res) => {
503
- console.log("res.body", JSON.stringify(res.body));
504
- // console.dir("res.body 1", res.body);
505
- console.log("res.headers", res.headers);
506
- res.should.have.status(200);
507
- res.body.should.be.a('object');
508
- expect(res.body.event).to.equal("message.create");
509
- var secret = res.body.secret;
510
- expect(secret).to.not.equal(null);
511
- expect(res.headers["x-hook-secret"]).to.equal(secret);
512
-
513
-
514
- let messageReceived = 0;
515
- var serverClient = express();
516
- serverClient.use(bodyParser.json());
517
- serverClient.post('/', function (req, res) {
518
- console.log('serverClient req', JSON.stringify(req.body));
519
- console.log("serverClient.headers", JSON.stringify(req.headers));
520
- messageReceived = messageReceived+1;
521
-
522
- expect(req.body.hook.event).to.equal("message.create");
523
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-sending-createNotFoundDefaultFallback");
524
-
525
- expect(req.body.payload.request.department).to.not.equal(null);
526
-
527
- expect(req.body.payload.request.department.bot).to.not.equal(null);
528
-
529
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
530
-
531
- expect(req.headers["x-hook-secret"]).to.equal(secret);
532
-
533
- expect(req.body.payload.text).to.equal("I can not provide an adequate answer. Write a new question or talk to a human agent.");
534
- // 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.");
535
- expect(req.body.payload.attributes._answerid).to.not.equal(null);
536
-
537
- res.send('POST request to the homepage');
538
-
539
- done();
540
-
541
-
542
-
543
- });
544
- var listener = serverClient.listen(3008, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
545
-
546
-
547
- leadService.createIfNotExists("leadfullname-subscription-message-sending-createNotFoundDefaultFallback", "andrea.leo@-subscription-message-sending-createNotFoundDefaultFallback.it", savedProject._id).then(function(createdLead) {
548
- requestService.createWithId("request_id-subscription-message-sending-createNotFoundDefaultFallback", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
549
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "questionNOTFOUND",
550
- savedProject._id, savedUser._id).then(function(savedMessage){
551
- expect(savedMessage.text).to.equal("questionNOTFOUND");
552
- });
553
- });
554
- });
555
- });
556
- });
557
- });
558
- });
559
-
560
- });
561
- });
562
- }).timeout(20000);
563
-
564
-
565
-
566
-
567
-
568
-
569
-
570
-
571
-
572
-
573
-
574
- // mocha test-int/bot.js --grep 'createFaqWithImage'
575
-
576
- it('createFaqWithImage', (done) => {
577
-
578
- var email = "test-bot-" + Date.now() + "@email.com";
579
- var pwd = "pwd";
580
-
581
-
582
-
583
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
584
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
585
- // create(name, url, projectid, user_id, type)
586
- faqService.create("testbot", null, savedProject._id, savedUser._id, "internal").then(function(savedBot) {
587
-
588
- var newFaq = new Faq({
589
- id_faq_kb: savedBot._id,
590
- question: 'question',
591
- answer: 'answer \n\\image:https://www.tiledesk.com/wp-content/uploads/2018/03/tiledesk-logo.png',
592
- id_project: savedProject._id,
593
- createdBy: savedUser._id,
594
- updatedBy: savedUser._id
595
- });
596
-
597
- newFaq.save(function (err, savedFaq) {
598
-
599
-
600
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
601
-
602
- chai.request(server)
603
- .post('/'+ savedProject._id + '/subscriptions')
604
- .auth(email, pwd)
605
- .set('content-type', 'application/json')
606
- .send({"event":"message.create", "target":"http://localhost:3011/"})
607
- .end((err, res) => {
608
- console.log("res.body", JSON.stringify(res.body));
609
- // console.dir("res.body 1", res.body);
610
- console.log("res.headers", res.headers);
611
- res.should.have.status(200);
612
- res.body.should.be.a('object');
613
- expect(res.body.event).to.equal("message.create");
614
- var secret = res.body.secret;
615
- expect(secret).to.not.equal(null);
616
- expect(res.headers["x-hook-secret"]).to.equal(secret);
617
-
618
-
619
- let messageReceived = 0;
620
- var serverClient = express();
621
- serverClient.use(bodyParser.json());
622
- serverClient.post('/', function (req, res) {
623
- console.log('serverClient req', JSON.stringify(req.body));
624
- console.log("serverClient.headers", JSON.stringify(req.headers));
625
-
626
- if (req.body.payload.text=="question") {
627
- return res.send('POST request to the homepage');
628
- }
629
-
630
- messageReceived = messageReceived+1;
631
- expect(req.body.hook.event).to.equal("message.create");
632
- expect(req.body.payload.type).to.equal("image");
633
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithImage");
634
- expect(req.body.payload.request.department).to.not.equal(null);
635
- expect(req.body.payload.request.department.bot).to.not.equal(null);
636
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
637
-
638
- expect(req.headers["x-hook-secret"]).to.equal(secret);
639
- res.send('POST request to the homepage');
640
- expect(req.body.payload.text).to.equal("answer");
641
- expect(req.body.payload.metadata.src).to.equal("https://www.tiledesk.com/wp-content/uploads/2018/03/tiledesk-logo.png");
642
- expect(req.body.payload.metadata.width).to.equal(200);
643
- expect(req.body.payload.metadata.height).to.equal(200);
644
- expect(req.body.payload.attributes.intent_info.is_fallback).to.equal(false);
645
- expect(req.body.payload.attributes.intent_info.question_payload.text).to.equal("question");
646
- expect(req.body.payload.attributes._raw_message).to.equal('answer \n\\image:https://www.tiledesk.com/wp-content/uploads/2018/03/tiledesk-logo.png');
647
-
648
- done();;
649
-
650
-
651
-
652
- });
653
- var listener = serverClient.listen(3011, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
654
-
655
-
656
- leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
657
- requestService.createWithId("request_id-subscription-message-createFaqWithImage", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
658
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
659
- savedProject._id, savedUser._id).then(function(savedMessage){
660
- expect(savedMessage.text).to.equal("question");
661
- });
662
- });
663
- });
664
- });
665
- });
666
- });
667
- });
668
-
669
- });
670
- });
671
- }).timeout(20000);
672
-
673
-
674
-
675
-
676
-
677
-
678
-
679
-
680
-
681
- // mocha test-int/bot.js --grep 'createFaqWithButton'
682
-
683
- it('createFaqWithButton', (done) => {
684
-
685
- var email = "test-bot-" + Date.now() + "@email.com";
686
- var pwd = "pwd";
687
-
688
-
689
-
690
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
691
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
692
- // create(name, url, projectid, user_id, type)
693
- faqService.create("testbot", null, savedProject._id, savedUser._id, "internal").then(function(savedBot) {
694
-
695
- var newFaq = new Faq({
696
- id_faq_kb: savedBot._id,
697
- question: 'question',
698
- answer: 'answer\n* Button 1\n* Button 2',
699
- id_project: savedProject._id,
700
- createdBy: savedUser._id,
701
- updatedBy: savedUser._id
702
- });
703
-
704
- newFaq.save(function (err, savedFaq) {
705
-
706
-
707
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
708
-
709
- chai.request(server)
710
- .post('/'+ savedProject._id + '/subscriptions')
711
- .auth(email, pwd)
712
- .set('content-type', 'application/json')
713
- .send({"event":"message.create", "target":"http://localhost:3012/"})
714
- .end((err, res) => {
715
- console.log("res.body", JSON.stringify(res.body));
716
- // console.dir("res.body 1", res.body);
717
- console.log("res.headers", res.headers);
718
- res.should.have.status(200);
719
- res.body.should.be.a('object');
720
- expect(res.body.event).to.equal("message.create");
721
- var secret = res.body.secret;
722
- expect(secret).to.not.equal(null);
723
- expect(res.headers["x-hook-secret"]).to.equal(secret);
724
-
725
-
726
- let messageReceived = 0;
727
- var serverClient = express();
728
- serverClient.use(bodyParser.json());
729
- serverClient.post('/', function (req, res) {
730
- console.log('serverClient req', JSON.stringify(req.body));
731
- console.log("serverClient.headers", JSON.stringify(req.headers));
732
- messageReceived = messageReceived+1;
733
- expect(req.body.hook.event).to.equal("message.create");
734
- expect(req.body.payload.type).to.equal("text");
735
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithButton");
736
- expect(req.body.payload.request.department).to.not.equal(null);
737
- expect(req.body.payload.request.department.bot).to.not.equal(null);
738
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
739
-
740
- expect(req.headers["x-hook-secret"]).to.equal(secret);
741
- res.send('POST request to the homepage');
742
- expect(req.body.payload.text).to.equal("answer");
743
- expect(req.body.payload.attributes.attachment.buttons[0].value).to.equal("Button 1");
744
- expect(req.body.payload.attributes.attachment.buttons[0].type).to.equal("text");
745
- expect(req.body.payload.attributes.intent_info.is_fallback).to.equal(false);
746
- expect(req.body.payload.attributes.intent_info.question_payload.text).to.equal("question");
747
- expect(req.body.payload.attributes._raw_message).to.equal('answer\n* Button 1\n* Button 2');
748
- done();;
749
-
750
-
751
-
752
- });
753
- var listener = serverClient.listen(3012, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
754
-
755
-
756
- leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
757
- requestService.createWithId("request_id-subscription-message-createFaqWithButton", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
758
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
759
- savedProject._id, savedUser._id).then(function(savedMessage){
760
- expect(savedMessage.text).to.equal("question");
761
- });
762
- });
763
- });
764
- });
765
- });
766
- });
767
- });
768
-
769
- });
770
- });
771
- }).timeout(20000);
772
-
773
-
774
-
775
-
776
-
777
- // mocha test-int/bot.js --grep 'createFaqWithActionButtonFromId'
778
-
779
- it('createFaqWithActionButtonFromId', (done) => {
780
-
781
- var email = "test-bot-" + Date.now() + "@email.com";
782
- var pwd = "pwd";
783
-
784
-
785
-
786
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
787
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
788
- // create(name, url, projectid, user_id, type)
789
- faqService.create("testbot", null, savedProject._id, savedUser._id, "internal").then(function(savedBot) {
790
-
791
-
792
- var newFaq2 = new Faq({
793
- id_faq_kb: savedBot._id,
794
- question: 'question2',
795
- answer: 'answer2',
796
- id_project: savedProject._id,
797
- createdBy: savedUser._id,
798
- updatedBy: savedUser._id
799
- });
800
-
801
- newFaq2.save(function (err, savedFaq2) {
802
-
803
- var newFaq = new Faq({
804
- id_faq_kb: savedBot._id,
805
- question: 'question',
806
- answer: 'Intro\n* button1 tdAction:'+savedFaq2._id.toString(),
807
- id_project: savedProject._id,
808
- createdBy: savedUser._id,
809
- updatedBy: savedUser._id
810
- });
811
-
812
- newFaq.save(function (err, savedFaq) {
813
-
814
-
815
-
816
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
817
-
818
- chai.request(server)
819
- .post('/'+ savedProject._id + '/subscriptions')
820
- .auth(email, pwd)
821
- .set('content-type', 'application/json')
822
- .send({"event":"message.create", "target":"http://localhost:3016/"})
823
- .end((err, res) => {
824
- console.log("res.body", JSON.stringify(res.body));
825
- // console.dir("res.body 1", res.body);
826
- console.log("res.headers", res.headers);
827
- res.should.have.status(200);
828
-
829
- res.body.should.be.a('object');
830
- expect(res.body.event).to.equal("message.create");
831
- var secret = res.body.secret;
832
- expect(secret).to.not.equal(null);
833
- expect(res.headers["x-hook-secret"]).to.equal(secret);
834
-
835
-
836
- let messageReceived = 0;
837
- var serverClient = express();
838
- serverClient.use(bodyParser.json());
839
- serverClient.post('/', function (req, res) {
840
- console.log('serverClient req', JSON.stringify(req.body));
841
- console.log("serverClient.headers", JSON.stringify(req.headers));
842
-
843
- if (req.body.payload.text=="question") {
844
- return res.send('POST request to the homepage');
845
- }
846
-
847
- messageReceived = messageReceived+1;
848
- expect(req.body.hook.event).to.equal("message.create");
849
- expect(req.body.payload.type).to.equal("text");
850
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithActionButton");
851
- expect(req.body.payload.request.department).to.not.equal(null);
852
- expect(req.body.payload.request.department.bot).to.not.equal(null);
853
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
854
-
855
- expect(req.headers["x-hook-secret"]).to.equal(secret);
856
- res.send('POST request to the homepage');
857
- expect(req.body.payload.text).to.equal("answer2");
858
- expect(req.body.payload.attributes._raw_message).to.equal('answer2');
859
- expect(req.body.payload.attributes.intent_info.is_fallback).to.equal(false);
860
- expect(req.body.payload.attributes.intent_info.question_payload.text).to.equal("start action");
861
- // expect(req.body.payload.attributes.attachment.buttons[0].value).to.equal("Button 1");
862
- // expect(req.body.payload.attributes.attachment.buttons[0].type).to.equal("text");
863
-
864
- done();;
865
-
866
-
867
-
868
- });
869
- var listener = serverClient.listen(3016, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
870
-
871
-
872
- leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
873
- requestService.createWithId("request_id-subscription-message-createFaqWithActionButton", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
874
- // create(sender, senderFullname, recipient, text, id_project, createdBy, status, attributes
875
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "start action",
876
- savedProject._id, savedUser._id, undefined, {action: savedFaq2._id.toString()}).then(function(savedMessage){
877
- expect(savedMessage.text).to.equal("start action");
878
- });
879
- });
880
- });
881
- });
882
- });
883
- });
884
- });
885
- });
886
-
887
- });
888
- });
889
- }).timeout(20000);
890
-
891
-
892
-
893
-
894
-
895
- // mocha test-int/bot.js --grep 'createFaqWithActionButtonFromIntentDisplayName'
896
-
897
- it('createFaqWithActionButtonFromIntentDisplayName', (done) => {
898
-
899
- var email = "test-bot-" + Date.now() + "@email.com";
900
- var pwd = "pwd";
901
-
902
-
903
-
904
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
905
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
906
- // create(name, url, projectid, user_id, type)
907
- faqService.create("testbot", null, savedProject._id, savedUser._id, "internal").then(function(savedBot) {
908
-
909
-
910
- var newFaq2 = new Faq({
911
- id_faq_kb: savedBot._id,
912
- question: 'question2',
913
- answer: 'answer2',
914
- id_project: savedProject._id,
915
- createdBy: savedUser._id,
916
- updatedBy: savedUser._id
917
- });
918
-
919
- newFaq2.save(function (err, savedFaq2) {
920
-
921
- var newFaq = new Faq({
922
- id_faq_kb: savedBot._id,
923
- question: 'question',
924
- answer: 'Intro\n* button1 tdAction:'+savedFaq2.intent_display_name,
925
- id_project: savedProject._id,
926
- createdBy: savedUser._id,
927
- updatedBy: savedUser._id
928
- });
929
-
930
- newFaq.save(function (err, savedFaq) {
931
-
932
-
933
-
934
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
935
-
936
- chai.request(server)
937
- .post('/'+ savedProject._id + '/subscriptions')
938
- .auth(email, pwd)
939
- .set('content-type', 'application/json')
940
- .send({"event":"message.create", "target":"http://localhost:3017/"})
941
- .end((err, res) => {
942
- console.log("res.body", JSON.stringify(res.body));
943
- // console.dir("res.body 1", res.body);
944
- console.log("res.headers", res.headers);
945
- res.should.have.status(200);
946
-
947
- res.body.should.be.a('object');
948
- expect(res.body.event).to.equal("message.create");
949
- var secret = res.body.secret;
950
- expect(secret).to.not.equal(null);
951
- expect(res.headers["x-hook-secret"]).to.equal(secret);
952
-
953
-
954
- let messageReceived = 0;
955
- var serverClient = express();
956
- serverClient.use(bodyParser.json());
957
- serverClient.post('/', function (req, res) {
958
- console.log('serverClient req', JSON.stringify(req.body));
959
- console.log("serverClient.headers", JSON.stringify(req.headers));
960
-
961
- if (req.body.payload.text=="question") {
962
- return res.send('POST request to the homepage');
963
- }
964
-
965
- messageReceived = messageReceived+1;
966
- expect(req.body.hook.event).to.equal("message.create");
967
- expect(req.body.payload.type).to.equal("text");
968
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithActionButton");
969
- expect(req.body.payload.request.department).to.not.equal(null);
970
- expect(req.body.payload.request.department.bot).to.not.equal(null);
971
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
972
-
973
- expect(req.headers["x-hook-secret"]).to.equal(secret);
974
- res.send('POST request to the homepage');
975
- expect(req.body.payload.text).to.equal("answer2");
976
- expect(req.body.payload.attributes._raw_message).to.equal('answer2');
977
- expect(req.body.payload.attributes.intent_info.is_fallback).to.equal(false);
978
- expect(req.body.payload.attributes.intent_info.question_payload.text).to.equal("start action");
979
- // expect(req.body.payload.attributes.attachment.buttons[0].value).to.equal("Button 1");
980
- // expect(req.body.payload.attributes.attachment.buttons[0].type).to.equal("text");
981
-
982
- done();;
983
-
984
-
985
-
986
- });
987
- var listener = serverClient.listen(3017, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
988
-
989
-
990
- leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
991
- requestService.createWithId("request_id-subscription-message-createFaqWithActionButton", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
992
- // create(sender, senderFullname, recipient, text, id_project, createdBy, status, attributes
993
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "start action",
994
- savedProject._id, savedUser._id, undefined, {action: savedFaq2._id.toString()}).then(function(savedMessage){
995
- expect(savedMessage.text).to.equal("start action");
996
- });
997
- });
998
- });
999
- });
1000
- });
1001
- });
1002
- });
1003
- });
1004
-
1005
- });
1006
- });
1007
- }).timeout(20000);
1008
-
1009
-
1010
-
1011
-
1012
-
1013
-
1014
- // // mocha test-int/bot.js --grep 'createFaqWithFrame'
1015
-
1016
- // it('createFaqWithFrame', (done) => {
1017
-
1018
- // var email = "test-bot-" + Date.now() + "@email.com";
1019
- // var pwd = "pwd";
1020
-
1021
-
1022
-
1023
- // userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
1024
- // projectService.create("test-bot", savedUser._id).then(function(savedProject) {
1025
- // // create(name, url, projectid, user_id, type)
1026
- // faqService.create("testbot", null, savedProject._id, savedUser._id, "internal").then(function(savedBot) {
1027
-
1028
- // var newFaq = new Faq({
1029
- // id_faq_kb: savedBot._id,
1030
- // question: 'question',
1031
- // answer: 'answer frame\\frame:http://localhost:3013/',
1032
- // id_project: savedProject._id,
1033
- // createdBy: savedUser._id,
1034
- // updatedBy: savedUser._id
1035
- // });
1036
-
1037
- // newFaq.save(function (err, savedFaq) {
1038
-
1039
-
1040
- // Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
1041
-
1042
- // chai.request(server)
1043
- // .post('/'+ savedProject._id + '/subscriptions')
1044
- // .auth(email, pwd)
1045
- // .set('content-type', 'application/json')
1046
- // .send({"event":"message.create", "target":"http://localhost:3013/"})
1047
- // .end((err, res) => {
1048
- // console.log("res.body", JSON.stringify(res.body));
1049
- // // console.dir("res.body 1", res.body);
1050
- // console.log("res.headers", res.headers);
1051
- // res.should.have.status(200);
1052
- // res.body.should.be.a('object');
1053
- // expect(res.body.event).to.equal("message.create");
1054
- // var secret = res.body.secret;
1055
- // expect(secret).to.not.equal(null);
1056
- // expect(res.headers["x-hook-secret"]).to.equal(secret);
1057
-
1058
-
1059
- // let messageReceived = 0;
1060
- // var serverClient = express();
1061
- // serverClient.use(bodyParser.json());
1062
- // serverClient.post('/', function (req, res) {
1063
- // console.log('serverClient req', JSON.stringify(req.body));
1064
- // console.log("serverClient.headers", JSON.stringify(req.headers));
1065
- // if (req.body.payload.text=="question") {
1066
- // return res.send('POST request to the homepage');
1067
- // }
1068
- // messageReceived = messageReceived+1;
1069
- // expect(req.body.hook.event).to.equal("message.create");
1070
- // expect(req.body.payload.type).to.equal("frame");
1071
- // expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithFrame");
1072
- // expect(req.body.payload.request.department).to.not.equal(null);
1073
- // expect(req.body.payload.request.department.bot).to.not.equal(null);
1074
- // expect(req.body.payload.request.department.bot.name).to.equal("testbot");
1075
-
1076
- // expect(req.headers["x-hook-secret"]).to.equal(secret);
1077
- // res.send('POST request to the homepage');
1078
- // expect(req.body.payload.text).to.equal("answer frame");
1079
- // // expect(req.body.payload.attributes.attachment.buttons[0].value).to.equal("Button 1");
1080
- // // expect(req.body.payload.attributes.attachment.buttons[0].type).to.equal("text");
1081
-
1082
- // done();;
1083
-
1084
-
1085
-
1086
- // });
1087
- // var listener = serverClient.listen(3013, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
1088
-
1089
-
1090
- // leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
1091
- // requestService.createWithId("request_id-subscription-message-createFaqWithFrame", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
1092
- // messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
1093
- // savedProject._id, savedUser._id).then(function(savedMessage){
1094
- // expect(savedMessage.text).to.equal("question");
1095
- // });
1096
- // });
1097
- // });
1098
- // });
1099
- // });
1100
- // });
1101
- // });
1102
-
1103
- // });
1104
- // });
1105
- // }).timeout(20000);
1106
-
1107
-
1108
-
1109
-
1110
-
1111
-
1112
-
1113
-
1114
- // mocha test-int/bot.js --grep 'createFaqWithTdFrame'
1115
-
1116
- it('createFaqWithTdFrame', (done) => {
1117
-
1118
- var email = "test-bot-" + Date.now() + "@email.com";
1119
- var pwd = "pwd";
1120
-
1121
-
1122
-
1123
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
1124
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
1125
- // create(name, url, projectid, user_id, type)
1126
- faqService.create("testbot", null, savedProject._id, savedUser._id, "internal").then(function(savedBot) {
1127
-
1128
- var newFaq = new Faq({
1129
- id_faq_kb: savedBot._id,
1130
- question: 'question',
1131
- answer: 'answer frame\ntdFrame:http://localhost:3014/',
1132
- id_project: savedProject._id,
1133
- createdBy: savedUser._id,
1134
- updatedBy: savedUser._id
1135
- });
1136
-
1137
- newFaq.save(function (err, savedFaq) {
1138
-
1139
-
1140
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
1141
-
1142
- chai.request(server)
1143
- .post('/'+ savedProject._id + '/subscriptions')
1144
- .auth(email, pwd)
1145
- .set('content-type', 'application/json')
1146
- .send({"event":"message.create", "target":"http://localhost:3014/"})
1147
- .end((err, res) => {
1148
- console.log("res.body", JSON.stringify(res.body));
1149
- // console.dir("res.body 1", res.body);
1150
- console.log("res.headers", res.headers);
1151
- res.should.have.status(200);
1152
-
1153
- res.body.should.be.a('object');
1154
- expect(res.body.event).to.equal("message.create");
1155
- var secret = res.body.secret;
1156
- expect(secret).to.not.equal(null);
1157
- expect(res.headers["x-hook-secret"]).to.equal(secret);
1158
-
1159
-
1160
- let messageReceived = 0;
1161
- var serverClient = express();
1162
- serverClient.use(bodyParser.json());
1163
- serverClient.post('/', function (req, res) {
1164
- console.log('serverClient req', JSON.stringify(req.body));
1165
- console.log("serverClient.headers", JSON.stringify(req.headers));
1166
- messageReceived = messageReceived+1;
1167
- if (req.body.payload.text=="question") {
1168
- return res.send('POST request to the homepage');
1169
- }
1170
-
1171
- expect(req.body.hook.event).to.equal("message.create");
1172
- expect(req.body.payload.type).to.equal("frame");
1173
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithTdFrame");
1174
- expect(req.body.payload.request.department).to.not.equal(null);
1175
- expect(req.body.payload.request.department.bot).to.not.equal(null);
1176
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
1177
-
1178
- expect(req.headers["x-hook-secret"]).to.equal(secret);
1179
- res.send('POST request to the homepage');
1180
- expect(req.body.payload.text).to.equal("answer frame");
1181
- // expect(req.body.payload.attributes.attachment.buttons[0].value).to.equal("Button 1");
1182
- // expect(req.body.payload.attributes.attachment.buttons[0].type).to.equal("text");
1183
-
1184
- done();;
1185
-
1186
-
1187
-
1188
- });
1189
- var listener = serverClient.listen(3014, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
1190
-
1191
-
1192
- leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
1193
- requestService.createWithId("request_id-subscription-message-createFaqWithTdFrame", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
1194
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
1195
- savedProject._id, savedUser._id).then(function(savedMessage){
1196
- expect(savedMessage.text).to.equal("question");
1197
- });
1198
- });
1199
- });
1200
- });
1201
- });
1202
- });
1203
- });
1204
-
1205
- });
1206
- });
1207
- }).timeout(20000);
1208
-
1209
-
1210
-
1211
-
1212
-
1213
-
1214
- // mocha test-int/bot.js --grep 'createFaqWithWebhookSimple'
1215
-
1216
- it('createFaqWithWebhookSimple', (done) => {
1217
-
1218
- var email = "test-bot-" + Date.now() + "@email.com";
1219
- var pwd = "pwd";
1220
-
1221
-
1222
-
1223
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
1224
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
1225
- // create(name, url, projectid, user_id, type)
1226
- faqService.create("testbot", undefined, savedProject._id, savedUser._id, "internal", undefined, "http://localhost:3019/", true).then(function(savedBot) {
1227
-
1228
- var newFaq = new Faq({
1229
- id_faq_kb: savedBot._id,
1230
- question: 'question',
1231
- answer: 'answer',
1232
- webhook_enabled: true,
1233
- id_project: savedProject._id,
1234
- createdBy: savedUser._id,
1235
- updatedBy: savedUser._id
1236
- });
1237
-
1238
- newFaq.save(function (err, savedFaq) {
1239
-
1240
-
1241
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
1242
-
1243
- chai.request(server)
1244
- .post('/'+ savedProject._id + '/subscriptions')
1245
- .auth(email, pwd)
1246
- .set('content-type', 'application/json')
1247
- .send({"event":"message.create", "target":"http://localhost:3020/"})
1248
- .end((err, res) => {
1249
- console.log("res.body", JSON.stringify(res.body));
1250
- // console.dir("res.body 1", res.body);
1251
- console.log("res.headers", res.headers);
1252
- res.should.have.status(200);
1253
- res.body.should.be.a('object');
1254
- expect(res.body.event).to.equal("message.create");
1255
- var secret = res.body.secret;
1256
- expect(secret).to.not.equal(null);
1257
- expect(res.headers["x-hook-secret"]).to.equal(secret);
1258
-
1259
-
1260
- let messageReceived = 0;
1261
- var serverClient = express();
1262
- serverClient.use(bodyParser.json());
1263
- serverClient.post('/', function (req, res) {
1264
- console.log('serverClient req', JSON.stringify(req.body));
1265
- console.log("serverClient.headers", JSON.stringify(req.headers));
1266
-
1267
- if (req.body.payload.text=="question") {
1268
- return res.send('POST request to the homepage');
1269
- }
1270
-
1271
- messageReceived = messageReceived+1;
1272
- expect(req.body.hook.event).to.equal("message.create");
1273
- expect(req.body.payload.type).to.equal("text");
1274
- console.log('1');
1275
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithButton");
1276
- expect(req.body.payload.request.department).to.not.equal(null);
1277
- expect(req.body.payload.request.department.bot).to.not.equal(null);
1278
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
1279
- console.log('2');
1280
- expect(req.headers["x-hook-secret"]).to.equal(secret);
1281
- res.send('POST request to the homepage');
1282
- console.log('3',req.body.payload.text);
1283
- expect(req.body.payload.text).to.equal("ok from webhook");
1284
- console.log('4');
1285
- expect(req.body.payload.attributes.attachment.buttons[0].value).to.equal("button1");
1286
- expect(req.body.payload.attributes.attachment.buttons[0].type).to.equal("text");
1287
-
1288
-
1289
- done();
1290
-
1291
-
1292
- });
1293
- var listener = serverClient.listen(3020, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
1294
-
1295
- var serverClient2 = express();
1296
- serverClient2.use(bodyParser.json());
1297
- serverClient2.post('/', function (req, res) {
1298
- console.log('serverClient req2', JSON.stringify(req.body));
1299
- console.log("serverClient.headers2", JSON.stringify(req.headers));
1300
- res.send({text:"ok from webhook\n* button1"});
1301
- });
1302
- var listener2 = serverClient2.listen(3019, '0.0.0.0', function(){ console.log('Node js Express started', listener2.address());});
1303
-
1304
-
1305
- leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
1306
- requestService.createWithId("request_id-subscription-message-createFaqWithButton", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
1307
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
1308
- savedProject._id, savedUser._id).then(function(savedMessage){
1309
- expect(savedMessage.text).to.equal("question");
1310
- });
1311
- });
1312
- });
1313
- });
1314
- });
1315
- });
1316
- });
1317
-
1318
- });
1319
- });
1320
- }).timeout(20000);
1321
-
1322
-
1323
-
1324
-
1325
-
1326
-
1327
-
1328
-
1329
- // mocha test-int/bot.js --grep 'createFaqWithWebhookMicrolanguageAndAttribute'
1330
-
1331
- it('createFaqWithWebhookMicrolanguageAndAttribute', (done) => {
1332
-
1333
- var email = "test-bot-" + Date.now() + "@email.com";
1334
- var pwd = "pwd";
1335
-
1336
-
1337
-
1338
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
1339
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
1340
- // create(name, url, projectid, user_id, type)
1341
- faqService.create("testbot", undefined, savedProject._id, savedUser._id, "internal", undefined, "http://localhost:3025/", true).then(function(savedBot) {
1342
-
1343
- var newFaq = new Faq({
1344
- id_faq_kb: savedBot._id,
1345
- question: 'question',
1346
- answer: 'answer',
1347
- webhook_enabled: true,
1348
- id_project: savedProject._id,
1349
- createdBy: savedUser._id,
1350
- updatedBy: savedUser._id
1351
- });
1352
-
1353
- newFaq.save(function (err, savedFaq) {
1354
-
1355
-
1356
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
1357
-
1358
- chai.request(server)
1359
- .post('/'+ savedProject._id + '/subscriptions')
1360
- .auth(email, pwd)
1361
- .set('content-type', 'application/json')
1362
- .send({"event":"message.create", "target":"http://localhost:3026/"})
1363
- .end((err, res) => {
1364
- console.log("res.body", JSON.stringify(res.body));
1365
- // console.dir("res.body 1", res.body);
1366
- console.log("res.headers", res.headers);
1367
- res.should.have.status(200);
1368
- res.body.should.be.a('object');
1369
- expect(res.body.event).to.equal("message.create");
1370
- var secret = res.body.secret;
1371
- expect(secret).to.not.equal(null);
1372
- expect(res.headers["x-hook-secret"]).to.equal(secret);
1373
-
1374
-
1375
- let messageReceived = 0;
1376
- var serverClient = express();
1377
- serverClient.use(bodyParser.json());
1378
- serverClient.post('/', function (req, res) {
1379
- console.log('serverClient req', JSON.stringify(req.body));
1380
- console.log("serverClient.headers", JSON.stringify(req.headers));
1381
-
1382
- if (req.body.payload.text=="question") {
1383
- return res.send('POST request to the homepage');
1384
- }
1385
-
1386
- messageReceived = messageReceived+1;
1387
- expect(req.body.hook.event).to.equal("message.create");
1388
- expect(req.body.payload.type).to.equal("text");
1389
- console.log('1');
1390
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithButton");
1391
- expect(req.body.payload.request.department).to.not.equal(null);
1392
- expect(req.body.payload.request.department.bot).to.not.equal(null);
1393
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
1394
- console.log('2');
1395
- expect(req.headers["x-hook-secret"]).to.equal(secret);
1396
- res.send('POST request to the homepage');
1397
- console.log('3',req.body.payload.text);
1398
- expect(req.body.payload.text).to.equal("Please, choose a team");
1399
-
1400
-
1401
- console.log('4',req.body.payload.attributes);
1402
- expect(req.body.payload.attributes.attachment.buttons[0].value).to.equal("Sales");
1403
- expect(req.body.payload.attributes.attachment.buttons[0].type).to.equal("text");
1404
-
1405
- console.log('5');
1406
- expect(req.body.payload.attributes.microlanguage).to.equal(true);
1407
-
1408
- done();
1409
-
1410
-
1411
- });
1412
- var listener = serverClient.listen(3026, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
1413
-
1414
- var serverClient2 = express();
1415
- serverClient2.use(bodyParser.json());
1416
- serverClient2.post('/', function (req, res) {
1417
- console.log('serverClient req2', JSON.stringify(req.body));
1418
- console.log("serverClient.headers2", JSON.stringify(req.headers));
1419
- res.send({text:"Please, choose a team\n* Sales\n* Support", attributes: {microlanguage1:true}});
1420
- });
1421
- var listener2 = serverClient2.listen(3025, '0.0.0.0', function(){ console.log('Node js Express started', listener2.address());});
1422
-
1423
-
1424
- leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
1425
- requestService.createWithId("request_id-subscription-message-createFaqWithButton", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
1426
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
1427
- savedProject._id, savedUser._id).then(function(savedMessage){
1428
- expect(savedMessage.text).to.equal("question");
1429
- });
1430
- });
1431
- });
1432
- });
1433
- });
1434
- });
1435
- });
1436
-
1437
- });
1438
- });
1439
- }).timeout(20000);
1440
-
1441
-
1442
-
1443
-
1444
-
1445
- // mocha test-int/bot.js --grep 'createFaqWithDefaultIntentWebhook'
1446
-
1447
- it('createFaqWithDefaultIntentWebhook', (done) => {
1448
-
1449
- var email = "test-bot-" + Date.now() + "@email.com";
1450
- var pwd = "pwd";
1451
-
1452
-
1453
-
1454
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
1455
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
1456
- // create(name, url, projectid, user_id, type)
1457
- faqService.create("testbot", undefined, savedProject._id, savedUser._id, "internal", undefined, "http://localhost:3029/", true).then(function(savedBot) {
1458
-
1459
- Faq.findOneAndUpdate({id_project:savedProject._id,id_faq_kb:savedBot._id, question: "defaultFallback" }, {webhook_enabled: true},{new: true, upsert:false}, function (err, savedFaq) {
1460
- console.log("savedFaq",savedFaq);
1461
-
1462
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
1463
-
1464
- chai.request(server)
1465
- .post('/'+ savedProject._id + '/subscriptions')
1466
- .auth(email, pwd)
1467
- .set('content-type', 'application/json')
1468
- .send({"event":"message.create", "target":"http://localhost:3022/"})
1469
- .end((err, res) => {
1470
- console.log("res.body", JSON.stringify(res.body));
1471
- // console.dir("res.body 1", res.body);
1472
- console.log("res.headers", res.headers);
1473
- res.should.have.status(200);
1474
- res.body.should.be.a('object');
1475
- expect(res.body.event).to.equal("message.create");
1476
- var secret = res.body.secret;
1477
- expect(secret).to.not.equal(null);
1478
- expect(res.headers["x-hook-secret"]).to.equal(secret);
1479
-
1480
-
1481
- let messageReceived = 0;
1482
- var serverClient = express();
1483
- serverClient.use(bodyParser.json());
1484
- serverClient.post('/', function (req, res) {
1485
- console.log('serverClient req', JSON.stringify(req.body));
1486
- console.log("serverClient.headers", JSON.stringify(req.headers));
1487
-
1488
- if (req.body.payload.text.indexOf("I can not provide an adequate answer")>-1) {
1489
- return res.send('POST request to the homepage');
1490
- }
1491
- console.log('sono qui');
1492
- messageReceived = messageReceived+1;
1493
- expect(req.body.hook.event).to.equal("message.create");
1494
- expect(req.body.payload.type).to.equal("text");
1495
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithDefaultIntentWebhook");
1496
- expect(req.body.payload.request.department).to.not.equal(null);
1497
- expect(req.body.payload.request.department.bot).to.not.equal(null);
1498
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
1499
-
1500
- expect(req.headers["x-hook-secret"]).to.equal(secret);
1501
- res.send('POST request to the homepage');
1502
- expect(req.body.payload.text).to.equal("ok from webhook");
1503
- expect(req.body.payload.attributes.attachment.buttons[0].value).to.equal("button1");
1504
- expect(req.body.payload.attributes.attachment.buttons[0].type).to.equal("text");
1505
-
1506
- expect(req.body.payload.attributes.intent_info.is_fallback).to.equal(true);
1507
- expect(req.body.payload.attributes.intent_info.question_payload.text).to.equal("notfoundword");
1508
- expect(req.body.payload.attributes._raw_message).to.equal('ok from webhook\n* button1');
1509
-
1510
-
1511
- done();
1512
-
1513
-
1514
- });
1515
- var listener = serverClient.listen(3022, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
1516
-
1517
- var serverClient2 = express();
1518
- serverClient2.use(bodyParser.json());
1519
- serverClient2.post('/', function (req, res) {
1520
- console.log('serverClient req2', JSON.stringify(req.body));
1521
- console.log("serverClient.headers2", JSON.stringify(req.headers));
1522
- res.send({text:"ok from webhook\n* button1"});
1523
- });
1524
- var listener2 = serverClient2.listen(3029, '0.0.0.0', function(){ console.log('Node js Express started', listener2.address());});
1525
-
1526
-
1527
- leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
1528
- requestService.createWithId("request_id-subscription-message-createFaqWithDefaultIntentWebhook", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
1529
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "notfoundword",
1530
- savedProject._id, savedUser._id).then(function(savedMessage){
1531
- expect(savedMessage.text).to.equal("notfoundword");
1532
- });
1533
- });
1534
- });
1535
- });
1536
- });
1537
- });
1538
- });
1539
-
1540
- });
1541
- });
1542
- }).timeout(20000);
1543
-
1544
-
1545
-
1546
-
1547
-
1548
-
1549
-
1550
- // mocha test-int/bot.js --grep 'createFaqWithDefaultIntentWebhookReturnAttributes'
1551
-
1552
- it('createFaqWithDefaultIntentWebhookReturnAttributes', (done) => {
1553
-
1554
- var email = "test-bot-" + Date.now() + "@email.com";
1555
- var pwd = "pwd";
1556
-
1557
-
1558
-
1559
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
1560
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
1561
- // create(name, url, projectid, user_id, type)
1562
- faqService.create("testbot", undefined, savedProject._id, savedUser._id, "internal", undefined, "http://localhost:3028/", true).then(function(savedBot) {
1563
-
1564
- Faq.findOneAndUpdate({id_project:savedProject._id,id_faq_kb:savedBot._id, question: "defaultFallback" }, {webhook_enabled: true},{new: true, upsert:false}, function (err, savedFaq) {
1565
- console.log("savedFaq",savedFaq);
1566
-
1567
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
1568
-
1569
- chai.request(server)
1570
- .post('/'+ savedProject._id + '/subscriptions')
1571
- .auth(email, pwd)
1572
- .set('content-type', 'application/json')
1573
- .send({"event":"message.create", "target":"http://localhost:3023/"})
1574
- .end((err, res) => {
1575
- console.log("res.body", JSON.stringify(res.body));
1576
- // console.dir("res.body 1", res.body);
1577
- console.log("res.headers", res.headers);
1578
- res.should.have.status(200);
1579
- res.body.should.be.a('object');
1580
- expect(res.body.event).to.equal("message.create");
1581
- var secret = res.body.secret;
1582
- expect(secret).to.not.equal(null);
1583
- expect(res.headers["x-hook-secret"]).to.equal(secret);
1584
-
1585
-
1586
- var serverClient = express();
1587
- serverClient.use(bodyParser.json());
1588
- serverClient.post('/', function (req, res) {
1589
- console.log('serverClient req', JSON.stringify(req.body));
1590
- console.log("serverClient.headers", JSON.stringify(req.headers));
1591
- console.log('sono qui',req.body.payload.text);
1592
- // if (req.body.payload.text.indexOf("I can not provide an adequate answer")>-1) {
1593
- // return res.send('POST request to the homepage');
1594
- // }
1595
-
1596
- expect(req.body.hook.event).to.equal("message.create");
1597
- console.log('req.body.payload',req.body.payload);
1598
- expect(req.body.payload.type).to.equal("text");
1599
- console.log('01');
1600
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithDefaultIntentWebhookReturnAttributes");
1601
- console.log('02');
1602
- expect(req.body.payload.request.department).to.not.equal(null);
1603
- console.log('03');
1604
- expect(req.body.payload.request.department.bot).to.not.equal(null);
1605
- console.log('04');
1606
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
1607
- console.log('05');
1608
- expect(req.headers["x-hook-secret"]).to.equal(secret);
1609
-
1610
- console.log('06');
1611
- res.send('POST request to the homepage');
1612
- console.log('07', req.body.payload.text);
1613
- expect(req.body.payload.text).to.equal("ok from webhook with no microlanguage but attributes");
1614
- console.log('before attributes',req.body.payload.attributes);
1615
-
1616
-
1617
- // expect(req.body.payload.channel_type).to.equal("group");
1618
- expect(req.body.payload.type).to.equal("text");
1619
- console.log('11');
1620
- // expect(req.body.payload.language).to.equal("IT");
1621
- // console.log('22');
1622
- // expect(req.body.payload.channel.name).to.equal("custom-channel");
1623
-
1624
- expect(req.body.payload.attributes.attachment.buttons[0].value).to.equal("button1");
1625
- console.log('33');
1626
- expect(req.body.payload.attributes.attachment.buttons[0].type).to.equal("text");
1627
- console.log('44');
1628
- expect(req.body.payload.attributes.intent_info.is_fallback).to.equal(true);
1629
- console.log('55');
1630
- expect(req.body.payload.attributes.intent_info.question_payload.text).to.equal("notfoundword");
1631
- console.log('66');
1632
- expect(req.body.payload.attributes._raw_message).to.equal('ok from webhook with no microlanguage but attributes');
1633
- console.log('77');
1634
-
1635
- done();
1636
-
1637
-
1638
- });
1639
- var listener = serverClient.listen(3023, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
1640
-
1641
- var serverClient2 = express();
1642
- serverClient2.use(bodyParser.json());
1643
- serverClient2.post('/', function (req, res) {
1644
- console.log('serverClient req2', JSON.stringify(req.body));
1645
- console.log("serverClient.headers2", JSON.stringify(req.headers));
1646
- res.send({text:"ok from webhook with no microlanguage but attributes", attributes: {attachment: {buttons: [{value: "button1", type:"text"}]}}});
1647
- });
1648
- var listener2 = serverClient2.listen(3028, '0.0.0.0', function(){ console.log('Node js Express started', listener2.address());});
1649
-
1650
-
1651
- leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
1652
- requestService.createWithId("request_id-subscription-message-createFaqWithDefaultIntentWebhookReturnAttributes", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
1653
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "notfoundword",
1654
- savedProject._id, savedUser._id
1655
-
1656
- ,undefined, undefined, undefined, undefined, "IT", undefined,
1657
- //{name:"custom-channel"}
1658
- )
1659
- .then(function(savedMessage){
1660
- console.log("message saved ok")
1661
- // create(sender, senderFullname, recipient, text, id_project, createdBy, status, attributes, type, metadata, language, channel_type, channel) {
1662
- // messageService.save({sender:savedUser._id, senderFullname:"test sender",recipient: savedRequest.request_id, text:"notfoundword",
1663
- // id_project:savedProject._id, createdBy: savedUser._id, status: 0, channel:{name:"custom-channel"}}).then(function(savedMessage){
1664
- expect(savedMessage.text).to.equal("notfoundword");
1665
- expect(savedMessage.language).to.equal("IT");
1666
- });
1667
- });
1668
- });
1669
- });
1670
- });
1671
- });
1672
- });
1673
-
1674
- });
1675
- });
1676
- }).timeout(20000);
1677
-
1678
-
1679
-
1680
-
1681
-
1682
- // mocha test-int/bot.js --grep 'createFaqWithDefaultIntentWebhookReturnTypeAndMetadata'
1683
-
1684
- it('createFaqWithDefaultIntentWebhookReturnTypeAndMetadata', (done) => {
1685
-
1686
- var email = "test-bot-" + Date.now() + "@email.com";
1687
- var pwd = "pwd";
1688
-
1689
-
1690
-
1691
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
1692
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
1693
- // create(name, url, projectid, user_id, type)
1694
- faqService.create("testbot", undefined, savedProject._id, savedUser._id, "internal", undefined, "http://localhost:3030/", true).then(function(savedBot) {
1695
-
1696
- Faq.findOneAndUpdate({id_project:savedProject._id,id_faq_kb:savedBot._id, question: "defaultFallback" }, {webhook_enabled: true},{new: true, upsert:false}, function (err, savedFaq) {
1697
- console.log("savedFaq",savedFaq);
1698
-
1699
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
1700
-
1701
- chai.request(server)
1702
- .post('/'+ savedProject._id + '/subscriptions')
1703
- .auth(email, pwd)
1704
- .set('content-type', 'application/json')
1705
- .send({"event":"message.create", "target":"http://localhost:3031/"})
1706
- .end((err, res) => {
1707
- console.log("res.body", JSON.stringify(res.body));
1708
- // console.dir("res.body 1", res.body);
1709
- console.log("res.headers", res.headers);
1710
- res.should.have.status(200);
1711
- res.body.should.be.a('object');
1712
- expect(res.body.event).to.equal("message.create");
1713
- var secret = res.body.secret;
1714
- expect(secret).to.not.equal(null);
1715
- expect(res.headers["x-hook-secret"]).to.equal(secret);
1716
-
1717
-
1718
- var serverClient = express();
1719
- serverClient.use(bodyParser.json());
1720
- serverClient.post('/', function (req, res) {
1721
- console.log('serverClient req', JSON.stringify(req.body));
1722
- console.log("serverClient.headers", JSON.stringify(req.headers));
1723
- console.log('sono qui',req.body.payload.text);
1724
- // if (req.body.payload.text.indexOf("I can not provide an adequate answer")>-1) {
1725
- // return res.send('POST request to the homepage');
1726
- // }
1727
-
1728
- expect(req.body.hook.event).to.equal("message.create");
1729
- console.log('req.body.payload',req.body.payload);
1730
- expect(req.body.payload.type).to.equal("image");
1731
- console.log('01');
1732
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithDefaultIntentWebhookReturnAttributes");
1733
- console.log('02');
1734
- expect(req.body.payload.request.department).to.not.equal(null);
1735
- console.log('03');
1736
- expect(req.body.payload.request.department.bot).to.not.equal(null);
1737
- console.log('04');
1738
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
1739
- console.log('05');
1740
- expect(req.headers["x-hook-secret"]).to.equal(secret);
1741
-
1742
- console.log('06');
1743
- res.send('POST request to the homepage');
1744
- console.log('07', req.body.payload.text);
1745
- expect(req.body.payload.text).to.equal("ok from webhook with no microlanguage but type and metadata");
1746
- console.log('before attributes',req.body.payload.attributes);
1747
-
1748
-
1749
- // expect(req.body.payload.channel_type).to.equal("group");
1750
- expect(req.body.payload.type).to.equal("image");
1751
- console.log('11');
1752
- // expect(req.body.payload.language).to.equal("IT");
1753
- // console.log('22');
1754
- // expect(req.body.payload.channel.name).to.equal("custom-channel");
1755
-
1756
- expect(req.body.payload.metadata.src).to.equal("http://image.jpg");
1757
- console.log('44');
1758
- expect(req.body.payload.attributes.intent_info.is_fallback).to.equal(true);
1759
- console.log('55');
1760
- expect(req.body.payload.attributes.intent_info.question_payload.text).to.equal("notfoundword");
1761
- console.log('66');
1762
- expect(req.body.payload.attributes._raw_message).to.equal('ok from webhook with no microlanguage but type and metadata');
1763
- console.log('77');
1764
-
1765
- done();
1766
-
1767
-
1768
- });
1769
- var listener = serverClient.listen(3031, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
1770
-
1771
- var serverClient2 = express();
1772
- serverClient2.use(bodyParser.json());
1773
- serverClient2.post('/', function (req, res) {
1774
- console.log('serverClient req2', JSON.stringify(req.body));
1775
- console.log("serverClient.headers2", JSON.stringify(req.headers));
1776
- res.send({text:"ok from webhook with no microlanguage but type and metadata", type: "image", metadata: {src: "http://image.jpg" }});
1777
- });
1778
- var listener2 = serverClient2.listen(3030, '0.0.0.0', function(){ console.log('Node js Express started', listener2.address());});
1779
-
1780
-
1781
- leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
1782
- requestService.createWithId("request_id-subscription-message-createFaqWithDefaultIntentWebhookReturnAttributes", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
1783
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "notfoundword",
1784
- savedProject._id, savedUser._id
1785
-
1786
- ,undefined, undefined, undefined, undefined, "IT", undefined,
1787
- //{name:"custom-channel"}
1788
- )
1789
- .then(function(savedMessage){
1790
- console.log("message saved ok")
1791
- // create(sender, senderFullname, recipient, text, id_project, createdBy, status, attributes, type, metadata, language, channel_type, channel) {
1792
- // messageService.save({sender:savedUser._id, senderFullname:"test sender",recipient: savedRequest.request_id, text:"notfoundword",
1793
- // id_project:savedProject._id, createdBy: savedUser._id, status: 0, channel:{name:"custom-channel"}}).then(function(savedMessage){
1794
- expect(savedMessage.text).to.equal("notfoundword");
1795
- expect(savedMessage.language).to.equal("IT");
1796
- });
1797
- });
1798
- });
1799
- });
1800
- });
1801
- });
1802
- });
1803
-
1804
- });
1805
- });
1806
- }).timeout(20000);
1807
-
1808
-
1809
-
1810
-
1811
-
1812
-
1813
-
1814
-
1815
-
1816
-
1817
-
1818
- // mocha test-int/bot.js --grep 'createFaqWithWebhookMicrolanguage'
1819
-
1820
- it('createFaqWithWebhookMicrolanguage', (done) => {
1821
-
1822
- var email = "test-bot-" + Date.now() + "@email.com";
1823
- var pwd = "pwd";
1824
-
1825
-
1826
-
1827
- userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
1828
- projectService.create("test-bot", savedUser._id).then(function(savedProject) {
1829
- // create(name, url, projectid, user_id, type)
1830
- faqService.create("testbot", null, savedProject._id, savedUser._id, "internal", undefined, undefined, true).then(function(savedBot) {
1831
-
1832
- var newFaq = new Faq({
1833
- id_faq_kb: savedBot._id,
1834
- question: 'question',
1835
- answer: 'answer\n\\webhook:http://localhost:3018/',
1836
- id_project: savedProject._id,
1837
- createdBy: savedUser._id,
1838
- updatedBy: savedUser._id
1839
- });
1840
-
1841
- newFaq.save(function (err, savedFaq) {
1842
-
1843
-
1844
- Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
1845
-
1846
- chai.request(server)
1847
- .post('/'+ savedProject._id + '/subscriptions')
1848
- .auth(email, pwd)
1849
- .set('content-type', 'application/json')
1850
- .send({"event":"message.create", "target":"http://localhost:3025/"})
1851
- .end((err, res) => {
1852
- console.log("res.body", JSON.stringify(res.body));
1853
- // console.dir("res.body 1", res.body);
1854
- console.log("res.headers", res.headers);
1855
- res.should.have.status(200);
1856
- res.body.should.be.a('object');
1857
- expect(res.body.event).to.equal("message.create");
1858
- var secret = res.body.secret;
1859
- expect(secret).to.not.equal(null);
1860
- expect(res.headers["x-hook-secret"]).to.equal(secret);
1861
-
1862
-
1863
- let messageReceived = 0;
1864
- var serverClient = express();
1865
- serverClient.use(bodyParser.json());
1866
- serverClient.post('/', function (req, res) {
1867
- console.log('serverClient req', JSON.stringify(req.body));
1868
- console.log("serverClient.headers", JSON.stringify(req.headers));
1869
-
1870
- if (req.body.payload.text=="question") {
1871
- return res.send('POST request to the homepage');
1872
- }
1873
-
1874
- messageReceived = messageReceived+1;
1875
- expect(req.body.hook.event).to.equal("message.create");
1876
- expect(req.body.payload.type).to.equal("text");
1877
- console.log("1")
1878
- expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithButton");
1879
- expect(req.body.payload.request.department).to.not.equal(null);
1880
- expect(req.body.payload.request.department.bot).to.not.equal(null);
1881
- expect(req.body.payload.request.department.bot.name).to.equal("testbot");
1882
- console.log("2")
1883
- expect(req.headers["x-hook-secret"]).to.equal(secret);
1884
- res.send('POST request to the homepage');
1885
- console.log("3",req.body.payload.text)
1886
- expect(req.body.payload.text).to.equal("ok from webhook");
1887
- console.log("4")
1888
- expect(req.body.payload.attributes.attachment.buttons[0].value).to.equal("button1");
1889
- expect(req.body.payload.attributes.attachment.buttons[0].type).to.equal("text");
1890
-
1891
-
1892
- done();
1893
-
1894
-
1895
- });
1896
- var listener = serverClient.listen(3025, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
1897
-
1898
- var serverClient2 = express();
1899
- serverClient2.use(bodyParser.json());
1900
- serverClient2.post('/', function (req, res) {
1901
- console.log('serverClient req2', JSON.stringify(req.body));
1902
- console.log("serverClient.headers2", JSON.stringify(req.headers));
1903
- res.send({text:"ok from webhook\n* button1"});
1904
-
1905
- });
1906
- var listener2 = serverClient2.listen(3018, '0.0.0.0', function(){ console.log('Node js Express started', listener2.address());});
1907
-
1908
-
1909
- leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
1910
- requestService.createWithId("request_id-subscription-message-createFaqWithButton", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
1911
- messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
1912
- savedProject._id, savedUser._id).then(function(savedMessage){
1913
- expect(savedMessage.text).to.equal("question");
1914
- });
1915
- });
1916
- });
1917
- });
1918
- });
1919
- });
1920
- });
1921
-
1922
- });
1923
- });
1924
- }).timeout(20000);
1925
-
1926
- // // mocha test-int/bot.js --grep 'createFaqWithTdWebhook'
1927
-
1928
- // it('createFaqWithTdWebhook', (done) => {
1929
-
1930
- // var email = "test-bot-" + Date.now() + "@email.com";
1931
- // var pwd = "pwd";
1932
-
1933
-
1934
-
1935
- // userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
1936
- // projectService.create("test-bot", savedUser._id).then(function(savedProject) {
1937
- // // create(name, url, projectid, user_id, type)
1938
- // faqService.create("testbot", null, savedProject._id, savedUser._id, "internal").then(function(savedBot) {
1939
-
1940
- // var newFaq = new Faq({
1941
- // id_faq_kb: savedBot._id,
1942
- // question: 'question',
1943
- // answer: 'answer\ntdWebhook:http://localhost:3020/',
1944
- // id_project: savedProject._id,
1945
- // createdBy: savedUser._id,
1946
- // updatedBy: savedUser._id
1947
- // });
1948
-
1949
- // newFaq.save(function (err, savedFaq) {
1950
-
1951
-
1952
- // Department.findOneAndUpdate({id_project: savedProject._id, default:true}, {id_bot:savedBot._id}, function (err, updatedDepartment) {
1953
-
1954
- // chai.request(server)
1955
- // .post('/'+ savedProject._id + '/subscriptions')
1956
- // .auth(email, pwd)
1957
- // .set('content-type', 'application/json')
1958
- // .send({"event":"message.create", "target":"http://localhost:3020/"})
1959
- // .end((err, res) => {
1960
- // console.log("res.body", JSON.stringify(res.body));
1961
- // // console.dir("res.body 1", res.body);
1962
- // console.log("res.headers", res.headers);
1963
- // res.should.have.status(200);
1964
- // res.body.should.be.a('object');
1965
- // expect(res.body.event).to.equal("message.create");
1966
- // var secret = res.body.secret;
1967
- // expect(secret).to.not.equal(null);
1968
- // expect(res.headers["x-hook-secret"]).to.equal(secret);
1969
-
1970
-
1971
- // let messageReceived = 0;
1972
- // var serverClient = express();
1973
- // serverClient.use(bodyParser.json());
1974
- // serverClient.post('/', function (req, res) {
1975
- // console.log('serverClient req', JSON.stringify(req.body));
1976
- // console.log("serverClient.headers", JSON.stringify(req.headers));
1977
-
1978
- // if (req.body.payload.text=="question") {
1979
- // return res.send('POST request to the homepage');
1980
- // }
1981
-
1982
- // messageReceived = messageReceived+1;
1983
- // expect(req.body.hook.event).to.equal("message.create");
1984
- // expect(req.body.payload.type).to.equal("text");
1985
- // expect(req.body.payload.request.request_id).to.equal("request_id-subscription-message-createFaqWithButton");
1986
- // expect(req.body.payload.request.department).to.not.equal(null);
1987
- // expect(req.body.payload.request.department.bot).to.not.equal(null);
1988
- // expect(req.body.payload.request.department.bot.name).to.equal("testbot");
1989
-
1990
- // expect(req.headers["x-hook-secret"]).to.equal(secret);
1991
- // res.send('POST request to the homepage');
1992
- // expect(req.body.payload.text).to.equal("ok from webhook");
1993
- // // expect(req.body.payload.attributes.attachment.buttons[0].value).to.equal("Button 1");
1994
- // // expect(req.body.payload.attributes.attachment.buttons[0].type).to.equal("text");
1995
-
1996
-
1997
- // done();
1998
-
1999
-
2000
- // });
2001
- // var listener = serverClient.listen(3020, '0.0.0.0', function(){ console.log('Node js Express started', listener.address());});
2002
-
2003
- // var serverClient2 = express();
2004
- // serverClient2.use(bodyParser.json());
2005
- // serverClient2.post('/', function (req, res) {
2006
- // console.log('serverClient req2', JSON.stringify(req.body));
2007
- // console.log("serverClient.headers2", JSON.stringify(req.headers));
2008
- // res.send({text:"ok from webhook"});
2009
-
2010
- // });
2011
- // var listener2 = serverClient2.listen(3019, '0.0.0.0', function(){ console.log('Node js Express started', listener2.address());});
2012
-
2013
-
2014
- // leadService.createIfNotExists("leadfullname-subscription-message-sending", "andrea.leo@-subscription-message-sending.it", savedProject._id).then(function(createdLead) {
2015
- // requestService.createWithId("request_id-subscription-message-createFaqWithButton", createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
2016
- // messageService.create(savedUser._id, "test sender", savedRequest.request_id, "question",
2017
- // savedProject._id, savedUser._id).then(function(savedMessage){
2018
- // expect(savedMessage.text).to.equal("question");
2019
- // });
2020
- // });
2021
- // });
2022
- // });
2023
- // });
2024
- // });
2025
- // });
2026
-
2027
- // });
2028
- // });
2029
- // }).timeout(20000);
2030
-
2031
-
2032
-
2033
- });
2034
- });
2035
-
2036
-
2037
-
2038
-
2039
- // 5 failing
2040
-
2041
- // 1) bot
2042
- // /messages
2043
- // createFaqWithWebhook:
2044
- // Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/Users/andrealeo/dev/chat21/tiledesk-server-dev-org/test-int/bot.js)
2045
- // at listOnTimeout (internal/timers.js:557:17)
2046
- // at processTimers (internal/timers.js:500:7)
2047
-
2048
- // 2) bot
2049
- // /messages
2050
- // createFaqWithDefaultIntentWebhook:
2051
- // Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/Users/andrealeo/dev/chat21/tiledesk-server-dev-org/test-int/bot.js)
2052
- // at listOnTimeout (internal/timers.js:557:17)
2053
- // at processTimers (internal/timers.js:500:7)
2054
-
2055
- // 3) bot
2056
- // /messages
2057
- // createFaqWithDefaultIntentWebhookReturnAttributes:
2058
- // Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/Users/andrealeo/dev/chat21/tiledesk-server-dev-org/test-int/bot.js)
2059
- // at listOnTimeout (internal/timers.js:557:17)
2060
- // at processTimers (internal/timers.js:500:7)
2061
-
2062
- // 4) bot
2063
- // /messages
2064
- // createFaqWithDefaultIntentWebhookReturnTypeAndMetadata:
2065
- // Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/Users/andrealeo/dev/chat21/tiledesk-server-dev-org/test-int/bot.js)
2066
- // at listOnTimeout (internal/timers.js:557:17)
2067
- // at processTimers (internal/timers.js:500:7)
2068
-
2069
- // 5) bot
2070
- // /messages
2071
- // createFaqWithWebhookMicrolanguage:
2072
- // Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/Users/andrealeo/dev/chat21/tiledesk-server-dev-org/test-int/bot.js)
2073
- // at listOnTimeout (internal/timers.js:557:17)
2074
- // at processTimers (internal/timers.js:500:7)