@tiledesk/tiledesk-server 2.10.14 → 2.10.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/app.js +2 -1
  3. package/models/request.js +8 -0
  4. package/package.json +4 -3
  5. package/pubmodules/activities/test/activityRoute.js +6 -2
  6. package/pubmodules/events/test/eventRoute.js +7 -3
  7. package/pubmodules/pubModulesManager.js +24 -0
  8. package/pubmodules/voice-twilio/index.js +6 -0
  9. package/pubmodules/voice-twilio/listener.js +59 -0
  10. package/routes/campaigns.js +1 -1
  11. package/routes/files.js +6 -4
  12. package/routes/images.js +0 -2
  13. package/routes/kb.js +7 -1
  14. package/routes/request.js +10 -0
  15. package/routes/users.js +2 -2
  16. package/services/fileGridFsService.js +12 -10
  17. package/services/requestService.js +2 -1
  18. package/test/app-test.js +36 -1
  19. package/test/authentication.js +662 -796
  20. package/test/authenticationJwt.js +213 -315
  21. package/test/authorization.js +53 -72
  22. package/test/campaignsRoute.js +42 -47
  23. package/test/cannedRoute.js +30 -16
  24. package/test/departmentService.js +222 -274
  25. package/test/example.json +31 -1
  26. package/test/faqRoute.js +713 -622
  27. package/test/faqService.js +124 -159
  28. package/test/faqkbRoute.js +128 -100
  29. package/test/fileRoute.js +50 -46
  30. package/test/imageRoute.js +263 -254
  31. package/test/jwtRoute.js +128 -153
  32. package/test/kbRoute.js +40 -17
  33. package/test/kbsettingsRoute.js +78 -54
  34. package/test/keysRoute.js +6 -7
  35. package/test/labelRoute.js +591 -696
  36. package/test/labelService.js +40 -47
  37. package/test/leadService.js +100 -115
  38. package/test/logsRoute.js +13 -7
  39. package/test/messageRootRoute.js +112 -102
  40. package/test/messageRoute.js +1171 -1419
  41. package/test/messageService.js +41 -43
  42. package/test/openaiRoute.js +5 -1
  43. package/test/projectRoute.js +23 -4
  44. package/test/projectService.js +3 -1
  45. package/test/quoteManager.js +36 -13
  46. package/test/requestRoute.js +103 -72
  47. package/test/requestService.js +51 -51
  48. package/test/userRoute.js +37 -8
  49. package/test/userService.js +34 -31
  50. package/utils/promiseUtil.js +1 -1
@@ -16,112 +16,105 @@ require('../services/mongoose-cache-fn')(mongoose);
16
16
 
