@tiledesk/tiledesk-server 2.1.40 → 2.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. package/.circleci/config.yml +54 -0
  2. package/.env.sample +1 -1
  3. package/.github/workflows/docker-community-push-latest.yml +22 -0
  4. package/.github/workflows/{docker-image-push.yml → docker-image-en-tag-push.yml} +1 -1
  5. package/.github/workflows/docker-image-tag-community-tag-push.yml +21 -0
  6. package/.github/workflows/{docker-push-latest.yml → docker-push-en-push-latest.yml} +1 -1
  7. package/CHANGELOG.md +195 -1
  8. package/Dockerfile +1 -1
  9. package/Dockerfile-en +1 -1
  10. package/README.md +5 -7
  11. package/app.js +12 -1
  12. package/channels/channelManager.js +1 -1
  13. package/channels/chat21/chat21Contact.js +34 -8
  14. package/channels/chat21/chat21Handler.js +48 -5
  15. package/channels/chat21/chat21WebHook.js +34 -9
  16. package/channels/chat21/nativeauth.js +2 -2
  17. package/channels/chat21/package-lock.json +3013 -0
  18. package/config/email.js +2 -0
  19. package/config/global.js +3 -0
  20. package/config/labels/widget.json +170 -16
  21. package/event/messageEvent.js +18 -1
  22. package/middleware/passport.js +10 -4
  23. package/migrations/1619185894304-request-remove-duplicated-request-by-request_id--autosync.js +67 -0
  24. package/models/actionsConstants.js +7 -0
  25. package/models/department.js +3 -0
  26. package/models/faq.js +8 -2
  27. package/models/faq_kb.js +6 -0
  28. package/models/message.js +10 -4
  29. package/models/messageConstants.js +9 -3
  30. package/models/request.js +33 -3
  31. package/package.json +31 -28
  32. package/pubmodules/emailNotification/requestNotification.js +483 -56
  33. package/pubmodules/messageActions/messageActionsInterceptor.js +20 -7
  34. package/pubmodules/messageTransformer/index.js +5 -1
  35. package/pubmodules/messageTransformer/messageTransformerInterceptor.js +4 -2
  36. package/pubmodules/messageTransformer/microLanguageAttributesTransformerInterceptor.js +67 -0
  37. package/pubmodules/messageTransformer/microLanguageTransformerInterceptor.js +67 -0
  38. package/pubmodules/pubModulesManager.js +66 -13
  39. package/pubmodules/rules/conciergeBot.js +81 -49
  40. package/routes/auth.js +46 -11
  41. package/routes/campaigns.js +117 -25
  42. package/routes/department.js +2 -2
  43. package/routes/faq.js +19 -0
  44. package/routes/faq_kb.js +13 -4
  45. package/routes/faqpub.js +1 -1
  46. package/routes/files.js +17 -2
  47. package/routes/images.js +1 -1
  48. package/routes/jwt.js +0 -1
  49. package/routes/logs.js +26 -0
  50. package/routes/message.js +7 -2
  51. package/routes/messagesRoot.js +73 -16
  52. package/routes/project_user.js +36 -1
  53. package/routes/request.js +88 -12
  54. package/routes/requestUtilRoot.js +30 -0
  55. package/routes/urls.js +12 -0
  56. package/routes/users.js +5 -1
  57. package/services/BotSubscriptionNotifier.js +1 -0
  58. package/services/departmentService.js +29 -5
  59. package/services/emailService.js +1170 -239
  60. package/services/faqBotHandler.js +176 -61
  61. package/services/faqBotSupport.js +182 -117
  62. package/services/faqService.js +18 -14
  63. package/services/messageService.js +57 -9
  64. package/services/modulesManager.js +86 -23
  65. package/services/requestService.js +58 -17
  66. package/template/email/assignedEmailMessage.html +205 -0
  67. package/template/email/assignedRequest.html +44 -14
  68. package/template/email/beenInvitedExistingUser.html +2 -2
  69. package/template/email/beenInvitedNewUser.html +1 -1
  70. package/template/email/newMessage.html +31 -12
  71. package/template/email/passwordChanged.html +2 -3
  72. package/template/email/pooledEmailMessage.html +208 -0
  73. package/template/email/pooledRequest.html +41 -14
  74. package/template/email/resetPassword.html +2 -3
  75. package/template/email/sendTranscript.html +1 -1
  76. package/template/email/test.html +1 -1
  77. package/template/email/ticket.html +191 -0
  78. package/template/email/ticket.txt +11 -0
  79. package/template/email/verify.html +1 -1
  80. package/test/authentication.js +76 -4
  81. package/test/authenticationJwt.js +76 -2
  82. package/test/campaignsRoute.js +226 -0
  83. package/test/faqService.js +3 -3
  84. package/test/faqkbRoute.js +3 -2
  85. package/test/messageRootRoute.js +193 -0
  86. package/test/messageRoute.js +75 -0
  87. package/test/messageService.js +39 -2
  88. package/test/requestRoute.js +27 -9
  89. package/test/requestService.js +472 -11
  90. package/test-int/bot.js +673 -8
  91. package/websocket/webSocketServer.js +7 -4
