@tellescope/sdk 0.0.17 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/enduser.d.ts +32 -3
- package/lib/cjs/enduser.d.ts.map +1 -1
- package/lib/cjs/enduser.js +6 -3
- package/lib/cjs/enduser.js.map +1 -1
- package/lib/cjs/sdk.d.ts +46 -6
- package/lib/cjs/sdk.d.ts.map +1 -1
- package/lib/cjs/sdk.js +10 -6
- package/lib/cjs/sdk.js.map +1 -1
- package/lib/cjs/session.d.ts +4 -21
- package/lib/cjs/session.d.ts.map +1 -1
- package/lib/cjs/session.js +1 -0
- package/lib/cjs/session.js.map +1 -1
- package/lib/cjs/tests/public_endpoint_tests.js +1 -1
- package/lib/cjs/tests/public_endpoint_tests.js.map +1 -1
- package/lib/cjs/tests/socket_tests.d.ts +1 -1
- package/lib/cjs/tests/socket_tests.d.ts.map +1 -1
- package/lib/cjs/tests/socket_tests.js +124 -7
- package/lib/cjs/tests/socket_tests.js.map +1 -1
- package/lib/cjs/tests/tests.js +156 -113
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/cjs/tests/webhooks_tests.d.ts +2 -0
- package/lib/cjs/tests/webhooks_tests.d.ts.map +1 -0
- package/lib/cjs/tests/webhooks_tests.js +261 -0
- package/lib/cjs/tests/webhooks_tests.js.map +1 -0
- package/lib/esm/enduser.d.ts +32 -3
- package/lib/esm/enduser.d.ts.map +1 -1
- package/lib/esm/enduser.js +6 -3
- package/lib/esm/enduser.js.map +1 -1
- package/lib/esm/sdk.d.ts +46 -6
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/sdk.js +10 -6
- package/lib/esm/sdk.js.map +1 -1
- package/lib/esm/session.d.ts +4 -21
- package/lib/esm/session.d.ts.map +1 -1
- package/lib/esm/session.js +1 -0
- package/lib/esm/session.js.map +1 -1
- package/lib/esm/tests/public_endpoint_tests.js +1 -1
- package/lib/esm/tests/public_endpoint_tests.js.map +1 -1
- package/lib/esm/tests/socket_tests.d.ts +1 -1
- package/lib/esm/tests/socket_tests.d.ts.map +1 -1
- package/lib/esm/tests/socket_tests.js +122 -7
- package/lib/esm/tests/socket_tests.js.map +1 -1
- package/lib/esm/tests/tests.js +156 -113
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/esm/tests/webhooks_tests.d.ts +2 -0
- package/lib/esm/tests/webhooks_tests.d.ts.map +1 -0
- package/lib/esm/tests/webhooks_tests.js +256 -0
- package/lib/esm/tests/webhooks_tests.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +14 -11
- package/src/enduser.ts +12 -7
- package/src/sdk.ts +32 -13
- package/src/session.ts +3 -23
- package/src/tests/public_endpoint_tests.ts +1 -1
- package/src/tests/socket_tests.ts +67 -4
- package/src/tests/tests.ts +60 -37
- package/src/tests/webhooks_tests.ts +183 -0
package/lib/cjs/tests/tests.js
CHANGED
|
@@ -92,7 +92,7 @@ var userId = '60398b0231a295e64f084fd9';
|
|
|
92
92
|
// // delete an individual record
|
|
93
93
|
// await sdk.api.endusers.deleteOne(enduser.id)
|
|
94
94
|
// }
|
|
95
|
-
var sdk = new sdk_1.Session();
|
|
95
|
+
var sdk = new sdk_1.Session({ host: host });
|
|
96
96
|
var sdkOther = new sdk_1.Session({ host: host, apiKey: "ba745e25162bb95a795c5fa1af70df188d93c4d3aac9c48b34a5c8c9dd7b80f7" });
|
|
97
97
|
var enduserSDK = new sdk_1.EnduserSession({ host: host });
|
|
98
98
|
// const sdkOtherEmail = "sebass@tellescope.com"
|
|
@@ -110,15 +110,11 @@ var setup_tests = function () { return __awaiter(void 0, void 0, void 0, functio
|
|
|
110
110
|
case 0: return [4 /*yield*/, (0, testing_1.async_test)('test_online', sdk.test_online, { expectedResult: 'API V1 Online' })];
|
|
111
111
|
case 1:
|
|
112
112
|
_a.sent();
|
|
113
|
-
return [4 /*yield*/, (0, testing_1.async_test)('test_authenticated', sdk.test_authenticated, { expectedResult: 'Authenticated!' })
|
|
114
|
-
// console.log(await sdk.api.api_keys.createOne({}))
|
|
115
|
-
];
|
|
113
|
+
return [4 /*yield*/, (0, testing_1.async_test)('test_authenticated', sdk.test_authenticated, { expectedResult: 'Authenticated!' })];
|
|
116
114
|
case 2:
|
|
117
115
|
_a.sent();
|
|
118
|
-
// console.log(await sdk.api.api_keys.createOne({}))
|
|
119
116
|
return [4 /*yield*/, (0, testing_1.async_test)('test_authenticated (with API Key)', (new sdk_1.Session({ host: host, apiKey: '3n5q0SCBT_iUvZz-b9BJtX7o7HQUVJ9v132PgHJNJsg.' /* local test key */ })).test_authenticated, { expectedResult: 'Authenticated!' })];
|
|
120
117
|
case 3:
|
|
121
|
-
// console.log(await sdk.api.api_keys.createOne({}))
|
|
122
118
|
_a.sent();
|
|
123
119
|
return [4 /*yield*/, sdk.logout()];
|
|
124
120
|
case 4:
|
|
@@ -126,7 +122,7 @@ var setup_tests = function () { return __awaiter(void 0, void 0, void 0, functio
|
|
|
126
122
|
return [4 /*yield*/, (0, testing_1.async_test)('test_authenticated - (logout invalidates jwt)', sdk.test_authenticated, { shouldError: true, onError: function (e) { return e === 'Unauthenticated'; } })];
|
|
127
123
|
case 5:
|
|
128
124
|
_a.sent();
|
|
129
|
-
return [4 /*yield*/, sdk.authenticate(email, password
|
|
125
|
+
return [4 /*yield*/, sdk.authenticate(email, password)];
|
|
130
126
|
case 6:
|
|
131
127
|
_a.sent();
|
|
132
128
|
return [4 /*yield*/, (0, testing_1.async_test)('test_authenticated (re-authenticated)', sdk.test_authenticated, { expectedResult: 'Authenticated!' })];
|
|
@@ -255,6 +251,21 @@ var threadKeyTests = function () { return __awaiter(void 0, void 0, void 0, func
|
|
|
255
251
|
}
|
|
256
252
|
});
|
|
257
253
|
}); };
|
|
254
|
+
var badInputTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
255
|
+
return __generator(this, function (_a) {
|
|
256
|
+
switch (_a.label) {
|
|
257
|
+
case 0:
|
|
258
|
+
(0, testing_1.log_header)("Bad Input Tests");
|
|
259
|
+
return [4 /*yield*/, (0, testing_1.async_test)("_-prefixed fields are not allowed", function () { return sdk.api.endusers.createOne({ email: 'failure@tellescope.com', fields: { "_notallowed": 'hello' } }); }, { shouldError: true, onError: function (e) { return e.message === "Error parsing field fields: Fields that start with '_' are not allowed"; } })];
|
|
260
|
+
case 1:
|
|
261
|
+
_a.sent();
|
|
262
|
+
return [4 /*yield*/, (0, testing_1.async_test)("_-prefixed fields are not allowed", function () { return sdk.api.notes.createOne({ enduserId: constants_1.PLACEHOLDER_ID, fields: { "_notallowed": 'hello' } }); }, { shouldError: true, onError: function (e) { return e.message === "Error parsing field fields: Fields that start with '_' are not allowed"; } })];
|
|
263
|
+
case 2:
|
|
264
|
+
_a.sent();
|
|
265
|
+
return [2 /*return*/];
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
}); };
|
|
258
269
|
var filterTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
259
270
|
var enduser, otherEnduser;
|
|
260
271
|
return __generator(this, function (_a) {
|
|
@@ -268,38 +279,46 @@ var filterTests = function () { return __awaiter(void 0, void 0, void 0, functio
|
|
|
268
279
|
return [4 /*yield*/, (0, testing_1.async_test)("find enduser by filter", function () { return sdk.api.endusers.getSome({ filter: { email: 'filtertests@tellescope.com' } }); }, { onResult: function (es) { return es.length === 1 && es[0].id === enduser.id; } })];
|
|
269
280
|
case 3:
|
|
270
281
|
_a.sent();
|
|
271
|
-
return [4 /*yield*/, (0, testing_1.async_test)("find enduser by
|
|
282
|
+
return [4 /*yield*/, (0, testing_1.async_test)("find enduser by _exists filter", function () { return sdk.api.endusers.getSome({ filter: { fname: { _exists: true } } }); }, { onResult: function (es) { return es.length === 1 && es[0].id === enduser.id; } })];
|
|
272
283
|
case 4:
|
|
273
284
|
_a.sent();
|
|
274
|
-
return [4 /*yield*/, (0, testing_1.async_test)("
|
|
285
|
+
return [4 /*yield*/, (0, testing_1.async_test)("find enduser by _exists filter (findOne)",
|
|
286
|
+
// () => sdk.api.endusers.getOne({ fname: { _exists: true } }),
|
|
287
|
+
function () { return sdk.api.endusers.getOne({ fname: { _exists: true } }); }, { onResult: function (e) { return e.id === enduser.id; } })];
|
|
275
288
|
case 5:
|
|
276
289
|
_a.sent();
|
|
277
|
-
return [4 /*yield*/, (0, testing_1.async_test)("
|
|
290
|
+
return [4 /*yield*/, (0, testing_1.async_test)("find enduser by compound filter", function () { return sdk.api.endusers.getSome({ filter: { email: 'filtertests@tellescope.com', fname: 'test' } }); }, { onResult: function (es) { return es.length === 1 && es[0].id === enduser.id; } })];
|
|
278
291
|
case 6:
|
|
279
292
|
_a.sent();
|
|
280
|
-
return [4 /*yield*/, (0, testing_1.async_test)("
|
|
293
|
+
return [4 /*yield*/, (0, testing_1.async_test)("nothing found by invalid compound filter", function () { return sdk.api.endusers.getSome({ filter: { email: 'filtertests@tellescope.com', fname: 'nottest' } }); }, { onResult: function (es) { return es.length === 0; } })];
|
|
281
294
|
case 7:
|
|
282
295
|
_a.sent();
|
|
283
|
-
return [4 /*yield*/, (0, testing_1.async_test)("nothing found
|
|
296
|
+
return [4 /*yield*/, (0, testing_1.async_test)("nothing found for invalid filter", function () { return sdk.api.endusers.getSome({ filter: { email: 'doesnotexist@tellescope.com' } }); }, { onResult: function (es) { return es.length === 0; } })];
|
|
284
297
|
case 8:
|
|
285
298
|
_a.sent();
|
|
286
|
-
return [4 /*yield*/, (0, testing_1.async_test)("find enduser by
|
|
299
|
+
return [4 /*yield*/, (0, testing_1.async_test)("find enduser by nested filter", function () { return sdk.api.endusers.getSome({ filter: { fields: { field1: 'value1' } } }); }, { onResult: function (es) { return es.length === 1 && es[0].id === enduser.id; } })];
|
|
287
300
|
case 9:
|
|
288
301
|
_a.sent();
|
|
289
|
-
return [4 /*yield*/, (0, testing_1.async_test)("nothing found by
|
|
302
|
+
return [4 /*yield*/, (0, testing_1.async_test)("nothing found by invalid nested filter", function () { return sdk.api.endusers.getSome({ filter: { fields: { field1: 'not a nested field value' } } }); }, { onResult: function (es) { return es.length === 0; } })];
|
|
290
303
|
case 10:
|
|
291
304
|
_a.sent();
|
|
292
|
-
return [4 /*yield*/, (0, testing_1.async_test)("find enduser by compound nested filter
|
|
305
|
+
return [4 /*yield*/, (0, testing_1.async_test)("find enduser by compound nested filter", function () { return sdk.api.endusers.getSome({ filter: { fields: { field1: 'value1', field2: 'value2' } } }); }, { onResult: function (es) { return es.length === 1 && es[0].id === enduser.id; } })];
|
|
293
306
|
case 11:
|
|
294
307
|
_a.sent();
|
|
295
|
-
return [4 /*yield*/, (0, testing_1.async_test)("nothing found
|
|
308
|
+
return [4 /*yield*/, (0, testing_1.async_test)("nothing found by compound invalid nested filter", function () { return sdk.api.endusers.getSome({ filter: { fields: { field1: 'not a nested field value', field2: 'value2' } } }); }, { onResult: function (es) { return es.length === 0; } })];
|
|
296
309
|
case 12:
|
|
297
310
|
_a.sent();
|
|
298
|
-
return [4 /*yield*/, sdk.api.endusers.
|
|
311
|
+
return [4 /*yield*/, (0, testing_1.async_test)("find enduser by compound nested filter with non-nested field as well", function () { return sdk.api.endusers.getSome({ filter: { email: 'filtertests@tellescope.com', fields: { field1: 'value1', field2: 'value2' } } }); }, { onResult: function (es) { return es.length === 1 && es[0].id === enduser.id; } })];
|
|
299
312
|
case 13:
|
|
300
313
|
_a.sent();
|
|
301
|
-
return [4 /*yield*/, sdk.api.endusers.
|
|
314
|
+
return [4 /*yield*/, (0, testing_1.async_test)("nothing found for compound nested filter with non-nested field as well", function () { return sdk.api.endusers.getSome({ filter: { email: 'doesnotexist@tellescope.com', fields: { field1: 'value1', field2: 'value2' } } }); }, { onResult: function (es) { return es.length === 0; } })];
|
|
302
315
|
case 14:
|
|
316
|
+
_a.sent();
|
|
317
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
318
|
+
case 15:
|
|
319
|
+
_a.sent();
|
|
320
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(otherEnduser.id)];
|
|
321
|
+
case 16:
|
|
303
322
|
_a.sent();
|
|
304
323
|
return [2 /*return*/];
|
|
305
324
|
}
|
|
@@ -337,40 +356,50 @@ var updatesTests = function () { return __awaiter(void 0, void 0, void 0, functi
|
|
|
337
356
|
});
|
|
338
357
|
}); };
|
|
339
358
|
var generateEnduserAuthTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
340
|
-
var e, _a, authToken, enduser, isAuthenticated;
|
|
341
|
-
return __generator(this, function (
|
|
342
|
-
switch (
|
|
359
|
+
var externalId, e, _a, authToken, enduser, isAuthenticated, _b, authTokenUID, enduser2, _c;
|
|
360
|
+
return __generator(this, function (_d) {
|
|
361
|
+
switch (_d.label) {
|
|
343
362
|
case 0:
|
|
344
363
|
(0, testing_1.log_header)("Generated Enduser authToken Tests");
|
|
345
|
-
|
|
364
|
+
externalId = '1029f9v9sjd0as';
|
|
365
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'generated@tellescope.com', phone: '+15555555555', externalId: externalId })];
|
|
346
366
|
case 1:
|
|
347
|
-
e =
|
|
367
|
+
e = _d.sent();
|
|
348
368
|
return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: e.id })];
|
|
349
369
|
case 2:
|
|
350
|
-
_a =
|
|
370
|
+
_a = _d.sent(), authToken = _a.authToken, enduser = _a.enduser;
|
|
351
371
|
(0, testing_1.assert)(!!authToken && !!enduser, 'invalid returned values', 'Generate authToken and get enduser');
|
|
352
372
|
return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser.id, authToken: authToken })];
|
|
353
373
|
case 3:
|
|
354
|
-
isAuthenticated = (
|
|
374
|
+
isAuthenticated = (_d.sent()).isAuthenticated;
|
|
355
375
|
(0, testing_1.assert)(isAuthenticated, 'invalid authToken generated for enduser', 'Generate authToken for enduser is valid');
|
|
356
|
-
return [4 /*yield*/,
|
|
376
|
+
return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId })];
|
|
357
377
|
case 4:
|
|
358
|
-
_b.sent();
|
|
359
|
-
|
|
378
|
+
_b = _d.sent(), authTokenUID = _b.authToken, enduser2 = _b.enduser;
|
|
379
|
+
(0, testing_1.assert)(!!authTokenUID && !!enduser2, 'invalid returned values eid', 'Generate authToken and get enduser eid');
|
|
380
|
+
_c = testing_1.assert;
|
|
381
|
+
return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser2.id, authToken: authTokenUID })];
|
|
360
382
|
case 5:
|
|
361
|
-
|
|
362
|
-
|
|
383
|
+
_c.apply(void 0, [(_d.sent()).isAuthenticated,
|
|
384
|
+
'invalid authToken generated for enduser', 'Generate authToken for enduser is valid']);
|
|
385
|
+
return [4 /*yield*/, (0, testing_1.async_test)("auth by externalId", function () { return sdk.api.endusers.generate_auth_token({ externalId: e.externalId }); }, passOnVoid)];
|
|
363
386
|
case 6:
|
|
364
|
-
|
|
365
|
-
return [4 /*yield*/, (0, testing_1.async_test)("auth by
|
|
387
|
+
_d.sent();
|
|
388
|
+
return [4 /*yield*/, (0, testing_1.async_test)("auth by email", function () { return sdk.api.endusers.generate_auth_token({ email: e.email }); }, passOnVoid)];
|
|
366
389
|
case 7:
|
|
367
|
-
|
|
368
|
-
return [4 /*yield*/, (0, testing_1.async_test)("auth by
|
|
390
|
+
_d.sent();
|
|
391
|
+
return [4 /*yield*/, (0, testing_1.async_test)("auth by phone", function () { return sdk.api.endusers.generate_auth_token({ phone: e.phone }); }, passOnVoid)];
|
|
369
392
|
case 8:
|
|
370
|
-
|
|
371
|
-
return [4 /*yield*/, sdk.api.endusers.
|
|
393
|
+
_d.sent();
|
|
394
|
+
return [4 /*yield*/, (0, testing_1.async_test)("auth by nothing throws error", function () { return sdk.api.endusers.generate_auth_token({ phone: undefined }); }, { shouldError: true, onError: function (e) { return e.message === "One of id, externalId, email, or phone is required"; } })];
|
|
372
395
|
case 9:
|
|
373
|
-
|
|
396
|
+
_d.sent();
|
|
397
|
+
return [4 /*yield*/, (0, testing_1.async_test)("auth by bad field throws error", function () { return sdk.api.endusers.generate_auth_token({ email: "notavalidemail@tellescope.com" }); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a corresponding enduser"; } })];
|
|
398
|
+
case 10:
|
|
399
|
+
_d.sent();
|
|
400
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
401
|
+
case 11:
|
|
402
|
+
_d.sent();
|
|
374
403
|
return [2 /*return*/];
|
|
375
404
|
}
|
|
376
405
|
});
|
|
@@ -493,7 +522,7 @@ var run_generated_tests = function (_a) {
|
|
|
493
522
|
case 7:
|
|
494
523
|
_c.sent();
|
|
495
524
|
_c.label = 8;
|
|
496
|
-
case 8: return [4 /*yield*/, (0, testing_1.async_test)("get-".concat(singularName), function () { return queries.getOne(_id
|
|
525
|
+
case 8: return [4 /*yield*/, (0, testing_1.async_test)("get-".concat(singularName), function () { return queries.getOne(_id); }, { onResult: function (d) {
|
|
497
526
|
if (!(d === null || d === void 0 ? void 0 : d.id))
|
|
498
527
|
return false;
|
|
499
528
|
for (var k in instance) {
|
|
@@ -522,7 +551,7 @@ var run_generated_tests = function (_a) {
|
|
|
522
551
|
return [4 /*yield*/, (0, testing_1.async_test)("delete-".concat(singularName), function () { return queries.deleteOne(_id); }, passOnVoid)];
|
|
523
552
|
case 11:
|
|
524
553
|
_c.sent();
|
|
525
|
-
return [4 /*yield*/, (0, testing_1.async_test)("get-".concat(singularName, " (verify delete)"), function () { return queries.getOne(_id
|
|
554
|
+
return [4 /*yield*/, (0, testing_1.async_test)("get-".concat(singularName, " (verify delete)"), function () { return queries.getOne(_id); }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a record for the given id'; } })];
|
|
526
555
|
case 12:
|
|
527
556
|
_c.sent();
|
|
528
557
|
return [2 /*return*/];
|
|
@@ -947,23 +976,30 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
|
|
|
947
976
|
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, message: "Hello!" })];
|
|
948
977
|
case 3:
|
|
949
978
|
chat = _a.sent();
|
|
950
|
-
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, message: "Hello..." })
|
|
979
|
+
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, message: "Hello..." })
|
|
980
|
+
// await async_test(
|
|
981
|
+
// `get-chat (without filter)`,
|
|
982
|
+
// () => sdk.api.chats.getOne(chat.id),
|
|
983
|
+
// { shouldError: true, onError: () => true }
|
|
984
|
+
// )
|
|
985
|
+
];
|
|
951
986
|
case 4:
|
|
952
987
|
chat2 = _a.sent();
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
988
|
+
// await async_test(
|
|
989
|
+
// `get-chat (without filter)`,
|
|
990
|
+
// () => sdk.api.chats.getOne(chat.id),
|
|
991
|
+
// { shouldError: true, onError: () => true }
|
|
992
|
+
// )
|
|
956
993
|
return [4 /*yield*/, (0, testing_1.async_test)("get-chats (without filter)", function () { return sdk.api.chats.getSome({}); }, { shouldError: true, onError: function () { return true; } })];
|
|
957
|
-
case
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
994
|
+
case 5:
|
|
995
|
+
// await async_test(
|
|
996
|
+
// `get-chat (without filter)`,
|
|
997
|
+
// () => sdk.api.chats.getOne(chat.id),
|
|
998
|
+
// { shouldError: true, onError: () => true }
|
|
999
|
+
// )
|
|
961
1000
|
_a.sent();
|
|
962
1001
|
return [4 /*yield*/, (0, testing_1.async_test)("get-chats (with filter)", function () { return sdk.api.chats.getSome({ filter: { roomId: room.id } }); }, { onResult: function (c) { return (c === null || c === void 0 ? void 0 : c.length) === 2; } })];
|
|
963
|
-
case
|
|
964
|
-
_a.sent();
|
|
965
|
-
return [4 /*yield*/, (0, testing_1.async_test)("get-chat not allowed", function () { return sdk2.api.chats.getOne(chat.id, { roomId: room.id }); }, { shouldError: true, onError: function (e) { return e.message === 'You do not have permission to access this resource'; } })];
|
|
966
|
-
case 9:
|
|
1002
|
+
case 6:
|
|
967
1003
|
_a.sent();
|
|
968
1004
|
return [4 /*yield*/, (0, testing_1.async_test)("get-chats not allowed", function () { return sdk2.api.chats.getSome({ filter: { roomId: room.id } }); }, { shouldError: true, onError: function (e) { return e.message === 'You do not have permission to access this resource'; } })
|
|
969
1005
|
// currently disabled endpoint altogether
|
|
@@ -973,7 +1009,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
|
|
|
973
1009
|
// { shouldError: true, onError: e => e.message === 'You do not have permission to access this resource' }
|
|
974
1010
|
// )
|
|
975
1011
|
];
|
|
976
|
-
case
|
|
1012
|
+
case 7:
|
|
977
1013
|
_a.sent();
|
|
978
1014
|
// currently disabled endpoint altogether
|
|
979
1015
|
// await async_test(
|
|
@@ -989,7 +1025,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
|
|
|
989
1025
|
// { shouldError: true, onError: e => e.message === 'Error parsing field updates: roomId is not valid for updates' }
|
|
990
1026
|
// )
|
|
991
1027
|
];
|
|
992
|
-
case
|
|
1028
|
+
case 8:
|
|
993
1029
|
// currently disabled endpoint altogether
|
|
994
1030
|
// await async_test(
|
|
995
1031
|
// `update-chat not allowed`,
|
|
@@ -1004,7 +1040,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
|
|
|
1004
1040
|
// { shouldError: true, onError: e => e.message === 'Error parsing field updates: roomId is not valid for updates' }
|
|
1005
1041
|
// )
|
|
1006
1042
|
return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(room.id)];
|
|
1007
|
-
case
|
|
1043
|
+
case 9:
|
|
1008
1044
|
// currently disabled endpoint altogether
|
|
1009
1045
|
// await async_test(
|
|
1010
1046
|
// `update-chat can't update roomId`,
|
|
@@ -1013,51 +1049,51 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
|
|
|
1013
1049
|
// )
|
|
1014
1050
|
_a.sent();
|
|
1015
1051
|
return [4 /*yield*/, (0, testing_1.wait)(undefined, 25)];
|
|
1016
|
-
case
|
|
1052
|
+
case 10:
|
|
1017
1053
|
_a.sent();
|
|
1018
|
-
return [4 /*yield*/, (0, testing_1.async_test)("get-chat (deleted as dependency of room 1)", function () { return sdk.api.chats.getOne(chat.id
|
|
1019
|
-
case
|
|
1054
|
+
return [4 /*yield*/, (0, testing_1.async_test)("get-chat (deleted as dependency of room 1)", function () { return sdk.api.chats.getOne(chat.id); }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a record for the given id'; } })];
|
|
1055
|
+
case 11:
|
|
1020
1056
|
_a.sent();
|
|
1021
|
-
return [4 /*yield*/, (0, testing_1.async_test)("get-chat (deleted as dependency of room 2)", function () { return sdk.api.chats.getOne(chat2.id
|
|
1022
|
-
case
|
|
1057
|
+
return [4 /*yield*/, (0, testing_1.async_test)("get-chat (deleted as dependency of room 2)", function () { return sdk.api.chats.getOne(chat2.id); }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a record for the given id'; } })];
|
|
1058
|
+
case 12:
|
|
1023
1059
|
_a.sent();
|
|
1024
1060
|
return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId, sdk2.userInfo.id] })];
|
|
1025
|
-
case
|
|
1061
|
+
case 13:
|
|
1026
1062
|
sharedRoom = _a.sent();
|
|
1027
1063
|
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: sharedRoom.id, message: "Hello!", })];
|
|
1028
|
-
case
|
|
1064
|
+
case 14:
|
|
1029
1065
|
sharedChat = _a.sent();
|
|
1030
1066
|
return [4 /*yield*/, sdk2.api.chats.createOne({ roomId: sharedRoom.id, message: "Hello there!", })];
|
|
1031
|
-
case
|
|
1067
|
+
case 15:
|
|
1032
1068
|
sharedChat2 = _a.sent();
|
|
1033
|
-
return [4 /*yield*/, (0, testing_1.async_test)("get-chat (shared, user1)", function () { return sdk.api.chats.getOne(sharedChat.id
|
|
1034
|
-
case
|
|
1069
|
+
return [4 /*yield*/, (0, testing_1.async_test)("get-chat (shared, user1)", function () { return sdk.api.chats.getOne(sharedChat.id); }, { onResult: function (r) { return r.id === sharedChat.id; } })];
|
|
1070
|
+
case 16:
|
|
1035
1071
|
_a.sent();
|
|
1036
|
-
return [4 /*yield*/, (0, testing_1.async_test)("get-chat (shared, user2)", function () { return sdk2.api.chats.getOne(sharedChat.id
|
|
1037
|
-
case
|
|
1072
|
+
return [4 /*yield*/, (0, testing_1.async_test)("get-chat (shared, user2)", function () { return sdk2.api.chats.getOne(sharedChat.id); }, { onResult: function (r) { return r.id === sharedChat.id; } })];
|
|
1073
|
+
case 17:
|
|
1038
1074
|
_a.sent();
|
|
1039
1075
|
return [4 /*yield*/, (0, testing_1.async_test)("get-chats (shared, user1)", function () { return sdk.api.chats.getSome({ filter: { roomId: sharedRoom.id } }); }, { onResult: function (cs) { return cs.length === 2 && !!cs.find(function (c) { return c.id === sharedChat.id; }) && !!cs.find(function (c) { return c.id === sharedChat2.id; }); } })];
|
|
1040
|
-
case
|
|
1076
|
+
case 18:
|
|
1041
1077
|
_a.sent();
|
|
1042
1078
|
return [4 /*yield*/, (0, testing_1.async_test)("get-chats (shared, user2)", function () { return sdk2.api.chats.getSome({ filter: { roomId: sharedRoom.id } }); }, { onResult: function (cs) { return cs.length === 2 && !!cs.find(function (c) { return c.id === sharedChat.id; }) && !!cs.find(function (c) { return c.id === sharedChat2.id; }); } })
|
|
1043
1079
|
// test setNull dependency
|
|
1044
1080
|
];
|
|
1045
|
-
case
|
|
1081
|
+
case 19:
|
|
1046
1082
|
_a.sent();
|
|
1047
1083
|
return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId] })];
|
|
1048
|
-
case
|
|
1084
|
+
case 20:
|
|
1049
1085
|
roomNull = _a.sent();
|
|
1050
1086
|
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomNull.id, message: "Hello!" })];
|
|
1051
|
-
case
|
|
1087
|
+
case 21:
|
|
1052
1088
|
chatNull = _a.sent();
|
|
1053
1089
|
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomNull.id, message: "Hello...", replyId: chatNull.id })];
|
|
1054
|
-
case
|
|
1090
|
+
case 22:
|
|
1055
1091
|
chat2Null = _a.sent();
|
|
1056
1092
|
return [4 /*yield*/, sdk.api.chats.deleteOne(chatNull.id)];
|
|
1057
|
-
case
|
|
1093
|
+
case 23:
|
|
1058
1094
|
_a.sent();
|
|
1059
|
-
return [4 /*yield*/, (0, testing_1.async_test)("get-chat (setNull working)", function () { return sdk.api.chats.getOne(chat2Null.id
|
|
1060
|
-
case
|
|
1095
|
+
return [4 /*yield*/, (0, testing_1.async_test)("get-chat (setNull working)", function () { return sdk.api.chats.getOne(chat2Null.id); }, { onResult: function (c) { return c.replyId === null; } })];
|
|
1096
|
+
case 24:
|
|
1061
1097
|
_a.sent();
|
|
1062
1098
|
return [2 /*return*/];
|
|
1063
1099
|
}
|
|
@@ -1087,38 +1123,40 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
1087
1123
|
case 0:
|
|
1088
1124
|
endpoint = (0, utilities_1.url_safe_path)(n);
|
|
1089
1125
|
model = schema_1.schema[n];
|
|
1126
|
+
if (n === 'webhooks')
|
|
1127
|
+
return [2 /*return*/, "continue"]; // no default endpoints implemented
|
|
1090
1128
|
if (!(!((_c = model === null || model === void 0 ? void 0 : model.enduserActions) === null || _c === void 0 ? void 0 : _c.read) && (model.defaultActions.read || model.customActions.read))) return [3 /*break*/, 2];
|
|
1091
|
-
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access getOne (".concat(endpoint, ")"), function () { return enduserSDK.GET("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated'; } })];
|
|
1129
|
+
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access getOne (".concat(endpoint, ")"), function () { return enduserSDK.GET("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
|
|
1092
1130
|
case 1:
|
|
1093
1131
|
_k.sent();
|
|
1094
1132
|
_k.label = 2;
|
|
1095
1133
|
case 2:
|
|
1096
1134
|
if (!(!((_d = model.enduserActions) === null || _d === void 0 ? void 0 : _d.readMany) && (model.defaultActions.readMany || model.customActions.readMany))) return [3 /*break*/, 4];
|
|
1097
|
-
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access getSome (".concat(endpoint, ")"), function () { return enduserSDK.GET("/v1/".concat(endpoint)); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated'; } })];
|
|
1135
|
+
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access getSome (".concat(endpoint, ")"), function () { return enduserSDK.GET("/v1/".concat(endpoint)); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
|
|
1098
1136
|
case 3:
|
|
1099
1137
|
_k.sent();
|
|
1100
1138
|
_k.label = 4;
|
|
1101
1139
|
case 4:
|
|
1102
1140
|
if (!(!((_e = model.enduserActions) === null || _e === void 0 ? void 0 : _e.create) && (model.defaultActions.create || model.customActions.create))) return [3 /*break*/, 6];
|
|
1103
|
-
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access createOne (".concat(endpoint, ")"), function () { return enduserSDK.POST("/v1/".concat(endpoint.substring(0, endpoint.length - 1))); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated'; } })];
|
|
1141
|
+
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access createOne (".concat(endpoint, ")"), function () { return enduserSDK.POST("/v1/".concat(endpoint.substring(0, endpoint.length - 1))); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
|
|
1104
1142
|
case 5:
|
|
1105
1143
|
_k.sent();
|
|
1106
1144
|
_k.label = 6;
|
|
1107
1145
|
case 6:
|
|
1108
1146
|
if (!(!((_f = model.enduserActions) === null || _f === void 0 ? void 0 : _f.createMany) && (model.defaultActions.createMany || model.customActions.createMany))) return [3 /*break*/, 8];
|
|
1109
|
-
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access createMany (".concat(endpoint, ")"), function () { return enduserSDK.POST("/v1/".concat(endpoint)); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated'; } })];
|
|
1147
|
+
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access createMany (".concat(endpoint, ")"), function () { return enduserSDK.POST("/v1/".concat(endpoint)); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
|
|
1110
1148
|
case 7:
|
|
1111
1149
|
_k.sent();
|
|
1112
1150
|
_k.label = 8;
|
|
1113
1151
|
case 8:
|
|
1114
1152
|
if (!(!((_g = model.enduserActions) === null || _g === void 0 ? void 0 : _g.update) && (model.defaultActions.update || model.customActions.update))) return [3 /*break*/, 10];
|
|
1115
|
-
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access update (".concat(endpoint, ")"), function () { return enduserSDK.PATCH("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated'; } })];
|
|
1153
|
+
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access update (".concat(endpoint, ")"), function () { return enduserSDK.PATCH("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
|
|
1116
1154
|
case 9:
|
|
1117
1155
|
_k.sent();
|
|
1118
1156
|
_k.label = 10;
|
|
1119
1157
|
case 10:
|
|
1120
1158
|
if (!(!((_h = model.enduserActions) === null || _h === void 0 ? void 0 : _h.delete) && (model.defaultActions.delete || model.customActions.delete))) return [3 /*break*/, 12];
|
|
1121
|
-
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access delete (".concat(endpoint, ")"), function () { return enduserSDK.DELETE("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated'; } })];
|
|
1159
|
+
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access delete (".concat(endpoint, ")"), function () { return enduserSDK.DELETE("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
|
|
1122
1160
|
case 11:
|
|
1123
1161
|
_k.sent();
|
|
1124
1162
|
_k.label = 12;
|
|
@@ -1213,55 +1251,60 @@ var tests = {
|
|
|
1213
1251
|
tickets: function () { },
|
|
1214
1252
|
meetings: function () { },
|
|
1215
1253
|
notes: function () { },
|
|
1254
|
+
webhooks: function () { },
|
|
1216
1255
|
};
|
|
1217
1256
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1218
1257
|
var err_1, n, _a, _b, _i, returnValidation, t, _c, _d, _e, err_2;
|
|
1219
1258
|
var _f, _g;
|
|
1220
1259
|
return __generator(this, function (_h) {
|
|
1221
1260
|
switch (_h.label) {
|
|
1222
|
-
case 0:
|
|
1223
|
-
case 1:
|
|
1224
|
-
_h.sent();
|
|
1261
|
+
case 0:
|
|
1225
1262
|
(0, testing_1.log_header)("API");
|
|
1226
|
-
_h.label =
|
|
1263
|
+
_h.label = 1;
|
|
1264
|
+
case 1:
|
|
1265
|
+
_h.trys.push([1, 11, , 12]);
|
|
1266
|
+
return [4 /*yield*/, sdk.authenticate(email, password)];
|
|
1227
1267
|
case 2:
|
|
1228
|
-
_h.
|
|
1268
|
+
_h.sent();
|
|
1229
1269
|
return [4 /*yield*/, setup_tests()];
|
|
1230
1270
|
case 3:
|
|
1231
1271
|
_h.sent();
|
|
1232
1272
|
return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
|
|
1233
1273
|
case 4:
|
|
1234
1274
|
_h.sent(); // should come right after setup tests
|
|
1235
|
-
return [4 /*yield*/,
|
|
1275
|
+
return [4 /*yield*/, badInputTests()];
|
|
1236
1276
|
case 5:
|
|
1237
1277
|
_h.sent();
|
|
1238
|
-
return [4 /*yield*/,
|
|
1278
|
+
return [4 /*yield*/, filterTests()];
|
|
1239
1279
|
case 6:
|
|
1240
1280
|
_h.sent();
|
|
1241
|
-
return [4 /*yield*/,
|
|
1281
|
+
return [4 /*yield*/, updatesTests()];
|
|
1242
1282
|
case 7:
|
|
1243
1283
|
_h.sent();
|
|
1244
|
-
return [4 /*yield*/,
|
|
1284
|
+
return [4 /*yield*/, threadKeyTests()];
|
|
1245
1285
|
case 8:
|
|
1246
1286
|
_h.sent();
|
|
1247
|
-
return [4 /*yield*/,
|
|
1287
|
+
return [4 /*yield*/, enduserAccessTests()];
|
|
1248
1288
|
case 9:
|
|
1249
1289
|
_h.sent();
|
|
1250
|
-
return [
|
|
1290
|
+
return [4 /*yield*/, generateEnduserAuthTests()];
|
|
1251
1291
|
case 10:
|
|
1292
|
+
_h.sent();
|
|
1293
|
+
return [3 /*break*/, 12];
|
|
1294
|
+
case 11:
|
|
1252
1295
|
err_1 = _h.sent();
|
|
1253
1296
|
console.error("Failed during custom test");
|
|
1254
1297
|
console.error(err_1);
|
|
1255
1298
|
process.exit();
|
|
1256
|
-
return [3 /*break*/,
|
|
1257
|
-
case
|
|
1299
|
+
return [3 /*break*/, 12];
|
|
1300
|
+
case 12:
|
|
1258
1301
|
_a = [];
|
|
1259
1302
|
for (_b in schema_1.schema)
|
|
1260
1303
|
_a.push(_b);
|
|
1261
1304
|
_i = 0;
|
|
1262
|
-
_h.label =
|
|
1263
|
-
case
|
|
1264
|
-
if (!(_i < _a.length)) return [3 /*break*/,
|
|
1305
|
+
_h.label = 13;
|
|
1306
|
+
case 13:
|
|
1307
|
+
if (!(_i < _a.length)) return [3 /*break*/, 16];
|
|
1265
1308
|
n = _a[_i];
|
|
1266
1309
|
returnValidation = (_g = (_f = schema_1.schema[n].customActions) === null || _f === void 0 ? void 0 : _f.create) === null || _g === void 0 ? void 0 : _g.returns;
|
|
1267
1310
|
return [4 /*yield*/, run_generated_tests({
|
|
@@ -1272,37 +1315,37 @@ var tests = {
|
|
|
1272
1315
|
create: returnValidation,
|
|
1273
1316
|
}
|
|
1274
1317
|
})];
|
|
1275
|
-
case 13:
|
|
1276
|
-
_h.sent();
|
|
1277
|
-
_h.label = 14;
|
|
1278
1318
|
case 14:
|
|
1279
|
-
|
|
1280
|
-
|
|
1319
|
+
_h.sent();
|
|
1320
|
+
_h.label = 15;
|
|
1281
1321
|
case 15:
|
|
1322
|
+
_i++;
|
|
1323
|
+
return [3 /*break*/, 13];
|
|
1324
|
+
case 16:
|
|
1282
1325
|
_c = [];
|
|
1283
1326
|
for (_d in tests)
|
|
1284
1327
|
_c.push(_d);
|
|
1285
1328
|
_e = 0;
|
|
1286
|
-
_h.label = 16;
|
|
1287
|
-
case 16:
|
|
1288
|
-
if (!(_e < _c.length)) return [3 /*break*/, 21];
|
|
1289
|
-
t = _c[_e];
|
|
1290
1329
|
_h.label = 17;
|
|
1291
1330
|
case 17:
|
|
1292
|
-
|
|
1293
|
-
|
|
1331
|
+
if (!(_e < _c.length)) return [3 /*break*/, 22];
|
|
1332
|
+
t = _c[_e];
|
|
1333
|
+
_h.label = 18;
|
|
1294
1334
|
case 18:
|
|
1295
|
-
_h.
|
|
1296
|
-
return [
|
|
1335
|
+
_h.trys.push([18, 20, , 21]);
|
|
1336
|
+
return [4 /*yield*/, tests[t]()];
|
|
1297
1337
|
case 19:
|
|
1338
|
+
_h.sent();
|
|
1339
|
+
return [3 /*break*/, 21];
|
|
1340
|
+
case 20:
|
|
1298
1341
|
err_2 = _h.sent();
|
|
1299
1342
|
console.error("Error running test:");
|
|
1300
1343
|
console.error(err_2);
|
|
1301
|
-
return [3 /*break*/,
|
|
1302
|
-
case 20:
|
|
1303
|
-
_e++;
|
|
1304
|
-
return [3 /*break*/, 16];
|
|
1344
|
+
return [3 /*break*/, 21];
|
|
1305
1345
|
case 21:
|
|
1346
|
+
_e++;
|
|
1347
|
+
return [3 /*break*/, 17];
|
|
1348
|
+
case 22:
|
|
1306
1349
|
process.exit();
|
|
1307
1350
|
return [2 /*return*/];
|
|
1308
1351
|
}
|