@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/esm/tests/tests.js
CHANGED
|
@@ -71,7 +71,7 @@ var userId = '60398b0231a295e64f084fd9';
|
|
|
71
71
|
// // delete an individual record
|
|
72
72
|
// await sdk.api.endusers.deleteOne(enduser.id)
|
|
73
73
|
// }
|
|
74
|
-
var sdk = new Session();
|
|
74
|
+
var sdk = new Session({ host: host });
|
|
75
75
|
var sdkOther = new Session({ host: host, apiKey: "ba745e25162bb95a795c5fa1af70df188d93c4d3aac9c48b34a5c8c9dd7b80f7" });
|
|
76
76
|
var enduserSDK = new EnduserSession({ host: host });
|
|
77
77
|
// const sdkOtherEmail = "sebass@tellescope.com"
|
|
@@ -89,15 +89,11 @@ var setup_tests = function () { return __awaiter(void 0, void 0, void 0, functio
|
|
|
89
89
|
case 0: return [4 /*yield*/, async_test('test_online', sdk.test_online, { expectedResult: 'API V1 Online' })];
|
|
90
90
|
case 1:
|
|
91
91
|
_a.sent();
|
|
92
|
-
return [4 /*yield*/, async_test('test_authenticated', sdk.test_authenticated, { expectedResult: 'Authenticated!' })
|
|
93
|
-
// console.log(await sdk.api.api_keys.createOne({}))
|
|
94
|
-
];
|
|
92
|
+
return [4 /*yield*/, async_test('test_authenticated', sdk.test_authenticated, { expectedResult: 'Authenticated!' })];
|
|
95
93
|
case 2:
|
|
96
94
|
_a.sent();
|
|
97
|
-
// console.log(await sdk.api.api_keys.createOne({}))
|
|
98
95
|
return [4 /*yield*/, async_test('test_authenticated (with API Key)', (new Session({ host: host, apiKey: '3n5q0SCBT_iUvZz-b9BJtX7o7HQUVJ9v132PgHJNJsg.' /* local test key */ })).test_authenticated, { expectedResult: 'Authenticated!' })];
|
|
99
96
|
case 3:
|
|
100
|
-
// console.log(await sdk.api.api_keys.createOne({}))
|
|
101
97
|
_a.sent();
|
|
102
98
|
return [4 /*yield*/, sdk.logout()];
|
|
103
99
|
case 4:
|
|
@@ -105,7 +101,7 @@ var setup_tests = function () { return __awaiter(void 0, void 0, void 0, functio
|
|
|
105
101
|
return [4 /*yield*/, async_test('test_authenticated - (logout invalidates jwt)', sdk.test_authenticated, { shouldError: true, onError: function (e) { return e === 'Unauthenticated'; } })];
|
|
106
102
|
case 5:
|
|
107
103
|
_a.sent();
|
|
108
|
-
return [4 /*yield*/, sdk.authenticate(email, password
|
|
104
|
+
return [4 /*yield*/, sdk.authenticate(email, password)];
|
|
109
105
|
case 6:
|
|
110
106
|
_a.sent();
|
|
111
107
|
return [4 /*yield*/, async_test('test_authenticated (re-authenticated)', sdk.test_authenticated, { expectedResult: 'Authenticated!' })];
|
|
@@ -234,6 +230,21 @@ var threadKeyTests = function () { return __awaiter(void 0, void 0, void 0, func
|
|
|
234
230
|
}
|
|
235
231
|
});
|
|
236
232
|
}); };
|
|
233
|
+
var badInputTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
234
|
+
return __generator(this, function (_a) {
|
|
235
|
+
switch (_a.label) {
|
|
236
|
+
case 0:
|
|
237
|
+
log_header("Bad Input Tests");
|
|
238
|
+
return [4 /*yield*/, 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"; } })];
|
|
239
|
+
case 1:
|
|
240
|
+
_a.sent();
|
|
241
|
+
return [4 /*yield*/, async_test("_-prefixed fields are not allowed", function () { return sdk.api.notes.createOne({ enduserId: PLACEHOLDER_ID, fields: { "_notallowed": 'hello' } }); }, { shouldError: true, onError: function (e) { return e.message === "Error parsing field fields: Fields that start with '_' are not allowed"; } })];
|
|
242
|
+
case 2:
|
|
243
|
+
_a.sent();
|
|
244
|
+
return [2 /*return*/];
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
}); };
|
|
237
248
|
var filterTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
238
249
|
var enduser, otherEnduser;
|
|
239
250
|
return __generator(this, function (_a) {
|
|
@@ -247,38 +258,46 @@ var filterTests = function () { return __awaiter(void 0, void 0, void 0, functio
|
|
|
247
258
|
return [4 /*yield*/, 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; } })];
|
|
248
259
|
case 3:
|
|
249
260
|
_a.sent();
|
|
250
|
-
return [4 /*yield*/, async_test("find enduser by
|
|
261
|
+
return [4 /*yield*/, 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; } })];
|
|
251
262
|
case 4:
|
|
252
263
|
_a.sent();
|
|
253
|
-
return [4 /*yield*/, async_test("
|
|
264
|
+
return [4 /*yield*/, async_test("find enduser by _exists filter (findOne)",
|
|
265
|
+
// () => sdk.api.endusers.getOne({ fname: { _exists: true } }),
|
|
266
|
+
function () { return sdk.api.endusers.getOne({ fname: { _exists: true } }); }, { onResult: function (e) { return e.id === enduser.id; } })];
|
|
254
267
|
case 5:
|
|
255
268
|
_a.sent();
|
|
256
|
-
return [4 /*yield*/, async_test("
|
|
269
|
+
return [4 /*yield*/, 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; } })];
|
|
257
270
|
case 6:
|
|
258
271
|
_a.sent();
|
|
259
|
-
return [4 /*yield*/, async_test("
|
|
272
|
+
return [4 /*yield*/, 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; } })];
|
|
260
273
|
case 7:
|
|
261
274
|
_a.sent();
|
|
262
|
-
return [4 /*yield*/, async_test("nothing found
|
|
275
|
+
return [4 /*yield*/, 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; } })];
|
|
263
276
|
case 8:
|
|
264
277
|
_a.sent();
|
|
265
|
-
return [4 /*yield*/, async_test("find enduser by
|
|
278
|
+
return [4 /*yield*/, 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; } })];
|
|
266
279
|
case 9:
|
|
267
280
|
_a.sent();
|
|
268
|
-
return [4 /*yield*/, async_test("nothing found by
|
|
281
|
+
return [4 /*yield*/, 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; } })];
|
|
269
282
|
case 10:
|
|
270
283
|
_a.sent();
|
|
271
|
-
return [4 /*yield*/, async_test("find enduser by compound nested filter
|
|
284
|
+
return [4 /*yield*/, 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; } })];
|
|
272
285
|
case 11:
|
|
273
286
|
_a.sent();
|
|
274
|
-
return [4 /*yield*/, async_test("nothing found
|
|
287
|
+
return [4 /*yield*/, 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; } })];
|
|
275
288
|
case 12:
|
|
276
289
|
_a.sent();
|
|
277
|
-
return [4 /*yield*/, sdk.api.endusers.
|
|
290
|
+
return [4 /*yield*/, 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; } })];
|
|
278
291
|
case 13:
|
|
279
292
|
_a.sent();
|
|
280
|
-
return [4 /*yield*/, sdk.api.endusers.
|
|
293
|
+
return [4 /*yield*/, 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; } })];
|
|
281
294
|
case 14:
|
|
295
|
+
_a.sent();
|
|
296
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
297
|
+
case 15:
|
|
298
|
+
_a.sent();
|
|
299
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(otherEnduser.id)];
|
|
300
|
+
case 16:
|
|
282
301
|
_a.sent();
|
|
283
302
|
return [2 /*return*/];
|
|
284
303
|
}
|
|
@@ -316,40 +335,50 @@ var updatesTests = function () { return __awaiter(void 0, void 0, void 0, functi
|
|
|
316
335
|
});
|
|
317
336
|
}); };
|
|
318
337
|
var generateEnduserAuthTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
319
|
-
var e, _a, authToken, enduser, isAuthenticated;
|
|
320
|
-
return __generator(this, function (
|
|
321
|
-
switch (
|
|
338
|
+
var externalId, e, _a, authToken, enduser, isAuthenticated, _b, authTokenUID, enduser2, _c;
|
|
339
|
+
return __generator(this, function (_d) {
|
|
340
|
+
switch (_d.label) {
|
|
322
341
|
case 0:
|
|
323
342
|
log_header("Generated Enduser authToken Tests");
|
|
324
|
-
|
|
343
|
+
externalId = '1029f9v9sjd0as';
|
|
344
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'generated@tellescope.com', phone: '+15555555555', externalId: externalId })];
|
|
325
345
|
case 1:
|
|
326
|
-
e =
|
|
346
|
+
e = _d.sent();
|
|
327
347
|
return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: e.id })];
|
|
328
348
|
case 2:
|
|
329
|
-
_a =
|
|
349
|
+
_a = _d.sent(), authToken = _a.authToken, enduser = _a.enduser;
|
|
330
350
|
assert(!!authToken && !!enduser, 'invalid returned values', 'Generate authToken and get enduser');
|
|
331
351
|
return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser.id, authToken: authToken })];
|
|
332
352
|
case 3:
|
|
333
|
-
isAuthenticated = (
|
|
353
|
+
isAuthenticated = (_d.sent()).isAuthenticated;
|
|
334
354
|
assert(isAuthenticated, 'invalid authToken generated for enduser', 'Generate authToken for enduser is valid');
|
|
335
|
-
return [4 /*yield*/,
|
|
355
|
+
return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId })];
|
|
336
356
|
case 4:
|
|
337
|
-
_b.sent();
|
|
338
|
-
|
|
357
|
+
_b = _d.sent(), authTokenUID = _b.authToken, enduser2 = _b.enduser;
|
|
358
|
+
assert(!!authTokenUID && !!enduser2, 'invalid returned values eid', 'Generate authToken and get enduser eid');
|
|
359
|
+
_c = assert;
|
|
360
|
+
return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser2.id, authToken: authTokenUID })];
|
|
339
361
|
case 5:
|
|
340
|
-
|
|
341
|
-
|
|
362
|
+
_c.apply(void 0, [(_d.sent()).isAuthenticated,
|
|
363
|
+
'invalid authToken generated for enduser', 'Generate authToken for enduser is valid']);
|
|
364
|
+
return [4 /*yield*/, async_test("auth by externalId", function () { return sdk.api.endusers.generate_auth_token({ externalId: e.externalId }); }, passOnVoid)];
|
|
342
365
|
case 6:
|
|
343
|
-
|
|
344
|
-
return [4 /*yield*/, async_test("auth by
|
|
366
|
+
_d.sent();
|
|
367
|
+
return [4 /*yield*/, async_test("auth by email", function () { return sdk.api.endusers.generate_auth_token({ email: e.email }); }, passOnVoid)];
|
|
345
368
|
case 7:
|
|
346
|
-
|
|
347
|
-
return [4 /*yield*/, async_test("auth by
|
|
369
|
+
_d.sent();
|
|
370
|
+
return [4 /*yield*/, async_test("auth by phone", function () { return sdk.api.endusers.generate_auth_token({ phone: e.phone }); }, passOnVoid)];
|
|
348
371
|
case 8:
|
|
349
|
-
|
|
350
|
-
return [4 /*yield*/, sdk.api.endusers.
|
|
372
|
+
_d.sent();
|
|
373
|
+
return [4 /*yield*/, 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"; } })];
|
|
351
374
|
case 9:
|
|
352
|
-
|
|
375
|
+
_d.sent();
|
|
376
|
+
return [4 /*yield*/, 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"; } })];
|
|
377
|
+
case 10:
|
|
378
|
+
_d.sent();
|
|
379
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
380
|
+
case 11:
|
|
381
|
+
_d.sent();
|
|
353
382
|
return [2 /*return*/];
|
|
354
383
|
}
|
|
355
384
|
});
|
|
@@ -472,7 +501,7 @@ var run_generated_tests = function (_a) {
|
|
|
472
501
|
case 7:
|
|
473
502
|
_c.sent();
|
|
474
503
|
_c.label = 8;
|
|
475
|
-
case 8: return [4 /*yield*/, async_test("get-".concat(singularName), function () { return queries.getOne(_id
|
|
504
|
+
case 8: return [4 /*yield*/, async_test("get-".concat(singularName), function () { return queries.getOne(_id); }, { onResult: function (d) {
|
|
476
505
|
if (!(d === null || d === void 0 ? void 0 : d.id))
|
|
477
506
|
return false;
|
|
478
507
|
for (var k in instance) {
|
|
@@ -501,7 +530,7 @@ var run_generated_tests = function (_a) {
|
|
|
501
530
|
return [4 /*yield*/, async_test("delete-".concat(singularName), function () { return queries.deleteOne(_id); }, passOnVoid)];
|
|
502
531
|
case 11:
|
|
503
532
|
_c.sent();
|
|
504
|
-
return [4 /*yield*/, async_test("get-".concat(singularName, " (verify delete)"), function () { return queries.getOne(_id
|
|
533
|
+
return [4 /*yield*/, 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'; } })];
|
|
505
534
|
case 12:
|
|
506
535
|
_c.sent();
|
|
507
536
|
return [2 /*return*/];
|
|
@@ -926,23 +955,30 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
|
|
|
926
955
|
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, message: "Hello!" })];
|
|
927
956
|
case 3:
|
|
928
957
|
chat = _a.sent();
|
|
929
|
-
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, message: "Hello..." })
|
|
958
|
+
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, message: "Hello..." })
|
|
959
|
+
// await async_test(
|
|
960
|
+
// `get-chat (without filter)`,
|
|
961
|
+
// () => sdk.api.chats.getOne(chat.id),
|
|
962
|
+
// { shouldError: true, onError: () => true }
|
|
963
|
+
// )
|
|
964
|
+
];
|
|
930
965
|
case 4:
|
|
931
966
|
chat2 = _a.sent();
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
967
|
+
// await async_test(
|
|
968
|
+
// `get-chat (without filter)`,
|
|
969
|
+
// () => sdk.api.chats.getOne(chat.id),
|
|
970
|
+
// { shouldError: true, onError: () => true }
|
|
971
|
+
// )
|
|
935
972
|
return [4 /*yield*/, async_test("get-chats (without filter)", function () { return sdk.api.chats.getSome({}); }, { shouldError: true, onError: function () { return true; } })];
|
|
936
|
-
case
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
973
|
+
case 5:
|
|
974
|
+
// await async_test(
|
|
975
|
+
// `get-chat (without filter)`,
|
|
976
|
+
// () => sdk.api.chats.getOne(chat.id),
|
|
977
|
+
// { shouldError: true, onError: () => true }
|
|
978
|
+
// )
|
|
940
979
|
_a.sent();
|
|
941
980
|
return [4 /*yield*/, 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; } })];
|
|
942
|
-
case
|
|
943
|
-
_a.sent();
|
|
944
|
-
return [4 /*yield*/, 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'; } })];
|
|
945
|
-
case 9:
|
|
981
|
+
case 6:
|
|
946
982
|
_a.sent();
|
|
947
983
|
return [4 /*yield*/, 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'; } })
|
|
948
984
|
// currently disabled endpoint altogether
|
|
@@ -952,7 +988,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
|
|
|
952
988
|
// { shouldError: true, onError: e => e.message === 'You do not have permission to access this resource' }
|
|
953
989
|
// )
|
|
954
990
|
];
|
|
955
|
-
case
|
|
991
|
+
case 7:
|
|
956
992
|
_a.sent();
|
|
957
993
|
// currently disabled endpoint altogether
|
|
958
994
|
// await async_test(
|
|
@@ -968,7 +1004,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
|
|
|
968
1004
|
// { shouldError: true, onError: e => e.message === 'Error parsing field updates: roomId is not valid for updates' }
|
|
969
1005
|
// )
|
|
970
1006
|
];
|
|
971
|
-
case
|
|
1007
|
+
case 8:
|
|
972
1008
|
// currently disabled endpoint altogether
|
|
973
1009
|
// await async_test(
|
|
974
1010
|
// `update-chat not allowed`,
|
|
@@ -983,7 +1019,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
|
|
|
983
1019
|
// { shouldError: true, onError: e => e.message === 'Error parsing field updates: roomId is not valid for updates' }
|
|
984
1020
|
// )
|
|
985
1021
|
return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(room.id)];
|
|
986
|
-
case
|
|
1022
|
+
case 9:
|
|
987
1023
|
// currently disabled endpoint altogether
|
|
988
1024
|
// await async_test(
|
|
989
1025
|
// `update-chat can't update roomId`,
|
|
@@ -992,51 +1028,51 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
|
|
|
992
1028
|
// )
|
|
993
1029
|
_a.sent();
|
|
994
1030
|
return [4 /*yield*/, wait(undefined, 25)];
|
|
995
|
-
case
|
|
1031
|
+
case 10:
|
|
996
1032
|
_a.sent();
|
|
997
|
-
return [4 /*yield*/, async_test("get-chat (deleted as dependency of room 1)", function () { return sdk.api.chats.getOne(chat.id
|
|
998
|
-
case
|
|
1033
|
+
return [4 /*yield*/, 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'; } })];
|
|
1034
|
+
case 11:
|
|
999
1035
|
_a.sent();
|
|
1000
|
-
return [4 /*yield*/, async_test("get-chat (deleted as dependency of room 2)", function () { return sdk.api.chats.getOne(chat2.id
|
|
1001
|
-
case
|
|
1036
|
+
return [4 /*yield*/, 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'; } })];
|
|
1037
|
+
case 12:
|
|
1002
1038
|
_a.sent();
|
|
1003
1039
|
return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId, sdk2.userInfo.id] })];
|
|
1004
|
-
case
|
|
1040
|
+
case 13:
|
|
1005
1041
|
sharedRoom = _a.sent();
|
|
1006
1042
|
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: sharedRoom.id, message: "Hello!", })];
|
|
1007
|
-
case
|
|
1043
|
+
case 14:
|
|
1008
1044
|
sharedChat = _a.sent();
|
|
1009
1045
|
return [4 /*yield*/, sdk2.api.chats.createOne({ roomId: sharedRoom.id, message: "Hello there!", })];
|
|
1010
|
-
case
|
|
1046
|
+
case 15:
|
|
1011
1047
|
sharedChat2 = _a.sent();
|
|
1012
|
-
return [4 /*yield*/, async_test("get-chat (shared, user1)", function () { return sdk.api.chats.getOne(sharedChat.id
|
|
1013
|
-
case
|
|
1048
|
+
return [4 /*yield*/, async_test("get-chat (shared, user1)", function () { return sdk.api.chats.getOne(sharedChat.id); }, { onResult: function (r) { return r.id === sharedChat.id; } })];
|
|
1049
|
+
case 16:
|
|
1014
1050
|
_a.sent();
|
|
1015
|
-
return [4 /*yield*/, async_test("get-chat (shared, user2)", function () { return sdk2.api.chats.getOne(sharedChat.id
|
|
1016
|
-
case
|
|
1051
|
+
return [4 /*yield*/, async_test("get-chat (shared, user2)", function () { return sdk2.api.chats.getOne(sharedChat.id); }, { onResult: function (r) { return r.id === sharedChat.id; } })];
|
|
1052
|
+
case 17:
|
|
1017
1053
|
_a.sent();
|
|
1018
1054
|
return [4 /*yield*/, 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; }); } })];
|
|
1019
|
-
case
|
|
1055
|
+
case 18:
|
|
1020
1056
|
_a.sent();
|
|
1021
1057
|
return [4 /*yield*/, 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; }); } })
|
|
1022
1058
|
// test setNull dependency
|
|
1023
1059
|
];
|
|
1024
|
-
case
|
|
1060
|
+
case 19:
|
|
1025
1061
|
_a.sent();
|
|
1026
1062
|
return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId] })];
|
|
1027
|
-
case
|
|
1063
|
+
case 20:
|
|
1028
1064
|
roomNull = _a.sent();
|
|
1029
1065
|
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomNull.id, message: "Hello!" })];
|
|
1030
|
-
case
|
|
1066
|
+
case 21:
|
|
1031
1067
|
chatNull = _a.sent();
|
|
1032
1068
|
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomNull.id, message: "Hello...", replyId: chatNull.id })];
|
|
1033
|
-
case
|
|
1069
|
+
case 22:
|
|
1034
1070
|
chat2Null = _a.sent();
|
|
1035
1071
|
return [4 /*yield*/, sdk.api.chats.deleteOne(chatNull.id)];
|
|
1036
|
-
case
|
|
1072
|
+
case 23:
|
|
1037
1073
|
_a.sent();
|
|
1038
|
-
return [4 /*yield*/, async_test("get-chat (setNull working)", function () { return sdk.api.chats.getOne(chat2Null.id
|
|
1039
|
-
case
|
|
1074
|
+
return [4 /*yield*/, async_test("get-chat (setNull working)", function () { return sdk.api.chats.getOne(chat2Null.id); }, { onResult: function (c) { return c.replyId === null; } })];
|
|
1075
|
+
case 24:
|
|
1040
1076
|
_a.sent();
|
|
1041
1077
|
return [2 /*return*/];
|
|
1042
1078
|
}
|
|
@@ -1066,38 +1102,40 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
1066
1102
|
case 0:
|
|
1067
1103
|
endpoint = url_safe_path(n);
|
|
1068
1104
|
model = schema[n];
|
|
1105
|
+
if (n === 'webhooks')
|
|
1106
|
+
return [2 /*return*/, "continue"]; // no default endpoints implemented
|
|
1069
1107
|
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];
|
|
1070
|
-
return [4 /*yield*/, 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'; } })];
|
|
1108
|
+
return [4 /*yield*/, 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'; } })];
|
|
1071
1109
|
case 1:
|
|
1072
1110
|
_k.sent();
|
|
1073
1111
|
_k.label = 2;
|
|
1074
1112
|
case 2:
|
|
1075
1113
|
if (!(!((_d = model.enduserActions) === null || _d === void 0 ? void 0 : _d.readMany) && (model.defaultActions.readMany || model.customActions.readMany))) return [3 /*break*/, 4];
|
|
1076
|
-
return [4 /*yield*/, async_test("no-enduser-access getSome (".concat(endpoint, ")"), function () { return enduserSDK.GET("/v1/".concat(endpoint)); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated'; } })];
|
|
1114
|
+
return [4 /*yield*/, 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'; } })];
|
|
1077
1115
|
case 3:
|
|
1078
1116
|
_k.sent();
|
|
1079
1117
|
_k.label = 4;
|
|
1080
1118
|
case 4:
|
|
1081
1119
|
if (!(!((_e = model.enduserActions) === null || _e === void 0 ? void 0 : _e.create) && (model.defaultActions.create || model.customActions.create))) return [3 /*break*/, 6];
|
|
1082
|
-
return [4 /*yield*/, 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'; } })];
|
|
1120
|
+
return [4 /*yield*/, 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'; } })];
|
|
1083
1121
|
case 5:
|
|
1084
1122
|
_k.sent();
|
|
1085
1123
|
_k.label = 6;
|
|
1086
1124
|
case 6:
|
|
1087
1125
|
if (!(!((_f = model.enduserActions) === null || _f === void 0 ? void 0 : _f.createMany) && (model.defaultActions.createMany || model.customActions.createMany))) return [3 /*break*/, 8];
|
|
1088
|
-
return [4 /*yield*/, async_test("no-enduser-access createMany (".concat(endpoint, ")"), function () { return enduserSDK.POST("/v1/".concat(endpoint)); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated'; } })];
|
|
1126
|
+
return [4 /*yield*/, 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'; } })];
|
|
1089
1127
|
case 7:
|
|
1090
1128
|
_k.sent();
|
|
1091
1129
|
_k.label = 8;
|
|
1092
1130
|
case 8:
|
|
1093
1131
|
if (!(!((_g = model.enduserActions) === null || _g === void 0 ? void 0 : _g.update) && (model.defaultActions.update || model.customActions.update))) return [3 /*break*/, 10];
|
|
1094
|
-
return [4 /*yield*/, 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'; } })];
|
|
1132
|
+
return [4 /*yield*/, 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'; } })];
|
|
1095
1133
|
case 9:
|
|
1096
1134
|
_k.sent();
|
|
1097
1135
|
_k.label = 10;
|
|
1098
1136
|
case 10:
|
|
1099
1137
|
if (!(!((_h = model.enduserActions) === null || _h === void 0 ? void 0 : _h.delete) && (model.defaultActions.delete || model.customActions.delete))) return [3 /*break*/, 12];
|
|
1100
|
-
return [4 /*yield*/, 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'; } })];
|
|
1138
|
+
return [4 /*yield*/, 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'; } })];
|
|
1101
1139
|
case 11:
|
|
1102
1140
|
_k.sent();
|
|
1103
1141
|
_k.label = 12;
|
|
@@ -1192,55 +1230,60 @@ var tests = {
|
|
|
1192
1230
|
tickets: function () { },
|
|
1193
1231
|
meetings: function () { },
|
|
1194
1232
|
notes: function () { },
|
|
1233
|
+
webhooks: function () { },
|
|
1195
1234
|
};
|
|
1196
1235
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1197
1236
|
var err_1, n, _a, _b, _i, returnValidation, t, _c, _d, _e, err_2;
|
|
1198
1237
|
var _f, _g;
|
|
1199
1238
|
return __generator(this, function (_h) {
|
|
1200
1239
|
switch (_h.label) {
|
|
1201
|
-
case 0:
|
|
1202
|
-
case 1:
|
|
1203
|
-
_h.sent();
|
|
1240
|
+
case 0:
|
|
1204
1241
|
log_header("API");
|
|
1205
|
-
_h.label =
|
|
1242
|
+
_h.label = 1;
|
|
1243
|
+
case 1:
|
|
1244
|
+
_h.trys.push([1, 11, , 12]);
|
|
1245
|
+
return [4 /*yield*/, sdk.authenticate(email, password)];
|
|
1206
1246
|
case 2:
|
|
1207
|
-
_h.
|
|
1247
|
+
_h.sent();
|
|
1208
1248
|
return [4 /*yield*/, setup_tests()];
|
|
1209
1249
|
case 3:
|
|
1210
1250
|
_h.sent();
|
|
1211
1251
|
return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
|
|
1212
1252
|
case 4:
|
|
1213
1253
|
_h.sent(); // should come right after setup tests
|
|
1214
|
-
return [4 /*yield*/,
|
|
1254
|
+
return [4 /*yield*/, badInputTests()];
|
|
1215
1255
|
case 5:
|
|
1216
1256
|
_h.sent();
|
|
1217
|
-
return [4 /*yield*/,
|
|
1257
|
+
return [4 /*yield*/, filterTests()];
|
|
1218
1258
|
case 6:
|
|
1219
1259
|
_h.sent();
|
|
1220
|
-
return [4 /*yield*/,
|
|
1260
|
+
return [4 /*yield*/, updatesTests()];
|
|
1221
1261
|
case 7:
|
|
1222
1262
|
_h.sent();
|
|
1223
|
-
return [4 /*yield*/,
|
|
1263
|
+
return [4 /*yield*/, threadKeyTests()];
|
|
1224
1264
|
case 8:
|
|
1225
1265
|
_h.sent();
|
|
1226
|
-
return [4 /*yield*/,
|
|
1266
|
+
return [4 /*yield*/, enduserAccessTests()];
|
|
1227
1267
|
case 9:
|
|
1228
1268
|
_h.sent();
|
|
1229
|
-
return [
|
|
1269
|
+
return [4 /*yield*/, generateEnduserAuthTests()];
|
|
1230
1270
|
case 10:
|
|
1271
|
+
_h.sent();
|
|
1272
|
+
return [3 /*break*/, 12];
|
|
1273
|
+
case 11:
|
|
1231
1274
|
err_1 = _h.sent();
|
|
1232
1275
|
console.error("Failed during custom test");
|
|
1233
1276
|
console.error(err_1);
|
|
1234
1277
|
process.exit();
|
|
1235
|
-
return [3 /*break*/,
|
|
1236
|
-
case
|
|
1278
|
+
return [3 /*break*/, 12];
|
|
1279
|
+
case 12:
|
|
1237
1280
|
_a = [];
|
|
1238
1281
|
for (_b in schema)
|
|
1239
1282
|
_a.push(_b);
|
|
1240
1283
|
_i = 0;
|
|
1241
|
-
_h.label =
|
|
1242
|
-
case
|
|
1243
|
-
if (!(_i < _a.length)) return [3 /*break*/,
|
|
1284
|
+
_h.label = 13;
|
|
1285
|
+
case 13:
|
|
1286
|
+
if (!(_i < _a.length)) return [3 /*break*/, 16];
|
|
1244
1287
|
n = _a[_i];
|
|
1245
1288
|
returnValidation = (_g = (_f = schema[n].customActions) === null || _f === void 0 ? void 0 : _f.create) === null || _g === void 0 ? void 0 : _g.returns;
|
|
1246
1289
|
return [4 /*yield*/, run_generated_tests({
|
|
@@ -1251,37 +1294,37 @@ var tests = {
|
|
|
1251
1294
|
create: returnValidation,
|
|
1252
1295
|
}
|
|
1253
1296
|
})];
|
|
1254
|
-
case 13:
|
|
1255
|
-
_h.sent();
|
|
1256
|
-
_h.label = 14;
|
|
1257
1297
|
case 14:
|
|
1258
|
-
|
|
1259
|
-
|
|
1298
|
+
_h.sent();
|
|
1299
|
+
_h.label = 15;
|
|
1260
1300
|
case 15:
|
|
1301
|
+
_i++;
|
|
1302
|
+
return [3 /*break*/, 13];
|
|
1303
|
+
case 16:
|
|
1261
1304
|
_c = [];
|
|
1262
1305
|
for (_d in tests)
|
|
1263
1306
|
_c.push(_d);
|
|
1264
1307
|
_e = 0;
|
|
1265
|
-
_h.label = 16;
|
|
1266
|
-
case 16:
|
|
1267
|
-
if (!(_e < _c.length)) return [3 /*break*/, 21];
|
|
1268
|
-
t = _c[_e];
|
|
1269
1308
|
_h.label = 17;
|
|
1270
1309
|
case 17:
|
|
1271
|
-
|
|
1272
|
-
|
|
1310
|
+
if (!(_e < _c.length)) return [3 /*break*/, 22];
|
|
1311
|
+
t = _c[_e];
|
|
1312
|
+
_h.label = 18;
|
|
1273
1313
|
case 18:
|
|
1274
|
-
_h.
|
|
1275
|
-
return [
|
|
1314
|
+
_h.trys.push([18, 20, , 21]);
|
|
1315
|
+
return [4 /*yield*/, tests[t]()];
|
|
1276
1316
|
case 19:
|
|
1317
|
+
_h.sent();
|
|
1318
|
+
return [3 /*break*/, 21];
|
|
1319
|
+
case 20:
|
|
1277
1320
|
err_2 = _h.sent();
|
|
1278
1321
|
console.error("Error running test:");
|
|
1279
1322
|
console.error(err_2);
|
|
1280
|
-
return [3 /*break*/,
|
|
1281
|
-
case 20:
|
|
1282
|
-
_e++;
|
|
1283
|
-
return [3 /*break*/, 16];
|
|
1323
|
+
return [3 /*break*/, 21];
|
|
1284
1324
|
case 21:
|
|
1325
|
+
_e++;
|
|
1326
|
+
return [3 /*break*/, 17];
|
|
1327
|
+
case 22:
|
|
1285
1328
|
process.exit();
|
|
1286
1329
|
return [2 /*return*/];
|
|
1287
1330
|
}
|