@@ -37,13 +37,14 @@ describe('FaqKBRoute', () => {
37
37
  chai.request(server)
38
38
  .post('/'+ savedProject._id + '/faq_kb')
39
39
  .auth(email, pwd)
40
- .send({"name":"testbot", type: "external"})
40
+ .send({"name":"testbot", type: "external", language: 'fr'})
41
41
  .end((err, res) => {
42
42
  //console.log("res", res);
43
43
  console.log("res.body", res.body);
44
44
  res.should.have.status(200);
45
45
  res.body.should.be.a('object');
46
- expect(res.body.name).to.equal("testbot");
46
+ expect(res.body.name).to.equal("testbot");
47
+ expect(res.body.language).to.equal("fr");
47
48
 
48
49
  done();
49
50
  });
@@ -0,0 +1,193 @@
1
+ //During the test the env variable is set to test
2
+ process.env.NODE_ENV = 'test';
3
+
4
+ var User = require('../models/user');
5
+ var projectService = require('../services/projectService');
6
+ var requestService = require('../services/requestService');
7
+ var userService = require('../services/userService');
8
+ var leadService = require('../services/leadService');
9
+ var messageService = require('../services/messageService');
10
+ var Project_user = require("../models/project_user");
11
+ var roleConstants = require('../models/roleConstants');
12
+ const uuidv4 = require('uuid/v4');
13
+
14
+ //Require the dev-dependencies
15
+ let chai = require('chai');
16
+ let chaiHttp = require('chai-http');
17
+ let server = require('../app');
18
+ let should = chai.should();
19
+ var winston = require('../config/winston');
20
+ var jwt = require('jsonwebtoken');
21
+ // chai.config.includeStack = true;
22
+
23
+ var expect = chai.expect;
24
+ var assert = chai.assert;
25
+
26
+ chai.use(chaiHttp);
27
+
28
+ describe('MessageRoute', () => {
29
+
30
+
31
+ // mocha test/messageRootRoute.js --grep 'createSimple'
32
+
33
+ it('createSimple', function (done) {
34
+ // this.timeout(10000);
35
+
36
+ var email = "test-message-create-" + Date.now() + "@email.com";
37
+ var pwd = "pwd";
38
+
39
+ userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
40
+
41
+ var email2 = "test-message-create-" + Date.now() + "@email.com";
42
+ userService.signup( email2 ,pwd, "Test Firstname2", "Test lastname2").then(function(savedUser2) {
43
+
44
+ projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function(savedProjectAndPU) {
45
+
46
+ var savedProject = savedProjectAndPU.project;
47
+
48
+ chai.request(server)
49
+ .post('/'+ savedProject._id + '/messages')
50
+ .auth(email, pwd)
51
+ .set('content-type', 'application/json')
52
+ .send({"recipient":savedUser2._id.toString(), "recipientFullname": "Dest", "text":"text"})
53
+ .end(function(err, res) {
54
+ //console.log("res", res);
55
+ console.log("res.body", res.body);
56
+ res.should.have.status(200);
57
+ res.body.should.be.a('object');
58
+
59
+ expect(res.body.sender).to.equal(savedUser._id.toString());
60
+ expect(res.body.senderFullname).to.equal("Test Firstname Test lastname");
61
+ expect(res.body.recipient).to.equal(savedUser2._id.toString());
62
+ expect(res.body.type).to.equal("text");
63
+ expect(res.body.text).to.equal("text");
64
+ expect(res.body.id_project).to.equal(savedProject._id.toString());
65
+ expect(res.body.createdBy).to.equal(savedUser._id.toString());
66
+ expect(res.body.status).to.equal(0);
67
+ expect(res.body.request).to.equal(undefined);
68
+ expect(res.body.channel_type).to.equal("direct");
69
+ expect(res.body.channel.name).to.equal("chat21");
70
+
71
+
72
+ done();
73
+ });
74
+ });
75
+ });
76
+ });
77
+ });
78
+
79
+
80
+
81
+
82
+
83
+ // mocha test/messageRootRoute.js --grep 'createValidationNoRecipient'
84
+ it('createValidationNoRecipient', function (done) {
85
+ // this.timeout(10000);
86
+
87
+ var email = "test-message-create-" + Date.now() + "@email.com";
88
+ var pwd = "pwd";
89
+
90
+ userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
91
+ projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function(savedProjectAndPU) {
92
+
93
+ var savedProject = savedProjectAndPU.project;
94
+
95
+ chai.request(server)
96
+ .post('/'+ savedProject._id + '/messages')
97
+ .auth(email, pwd)
98
+ .set('content-type', 'application/json')
99
+ .send({"text":"text"})
100
+ .end(function(err, res) {
101
+ //console.log("res", res);
102
+ console.log("res.body", res.body);
103
+ res.should.have.status(422);
104
+ res.body.should.be.a('object');
105
+
106
+ done();
107
+ });
108
+ });
109
+ });
110
+ });
111
+
112
+
113
+
114
+
115
+ // mocha test/messageRootRoute.js --grep 'createValidationNoText'
116
+ it('createValidationNoText', function (done) {
117
+ // this.timeout(10000);
118
+
119
+ var email = "test-message-create-" + Date.now() + "@email.com";
120
+ var pwd = "pwd";
121
+
122
+ userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
123
+ projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function(savedProjectAndPU) {
124
+
125
+ var savedProject = savedProjectAndPU.project;
126
+
127
+ chai.request(server)
128
+ .post('/'+ savedProject._id + '/messages')
129
+ .auth(email, pwd)
130
+ .set('content-type', 'application/json')
131
+ .send({"recipient":"5ddd30bff0195f0017f72c6d", "recipientFullname": "Dest"})
132
+ .end(function(err, res) {
133
+ //console.log("res", res);
134
+ console.log("res.body", res.body);
135
+ res.should.have.status(422);
136
+ res.body.should.be.a('object');
137
+
138
+ done();
139
+ });
140
+ });
141
+ });
142
+ });
143
+
144
+
145
+
146
+
147
+ // mocha test/messageRootRoute.js --grep 'createWithSenderFullName'
148
+
149
+ it('createWithSenderFullName', function (done) {
150
+ // this.timeout(10000);
151
+
152
+ var email = "test-message-create-" + Date.now() + "@email.com";
153
+ var pwd = "pwd";
154
+
155
+ userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
156
+ projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function(savedProjectAndPU) {
157
+
158
+ var savedProject = savedProjectAndPU.project;
159
+
160
+ chai.request(server)
161
+ .post('/'+ savedProject._id + '/messages')
162
+ .auth(email, pwd)
163
+ .set('content-type', 'application/json')
164
+ .send({"senderFullname":"Pippo","recipient":"5ddd30bff0195f0017f72c6d", "recipientFullname": "Dest", "text":"text"})
165
+ .end(function(err, res) {
166
+ //console.log("res", res);
167
+ console.log("res.body", res.body);
168
+ res.should.have.status(200);
169
+ res.body.should.be.a('object');
170
+
171
+ expect(res.body.sender).to.equal(savedUser._id.toString());
172
+ expect(res.body.senderFullname).to.equal("Pippo");
173
+ expect(res.body.recipient).to.equal("5ddd30bff0195f0017f72c6d");
174
+ expect(res.body.type).to.equal("text");
175
+ expect(res.body.text).to.equal("text");
176
+ expect(res.body.id_project).to.equal(savedProject._id.toString());
177
+ expect(res.body.createdBy).to.equal(savedUser._id.toString());
178
+ expect(res.body.status).to.equal(0);
179
+ expect(res.body.request).to.equal(undefined);
180
+ expect(res.body.channel_type).to.equal("direct");
181
+ expect(res.body.channel.name).to.equal("chat21");
182
+
183
+
184
+ done();
185
+ });
186
+ });
187
+ });
188
+ });
189
+
190
+
191
+ });
192
+
193
+
@@ -588,6 +588,79 @@ it('createWithParticipants', function (done) {
588
588
  });