17
17
  describe('labelService', function () {
18
18
 
19
-
20
-
21
19
 
22
20
  it('getWithoutClonedLabel', function (done) {
23
21
  var userid = "5badfe5d553d1844ad654072";
24
22
 
25
- projectService.create("test1", userid).then(function(savedProject) {
26
-
23
+ projectService.create("test1", userid).then(function (savedProject) {
24
+
27
25
  // get(id_project, language, key) {
28
- labelService.get(savedProject._id, "EN", "LABEL_PLACEHOLDER").then(function(label) {
29
-
30
- expect(label).to.equal("type your message..");
26
+ labelService.get(savedProject._id, "EN", "LABEL_PLACEHOLDER").then(function (label) {
27
+
28
+ expect(label).to.equal("type your message..");
31
29
 
32
30
  done();
33
- }).catch(function(err) {
31
+ }).catch(function (err) {
34
32
  winston.error("test reject", err);
35
- assert.isNotOk(err,'Promise error');
33
+ assert.isNotOk(err, 'Promise error');
36
34
  done();
35
+ });
37
36
  });
38
37
  });
39
- });
40
-
41
38
 
42
39
 
43
40
  it('getITLanguageButNotPresentInProject', function (done) {
44
41
  var userid = "5badfe5d553d1844ad654072";
45
42
 
46
- projectService.create("test1", userid).then(function(savedProject) {
47
-
43
+ projectService.create("test1", userid).then(function (savedProject) {
44
+
48
45
  // get(id_project, language, key) {
49
- labelService.get(savedProject._id, "IT", "LABEL_PLACEHOLDER").then(function(label) {
50
-
51
- expect(label).to.equal("type your message..");
46
+ labelService.get(savedProject._id, "IT", "LABEL_PLACEHOLDER").then(function (label) {
47
+
48
+ expect(label).to.equal("type your message..");
52
49
 
53
50
  done();
54
- }).catch(function(err) {
51
+ }).catch(function (err) {
55
52
  winston.error("test reject", err);
56
- assert.isNotOk(err,'Promise error');
53
+ assert.isNotOk(err, 'Promise error');
57
54
  done();
55
+ });
58
56
  });
59
57
  });
60
- });
61
58
 
62
59
 
63
60
  it('getWrongLanguage', function (done) {
64
61
  var userid = "5badfe5d553d1844ad654072";
65
62
 
66
- projectService.create("test1", userid).then(function(savedProject) {
67
-
63
+ projectService.create("test1", userid).then(function (savedProject) {
64
+
68
65
  // get(id_project, language, key) {
69
- labelService.get(savedProject._id, "OO", "LABEL_PLACEHOLDER").then(function(label) {
70
-
71
- expect(label).to.equal("type your message..");
66
+ labelService.get(savedProject._id, "OO", "LABEL_PLACEHOLDER").then(function (label) {
67
+
68
+ expect(label).to.equal("type your message..");
72
69
 
73
70
  done();
74
- }).catch(function(err) {
71
+ }).catch(function (err) {
75
72
  winston.error("test reject", err);
76
- assert.isNotOk(err,'Promise error');
73
+ assert.isNotOk(err, 'Promise error');
77
74
  done();
75
+ });
78
76
  });
79
77
  });
80
- });
81
-
82
-
83
78
 
84
79
 
85
80
  it('getLanguage', function (done) {
86
81
  var userid = "5badfe5d553d1844ad654072";
87
82
 
88
- projectService.create("test1", userid).then(function(savedProject) {
89
-
83
+ projectService.create("test1", userid).then(function (savedProject) {
84
+
90
85
  // getLanguage(id_project, language) {
91
- labelService.getLanguage(savedProject._id, "EN").then(function(labels) {
92
-
93
- expect(labels.data.LABEL_PLACEHOLDER).to.equal("type your message..");
86
+ labelService.getLanguage(savedProject._id, "EN").then(function (labels) {
87
+
88
+ expect(labels.data.LABEL_PLACEHOLDER).to.equal("type your message..");
94
89
 
95
90
  done();
96
- }).catch(function(err) {
91
+ }).catch(function (err) {
97
92
  winston.error("test reject", err);
98
- assert.isNotOk(err,'Promise error');
93
+ assert.isNotOk(err, 'Promise error');
99
94
  done();
95
+ });
100
96
  });
101
97
  });
102
- });
103
-
104
-
105
98
 
106
99
 
107
100
  it('getLanguageWrongLang', function (done) {
108
101
  var userid = "5badfe5d553d1844ad654072";
109
102
 
110
- projectService.create("test1", userid).then(function(savedProject) {
111
-
103
+ projectService.create("test1", userid).then(function (savedProject) {
104
+
112
105
  // getLanguage(id_project, language) {
113
- labelService.getLanguage(savedProject._id, "XX").then(function(labels) {
114
-
115
- expect(labels.data.LABEL_PLACEHOLDER).to.equal("type your message..");
106
+ labelService.getLanguage(savedProject._id, "XX").then(function (labels) {
107
+
108
+ expect(labels.data.LABEL_PLACEHOLDER).to.equal("type your message..");
116
109
 
117
110
  done();
118
- }).catch(function(err) {
111
+ }).catch(function (err) {
119
112
  winston.error("test reject", err);
120
- assert.isNotOk(err,'Promise error');
113
+ assert.isNotOk(err, 'Promise error');
121
114
  done();
115
+ });
122
116
  });
123
117
  });
124
- });
125
118
 
126
119
 
127
120
  });
@@ -13,175 +13,160 @@ mongoose.connect(config.databasetest);
13
13
  var leadService = require('../services/leadService');
14
14
  var projectService = require("../services/projectService");
15
15
 
16
+ let log = false;
17
+
16
18
  describe('LeadService()', function () {
17
19
 
18
20
  var userid = "5badfe5d553d1844ad654072";
19
21
 
20
-
21
22
  it('create', function (done) {
22
- projectService.create("test1", userid).then(function(savedProject) {
23
- // create(fullname, email, id_project, createdBy)
24
- var attr = {myprop:123};
25
- leadService.create("fullname", "email@email.com", savedProject._id, userid, attr).then(function(savedLead) {
23
+ projectService.create("test1", userid).then(function (savedProject) {
24
+ // create(fullname, email, id_project, createdBy)
25
+ var attr = { myprop: 123 };
26
+ leadService.create("fullname", "email@email.com", savedProject._id, userid, attr).then(function (savedLead) {
26
27
  winston.debug("resolve", savedLead.toObject());
27
- expect(savedLead.fullname).to.equal("fullname");
28
- expect(savedLead.email).to.equal("email@email.com");
29
- expect(savedLead.id_project).to.equal(savedProject._id.toString());
30
- expect(savedLead.lead_id).to.not.equal(null);
31
- expect(savedLead.attributes).to.equal(attr);
32
- expect(savedLead.attributes.myprop).to.equal(123);
28
+ expect(savedLead.fullname).to.equal("fullname");
29
+ expect(savedLead.email).to.equal("email@email.com");
30
+ expect(savedLead.id_project).to.equal(savedProject._id.toString());
31
+ expect(savedLead.lead_id).to.not.equal(null);
32
+ expect(savedLead.attributes).to.equal(attr);
33
+ expect(savedLead.attributes.myprop).to.equal(123);
33
34
 
34
35
  done();
35
- }).catch(function(err) {
36
+ }).catch(function (err) {
36
37
  winston.error("test reject", err);
37
- assert.isNotOk(err,'Promise error');
38
+ assert.isNotOk(err, 'Promise error');
38
39
  done();
40
+ });
39
41
  });
40
42
  });
41
- });
42
-
43
-
44
43
 
45
44
 
46
45
  it('update', function (done) {
47
- projectService.create("test1", userid).then(function(savedProject) {
48
- // create(fullname, email, id_project, createdBy)
49
- var attr = {myprop:123};
50
- leadService.create("fullname", "email@email.com", savedProject._id, userid, attr).then(function(savedLead) {
46
+ projectService.create("test1", userid).then(function (savedProject) {
47
+ // create(fullname, email, id_project, createdBy)
48
+ var attr = { myprop: 123 };
49
+ leadService.create("fullname", "email@email.com", savedProject._id, userid, attr).then(function (savedLead) {
51
50
  winston.debug("resolve", savedLead.toObject());
52
- expect(savedLead.fullname).to.equal("fullname");
53
- expect(savedLead.email).to.equal("email@email.com");
54
- expect(savedLead.id_project).to.equal(savedProject._id.toString());
55
- expect(savedLead.lead_id).to.not.equal(null);
56
- expect(savedLead.attributes).to.equal(attr);
57
- expect(savedLead.attributes.myprop).to.equal(123);
51
+ expect(savedLead.fullname).to.equal("fullname");
52
+ expect(savedLead.email).to.equal("email@email.com");
53
+ expect(savedLead.id_project).to.equal(savedProject._id.toString());
54
+ expect(savedLead.lead_id).to.not.equal(null);
55
+ expect(savedLead.attributes).to.equal(attr);
56
+ expect(savedLead.attributes.myprop).to.equal(123);
58
57
 
59
58
  // updateWitId(lead_id, fullname, email, id_project) {
60
59
 
61
- leadService.updateWitId(savedLead.lead_id, "fullname2", "email2@email2.com", savedProject._id).then(function(updatedLead) {
60
+ leadService.updateWitId(savedLead.lead_id, "fullname2", "email2@email2.com", savedProject._id).then(function (updatedLead) {
62
61
 
63
62
  expect(updatedLead.fullname).to.equal("fullname2");
64
63
  expect(updatedLead.email).to.equal("email2@email2.com");
65
64
  expect(updatedLead.id_project).to.equal(savedProject._id.toString());
66
65
  expect(updatedLead.lead_id).to.not.equal(savedLead.id);
67
66
 
68
- done();
69
- }).catch(function(err) {
70
- winston.error("test reject", err);
71
- assert.isNotOk(err,'Promise error');
72
- done();
67
+ done();
68
+ }).catch(function (err) {
69
+ winston.error("test reject", err);
70
+ assert.isNotOk(err, 'Promise error');
71
+ done();
73
72
  });
73
+ });
74
+ });
74
75
  });
75
- });
76
- });
77
-
78
-
79
76
 
80
77
 
81
78
  it('createWithoutEmail', function (done) {
82
- projectService.create("test1", userid).then(function(savedProject) {
83
- // create(fullname, email, id_project, createdBy)
84
- leadService.create("fullname", null, savedProject._id, userid).then(function(savedLead) {
79
+ projectService.create("test1", userid).then(function (savedProject) {
80
+ // create(fullname, email, id_project, createdBy)
81
+ leadService.create("fullname", null, savedProject._id, userid).then(function (savedLead) {
85
82
  winston.debug("resolve", savedLead.toObject());
86
- expect(savedLead.fullname).to.equal("fullname");
87
- expect(savedLead.email).to.equal(null);
88
- expect(savedLead.id_project).to.equal(savedProject._id.toString());
89
- expect(savedLead.lead_id).to.not.equal(null);
90
- expect(savedLead.attributes).to.equal(undefined);
83
+ expect(savedLead.fullname).to.equal("fullname");
84
+ expect(savedLead.email).to.equal(null);
85
+ expect(savedLead.id_project).to.equal(savedProject._id.toString());
86
+ expect(savedLead.lead_id).to.not.equal(null);
87
+ expect(savedLead.attributes).to.equal(undefined);
91
88
  done();
92
- }).catch(function(err) {
89
+ }).catch(function (err) {
93
90
  winston.error("test reject", err);
94
- assert.isNotOk(err,'Promise error');
91
+ assert.isNotOk(err, 'Promise error');
95
92
  done();
93
+ });
96
94
  });
97
95
  });
98
- });
99
-
100
-
101
96
 
102
97
 
103
98
  it('createIfNotExists-already-exists', function (done) {
104
- projectService.create("test1", userid).then(function(savedProject) {
105
- // create(fullname, email, id_project, createdBy)
106
- leadService.create("fullname", "email@email.com", savedProject._id, userid).then(function(savedLead) {
107
- console.log("savedLead", savedLead);
108
- leadService.createIfNotExists("fullname", "email@email.com", savedProject._id, userid).then(function(savedLeadIfNotExists) {
109
- console.log("savedLeadIfNotExists", savedLeadIfNotExists);
110
- expect(savedLead.fullname).to.equal("fullname");
111
- expect(savedLead.email).to.equal("email@email.com");
112
- expect(savedLead.id_project).to.equal(savedProject._id.toString());
113
- expect(savedLeadIfNotExists._id.toString()).to.equal(savedLead._id.toString());
114
- expect(savedLeadIfNotExists.lead_id).to.not.equal(null);
99
+ projectService.create("test1", userid).then(function (savedProject) {
100
+ // create(fullname, email, id_project, createdBy)
101
+ leadService.create("fullname", "email@email.com", savedProject._id, userid).then(function (savedLead) {
102
+ if (log) { console.log("savedLead", savedLead); }
103
+ leadService.createIfNotExists("fullname", "email@email.com", savedProject._id, userid).then(function (savedLeadIfNotExists) {
104
+ if (log) { console.log("savedLeadIfNotExists", savedLeadIfNotExists); }
105
+ expect(savedLead.fullname).to.equal("fullname");
106
+ expect(savedLead.email).to.equal("email@email.com");
107
+ expect(savedLead.id_project).to.equal(savedProject._id.toString());
108
+ expect(savedLeadIfNotExists._id.toString()).to.equal(savedLead._id.toString());
109
+ expect(savedLeadIfNotExists.lead_id).to.not.equal(null);
110
+
111
+ done();
112
+ }).catch(function (err) {
113
+ winston.error("test reject", err);
114
+ assert.isNotOk(err, 'Promise error');
115
+ done();
116
+ });
115
117
 
116
- done();
117
- }).catch(function(err) {
118
- winston.error("test reject", err);
119
- assert.isNotOk(err,'Promise error');
120
- done();
118
+ });
121
119
  });
122
-
123
- });
124
120
  });
125
- });
126
-
127
121
 
128
122
 
129
123
  it('createIfNotExists-not-exists', function (done) {
130
- projectService.create("test1", userid).then(function(savedProject) {
131
- // create(fullname, email, id_project, createdBy)
132
-
133
-
134
- leadService.createIfNotExists("fullname2", "email2@email.com", savedProject._id, userid).then(function(savedLeadIfNotExists) {
135
- console.log("savedLeadIfNotExists", savedLeadIfNotExists);
136
- expect(savedLeadIfNotExists.fullname).to.equal("fullname2");
137
- expect(savedLeadIfNotExists.email).to.equal("email2@email.com");
138
- expect(savedLeadIfNotExists.id_project).to.equal(savedProject._id.toString());
139
- expect(savedLeadIfNotExists.lead_id).to.not.equal(null);
140
-
141
- done();
142
- }).catch(function(err) {
143
- winston.error("test reject", err);
144
- assert.isNotOk(err,'Promise error');
145
- done();
146
- });
147
-
148
-
149
- });
150
- });
151
-
152
-
153
-
154
-
155
-
156
- it('createIfNotExistsWithId-already-exists', function (done) {
157
- projectService.create("test1", userid).then(function(savedProject) {
158
- // create(fullname, email, id_project, createdBy)
159
- var lead_id = "lead_id_" + savedProject._id;
160
- leadService.createWitId(lead_id, "fullname","email@email.com", savedProject._id, userid).then(function(savedLead) {
161
- console.log("savedLead", savedLead);
162
- leadService.createIfNotExistsWithLeadId(lead_id, "fullname", "email@email.com", savedProject._id, userid).then(function(savedLeadIfNotExists) {
163
- console.log("savedLeadIfNotExists", savedLeadIfNotExists);
164
- expect(savedLead.fullname).to.equal("fullname");
165
- expect(savedLead.email).to.equal("email@email.com");
166
- expect(savedLead.lead_id).to.equal(lead_id);
167
- expect(savedLead.id_project).to.equal(savedProject._id.toString());
168
- expect(savedLeadIfNotExists._id.toString()).to.equal(savedLead._id.toString());
169
- expect(savedLeadIfNotExists.lead_id).to.equal(lead_id);
124
+ projectService.create("test1", userid).then(function (savedProject) {
125
+ // create(fullname, email, id_project, createdBy)
126
+ leadService.createIfNotExists("fullname2", "email2@email.com", savedProject._id, userid).then(function (savedLeadIfNotExists) {
127
+ if (log) { console.log("savedLeadIfNotExists", savedLeadIfNotExists); }
128
+ expect(savedLeadIfNotExists.fullname).to.equal("fullname2");
129
+ expect(savedLeadIfNotExists.email).to.equal("email2@email.com");
130
+ expect(savedLeadIfNotExists.id_project).to.equal(savedProject._id.toString());
131
+ expect(savedLeadIfNotExists.lead_id).to.not.equal(null);
170
132
 
171
133
  done();
172
- }).catch(function(err) {
134
+ }).catch(function (err) {
173
135
  winston.error("test reject", err);
174
- assert.isNotOk(err,'Promise error');
136
+ assert.isNotOk(err, 'Promise error');
175
137
  done();
176
- });
138
+ });
177
139
 
178
- });
179
- });
180
- });
181
140
 
141
+ });
142
+ });
182
143
 
183
144
 
145
+ it('createIfNotExistsWithId-already-exists', function (done) {
146
+ projectService.create("test1", userid).then(function (savedProject) {
147
+ // create(fullname, email, id_project, createdBy)
148
+ var lead_id = "lead_id_" + savedProject._id;
149
+ leadService.createWitId(lead_id, "fullname", "email@email.com", savedProject._id, userid).then(function (savedLead) {
150
+ if (log) { console.log("savedLead", savedLead); }
151
+ leadService.createIfNotExistsWithLeadId(lead_id, "fullname", "email@email.com", savedProject._id, userid).then(function (savedLeadIfNotExists) {
152
+ if (log) { console.log("savedLeadIfNotExists", savedLeadIfNotExists); }
153
+ expect(savedLead.fullname).to.equal("fullname");
154
+ expect(savedLead.email).to.equal("email@email.com");
155
+ expect(savedLead.lead_id).to.equal(lead_id);
156
+ expect(savedLead.id_project).to.equal(savedProject._id.toString());
157
+ expect(savedLeadIfNotExists._id.toString()).to.equal(savedLead._id.toString());
158
+ expect(savedLeadIfNotExists.lead_id).to.equal(lead_id);
159
+
160
+ done();
161
+ }).catch(function (err) {
162
+ winston.error("test reject", err);
163
+ assert.isNotOk(err, 'Promise error');
164
+ done();
165
+ });
184
166
 
167
+ });
168
+ });
169
+ });
185
170
 
186
171
  });
187
172
 
package/test/logsRoute.js CHANGED
@@ -1,5 +1,6 @@
1
1
  //During the test the env variable is set to test
2
2
  process.env.NODE_ENV = 'test';
3
+ process.env.LOG_LEVEL = 'critical';
3
4
 
4
5
  var User = require('../models/user');
5
6
  var projectService = require('../services/projectService');
@@ -11,11 +12,15 @@ let chaiHttp = require('chai-http');
11
12
  let server = require('../app');
12
13
  let should = chai.should();
13
14
 
15
+ chai.use(chaiHttp);
16
+
14
17
  // chai.config.includeStack = true;
15
18
 
16
19
  var expect = chai.expect;
17
20
  var assert = chai.assert;
18
21
 
22
+ let log = false;
23
+
19
24
  let mock_log = {
20
25
  json_message: {
21
26
  messaging_product: "whatsapp",
@@ -46,7 +51,6 @@ let mock_log = {
46
51
  status_code: 3,
47
52
  error: null,
48
53
  }
49
- chai.use(chaiHttp);
50
54
 
51
55
  describe('LogsRoute', () => {
52
56
 
@@ -62,16 +66,16 @@ describe('LogsRoute', () => {
62
66
 
63
67
  mock_log.id_project = savedProject._id;
64
68
  mock_log.transaction_id = "automation-request-" + savedProject._id;
65
- console.log("mock_log.transaction_id: ", mock_log.transaction_id);
66
69
 
67
70
  chai.request(server)
68
71
  .post('/' + savedProject._id + '/logs/whatsapp')
69
72
  .auth(email, pwd)
70
73
  .send(mock_log)
71
74
  .end((err, res) => {
72
- console.log("err: ", err);
73
- // console.log("res.body: ", res.body);
74
- console.log("Added example log")
75
+
76
+ if (err) { console.error("err: ", err); }
77
+ if (log) { console.log("res.body: ", res.body); }
78
+
75
79
  res.should.have.status(200);
76
80
  res.body.should.be.a('object');
77
81
 
@@ -79,8 +83,10 @@ describe('LogsRoute', () => {
79
83
  .get('/' + savedProject._id + '/logs/whatsapp/' + mock_log.transaction_id)
80
84
  .auth(email, pwd)
81
85
  .end((err, res) => {
82
- console.log("err: ", err);
83
- console.log("res.body: ", res.body);
86
+
87
+ if (err) { console.error("err: ", err); }
88
+ if (log) { console.log("res.body: ", res.body); }
89
+
84
90
  res.should.have.status(200);
85
91
 
86
92
  done();