589
589
 
590
590
 
591
+
592
+
593
+
594
+ // mocha test/messageRoute.js --grep 'createWithPriority'
595
+
596
+ it('createWithPriority', function (done) {
597
+ // this.timeout(10000);
598
+
599
+ var email = "test-message-create-" + Date.now() + "@email.com";
600
+ var pwd = "pwd";
601
+
602
+ userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
603
+ projectService.createAndReturnProjectAndProjectUser("message-createWithPriority", savedUser._id).then(function(savedProjectAndPU) {
604
+
605
+ var savedProject = savedProjectAndPU.project;
606
+
607
+ var reqid = 'req123-createWithPriority' + Date.now();
608
+
609
+ chai.request(server)
610
+ .post('/'+ savedProject._id + '/requests/'+reqid +'/messages')
611
+ .auth(email, pwd)
612
+ .set('content-type', 'application/json')
613
+ .send({"text":"text", "priority": "hight"})
614
+ .end(function(err, res) {
615
+ //console.log("res", res);
616
+ console.log("res.body", res.body);
617
+ res.should.have.status(200);
618
+ res.body.should.be.a('object');
619
+
620
+ expect(res.body.sender).to.equal(savedUser._id.toString());
621
+ // expect(res.body.sender).to.equal(savedProjectAndPU.project_user._id.toString());
622
+ // expect(res.body.senderFullname).to.equal("senderFullname");
623
+ expect(res.body.recipient).to.equal(reqid);
624
+ expect(res.body.text).to.equal("text");
625
+ expect(res.body.id_project).to.equal(savedProject._id.toString());
626
+ expect(res.body.createdBy).to.equal(savedUser._id.toString());
627
+ expect(res.body.status).to.equal(0);
628
+
629
+ expect(res.body.request.request_id).to.equal(reqid);
630
+ expect(res.body.request.requester._id).to.equal(savedProjectAndPU.project_user._id.toString());
631
+ // expect(res.body.request.requester_id).to.equal("sender");
632
+ expect(res.body.request.first_text).to.equal("text");
633
+ expect(res.body.request.id_project).to.equal(savedProject._id.toString());
634
+ expect(res.body.request.createdBy).to.equal(savedUser._id.toString());
635
+
636
+ // expect(res.body.request.messages_count).to.equal(1);
637
+
638
+ expect(res.body.request.status).to.equal(200);
639
+ expect(res.body.request.snapshot.agents.length).to.equal(1);
640
+ expect(res.body.request.participants.length).to.equal(1);
641
+ expect(res.body.request.department).to.not.equal(null);
642
+ expect(res.body.request.lead).to.not.equal(null);
643
+ expect(res.body.request.priority).to.equal("hight");
644
+
645
+
646
+ expect(res.body.channel_type).to.equal("group");
647
+ expect(res.body.channel.name).to.equal("chat21");
648
+ expect(res.body.request.channel.name).to.equal("chat21");
649
+
650
+
651
+ expect(res.body.request.location).to.equal(undefined);
652
+
653
+
654
+ done();
655
+ });
656
+ });
657
+ });
658
+ });
659
+
660
+
661
+
662
+
663
+
591
664
  it('getall', function (done) {
592
665
  // this.timeout(10000);
593
666
 
@@ -662,6 +735,7 @@ it('getall', function (done) {
662
735
 
663
736
  describe('/SendMessageSigninWithCustomToken', () => {
664
737
 
738
+ // mocha test/messageRoute.js --grep 'sendMessageSigninWithCustomTokenOk'
665
739
 
666
740
  it('sendMessageSigninWithCustomTokenOk', (done) => {
667
741
 
@@ -784,6 +858,7 @@ describe('/SendMessageSigninWithCustomToken', () => {
784
858
 
785
859
 
786
860
 
861
+ // mocha test/messageRoute.js --grep 'sendMessageSigninAnonym'
787
862
 
788
863
 
789
864
 
@@ -100,8 +100,8 @@ describe('messageService', function () {
100
100
 
101
101
 
102
102
 
103
-
104
- it('createMessageMultiLanguage', function (done) {
103
+ // mocha test/messageService.js --grep 'createMessageMultiLanguageSimple'
104
+ it('createMessageMultiLanguageSimple', function (done) {
105
105
  // this.timeout(10000);
106
106
 
107
107
 
@@ -198,6 +198,43 @@ describe('messageService', function () {
198
198
  });
199
199
 
200
200
 
201
+
202
+
203
+
204
+
205
+
206
+ // mocha test/messageService.js --grep 'createMessageMicroLanguageWithAttribute'
207
+
208
+ it('createMessageMicroLanguageWithAttribute', function (done) {
209
+ // this.timeout(10000);
210
+
211
+
212
+ var microLanguageTransformerInterceptor = require('../pubmodules/messageTransformer/microLanguageTransformerInterceptor');
213
+ console.log("microLanguageTransformerInterceptor",microLanguageTransformerInterceptor);
214
+ microLanguageTransformerInterceptor.listen();
215
+
216
+
217
+
218
+ projectService.create("test1", userid).then(function(savedProject) {
219
+ // create(sender, senderFullname, recipient, text, id_project, createdBy, status, attributes, type, metadata) {
220
+ messageService.create("bot_"+userid, "test sender", "testrecipient-createMessageMicroLanguageWithAttribute", "ciao\n* Button1",
221
+ savedProject._id, userid, undefined, {microlanguage:true}).then(function(savedMessage){
222
+ winston.debug("resolve savedMessage", savedMessage.toObject());
223
+
224
+ expect(savedMessage.text).to.equal("ciao");
225
+ expect(savedMessage.type).to.equal("text");
226
+ expect(savedMessage.attributes._raw_message).to.equal("ciao\n* Button1","attachment");
227
+ expect(savedMessage.attributes.attachment.type).to.equal("template");
228
+ expect(savedMessage.attributes.attachment.buttons[0].value).to.equal("Button1");
229
+ expect(savedMessage.sender).to.equal("bot_"+userid);
230
+ expect(savedMessage.senderFullname).to.equal("test sender");
231
+ expect(savedMessage.recipient).to.equal("testrecipient-createMessageMicroLanguageWithAttribute");
232
+ done();
233
+
234
+ })
235
+ });
236
+ });
237
+
201
238
 
202
239
 
203
240
  });
@@ -31,14 +31,16 @@ describe('RequestRoute', () => {
31
31
 
32
32
 
33
33
 
34
- it('create', function (done) {
34
+ // mocha test/requestRoute.js --grep 'createSimple'
35
+
36
+ it('createSimple', function (done) {
35
37
  // this.timeout(10000);
36
38
 
37
39
  var email = "test-request-create-" + Date.now() + "@email.com";
38
40
  var pwd = "pwd";
39
41
 
40
42
  userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
41
- projectService.create("request-create", savedUser._id).then(function(savedProject) {
43
+ projectService.create("request-create", savedUser._id, {email: { template: {assignedRequest: "123"}} }).then(function(savedProject) {
42
44
 
43
45
 
44
46
  chai.request(server)
@@ -139,7 +141,7 @@ it('createUpperCaseEmail', function (done) {
139
141
 
140
142
 
141
143
 
142
-
144
+ // mocha test/requestRoute.js --grep 'getbyid'
143
145
  it('getbyid', function (done) {
144
146
  // this.timeout(10000);
145
147
 
@@ -186,6 +188,9 @@ it('createUpperCaseEmail', function (done) {
186
188
 
187
189
  expect(res.body.requester._id).to.not.equal(savedProjectAndPU.project_user._id);
188
190
  expect(res.body.requester.isAuthenticated).to.equal(true);
191
+
192
+ expect(res.body.snapshot.agents).to.equal(undefined);
193
+
189
194
  done();
190
195
  });
191
196
  // .catch(function(err) {
@@ -254,7 +259,7 @@ it('getbyidWithPartecipatingBots', function (done) {
254
259
  expect(res.body.participantsBots).to.have.lengthOf(1);
255
260
  expect(res.body.hasBot).to.equal(true);
256
261
 
257
-
262
+ expect(res.body.snapshot.agents).to.equal(undefined);
258
263
  expect(res.body.department.hasBot).to.equal(true);
259
264
 
260
265
  done();
@@ -339,6 +344,8 @@ it('getbyidWithPartecipatingBots', function (done) {
339
344
  expect(res.body.requests[0].snapshot.availableAgentsCount).to.equal(1);
340
345
  expect(res.body.requests[0].snapshot.lead.fullname).to.equal("leadfullname");
341
346
  expect(res.body.requests[0].snapshot.requester.role).to.equal("owner");
347
+ expect(res.body.requests[0].snapshot.agents).to.equal(undefined);
348
+
342
349
  // expect(res.body.requests[0].participatingAgents.length).to.equal(1);
343
350
  // expect(res.body.requests[0].participatingBots.length).to.equal(0);
344
351
  done();
@@ -410,6 +417,7 @@ it('getallNoPopulate', function (done) {
410
417
 
411
418
  expect(res.body.requests[0].snapshot).to.not.equal(undefined);
412
419
  expect(res.body.requests[0].snapshot.department.name).to.not.equal(null);
420
+ expect(res.body.requests[0].snapshot.agents).to.equal(undefined);
413
421
  // expect(res.body.requests[0].snapshot.agents.length).to.equal(1);
414
422
  // expect(res.body.requests[0].test).to.not.equal(undefined);
415
423
  // expect(res.body.requests[0].participatingAgents.length).to.equal(1);
@@ -498,6 +506,7 @@ it('getallFilter-snap_department_routing', function (done) {
498
506
  expect(res.body.requests[0].snapshot.availableAgentsCount).to.equal(1);
499
507
  expect(res.body.requests[0].snapshot.lead.fullname).to.equal("leadfullname");
500
508
  expect(res.body.requests[0].snapshot.requester.role).to.equal("owner");
509
+ expect(res.body.requests[0].snapshot.agents).to.equal(undefined);
501
510
  // expect(res.body.requests[0].participatingAgents.length).to.equal(1);
502
511
  // expect(res.body.requests[0].participatingBots.length).to.equal(0);
503
512
  done();
@@ -582,6 +591,7 @@ it('getallFilter-snap_department_default', function (done) {
582
591
  expect(res.body.requests[0].snapshot.availableAgentsCount).to.equal(1);
583
592
  expect(res.body.requests[0].snapshot.lead.fullname).to.equal("leadfullname");
584
593
  expect(res.body.requests[0].snapshot.requester.role).to.equal("owner");
594
+ expect(res.body.requests[0].snapshot.agents).to.equal(undefined);
585
595
  // expect(res.body.requests[0].participatingAgents.length).to.equal(1);
586
596
  // expect(res.body.requests[0].participatingBots.length).to.equal(0);
587
597
  done();
@@ -666,6 +676,8 @@ it('getallFilter-snap_department_id_bot_exists', function (done) {
666
676
  expect(res.body.requests[0].snapshot.availableAgentsCount).to.equal(1);
667
677
  expect(res.body.requests[0].snapshot.lead.fullname).to.equal("leadfullname");
668
678
  expect(res.body.requests[0].snapshot.requester.role).to.equal("owner");
679
+
680
+ expect(res.body.requests[0].snapshot.agents).to.equal(undefined);
669
681
  // expect(res.body.requests[0].participatingAgents.length).to.equal(1);
670
682
  // expect(res.body.requests[0].participatingBots.length).to.equal(0);
671
683
  done();
@@ -698,7 +710,8 @@ it('getallcsv', function (done) {
698
710
  winston.info("createdLead", createdLead.toObject());
699
711
  // createWithIdAndRequester(request_id, project_user_id, lead_id, id_project, first_text, departmentid, sourcePage, language, userAgent, status, createdBy, attributes, subject, preflight, channel, location) {
700
712
 
701
- requestService.createWithIdAndRequester("request_id1", savedProjectAndPU.project_user._id, createdLead._id, savedProject._id, "first_text").then(function(savedRequest) {
713
+ requestService.create({request_id: "request_id1", project_user_id: savedProjectAndPU.project_user._id, lead_id: createdLead._id, id_project: savedProject._id,
714
+ first_text: "first_text", tags: [{tag: "tag1"},{tag: "tag2"}]}).then(function(savedRequest) {
702
715
  winston.info("resolve", savedRequest.toObject());
703
716
 
704
717
 
@@ -707,7 +720,8 @@ it('getallcsv', function (done) {
707
720
  .auth(email, pwd)
708
721
  .end(function(err, res) {
709
722
  //console.log("res", res);
710
- // console.log("res.body", res.body);
723
+ console.log("res.text", res.text);
724
+ // console.log("res", res);
711
725
  res.should.have.status(200);
712
726
  res.body.should.be.a('object');
713
727
 
@@ -760,6 +774,8 @@ it('getallWithLoLead', function (done) {
760
774
  res.body.should.be.a('object');
761
775
  expect(res.body.requests[0].department).to.not.equal(null);
762
776
  expect(res.body.requests[0].lead).to.not.equal(null);
777
+
778
+ expect(res.body.requests[0].snapshot.agents).to.equal(undefined);
763
779
 
764
780
  done();
765
781
  });
@@ -842,7 +858,8 @@ it('getallWithLoLead', function (done) {
842
858
  expect(res.body.participantsBots.length).to.equal(0);
843
859
 
844
860
 
845
-
861
+ // expect(res.body.snapshot.agents).to.equal(undefined);
862
+
846
863
  res2.body.requester.should.be.a('object');
847
864
  res2.body.lead.should.be.a('object');
848
865
  // expect(res.body.requester).to.equal(undefined);
@@ -919,7 +936,7 @@ it('getallWithLoLead', function (done) {
919
936
  expect(res.body.participantsAgents.length).to.equal(1);
920
937
  expect(res.body.participantsBots.length).to.equal(0);
921
938
 
922
-
939
+ // expect(res.body.snapshot.agents).to.equal(undefined);
923
940
 
924
941
  res2.body.requester.should.be.a('string');
925
942
  res2.body.lead.should.be.a('string');
@@ -997,7 +1014,7 @@ it('createAndAssign2', function (done) {
997
1014
  expect(res.body.participantsAgents.length).to.equal(1);
998
1015
  expect(res.body.participantsBots.length).to.equal(0);
999
1016
 
1000
-
1017
+ // expect(res.body.snapshot.agents).to.equal(undefined);
1001
1018
 
1002
1019
  res2.body.requester.should.be.a('string');
1003
1020
  res2.body.lead.should.be.a('string');
@@ -1070,6 +1087,7 @@ it('removeParticipant', function (done) {
1070
1087
  expect(res.body.hasBot).to.equal(false);
1071
1088
  winston.info("res.body.attributes.abandoned_by_project_users", res.body.attributes.abandoned_by_project_users);
1072
1089
  expect(res.body.attributes.abandoned_by_project_users[savedProjectAndPU.project_user._id]).to.not.equal(undefined);
1090
+ expect(res.body.snapshot.agents).to.equal(undefined);
1073
1091
 
1074
1092
  res.body.should.have.property('department').not.eql(null);
1075
1093
  // res.body.should.have.property('lead').eql(undefined);