@tellescope/sdk 0.0.31 → 0.0.35
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 +6 -1
- package/lib/cjs/enduser.d.ts.map +1 -1
- package/lib/cjs/enduser.js +4 -1
- package/lib/cjs/enduser.js.map +1 -1
- package/lib/cjs/sdk.d.ts +8 -3
- package/lib/cjs/sdk.d.ts.map +1 -1
- package/lib/cjs/sdk.js +3 -0
- package/lib/cjs/sdk.js.map +1 -1
- package/lib/cjs/session.d.ts.map +1 -1
- package/lib/cjs/session.js +1 -2
- package/lib/cjs/session.js.map +1 -1
- package/lib/cjs/tests/tests.js +152 -45
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/enduser.d.ts +7 -1
- package/lib/esm/enduser.d.ts.map +1 -1
- package/lib/esm/enduser.js +4 -1
- package/lib/esm/enduser.js.map +1 -1
- package/lib/esm/sdk.d.ts +8 -3
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/sdk.js +3 -0
- package/lib/esm/sdk.js.map +1 -1
- package/lib/esm/session.d.ts +1 -0
- package/lib/esm/session.d.ts.map +1 -1
- package/lib/esm/session.js +1 -2
- package/lib/esm/session.js.map +1 -1
- package/lib/esm/tests/tests.js +149 -45
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/enduser.ts +8 -1
- package/src/sdk.ts +11 -1
- package/src/session.ts +1 -2
- package/src/tests/tests.ts +113 -5
package/lib/cjs/tests/tests.js
CHANGED
|
@@ -65,8 +65,12 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
65
65
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
66
66
|
}
|
|
67
67
|
};
|
|
68
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
69
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
70
|
+
};
|
|
68
71
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
69
72
|
require('source-map-support').install();
|
|
73
|
+
var crypto_1 = __importDefault(require("crypto"));
|
|
70
74
|
var buffer = __importStar(require("buffer")); // only node >=15.7.0
|
|
71
75
|
var validation_1 = require("@tellescope/validation");
|
|
72
76
|
var sdk_1 = require("../sdk");
|
|
@@ -109,6 +113,7 @@ var voidResult = function () { return true; };
|
|
|
109
113
|
var passOnVoid = { shouldError: false, onResult: voidResult };
|
|
110
114
|
// const isNull = (d: any) => d === null
|
|
111
115
|
var setup_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
116
|
+
var uInfo, originalAuthToken;
|
|
112
117
|
return __generator(this, function (_a) {
|
|
113
118
|
switch (_a.label) {
|
|
114
119
|
case 0: return [4 /*yield*/, (0, testing_1.async_test)('test_online', sdk.test_online, { expectedResult: 'API V1 Online' })];
|
|
@@ -132,8 +137,15 @@ var setup_tests = function () { return __awaiter(void 0, void 0, void 0, functio
|
|
|
132
137
|
return [4 /*yield*/, (0, testing_1.async_test)('test_authenticated (re-authenticated)', sdk.test_authenticated, { expectedResult: 'Authenticated!' })];
|
|
133
138
|
case 7:
|
|
134
139
|
_a.sent();
|
|
135
|
-
|
|
140
|
+
uInfo = sdk.userInfo;
|
|
141
|
+
originalAuthToken = sdk.authToken;
|
|
142
|
+
return [4 /*yield*/, sdk.refresh_session()];
|
|
136
143
|
case 8:
|
|
144
|
+
_a.sent();
|
|
145
|
+
(0, testing_1.assert)(uInfo.id === sdk.userInfo.id, 'userInfo mismatch', 'userInfo id preserved after refresh');
|
|
146
|
+
(0, testing_1.assert)(!!originalAuthToken && !!sdk.authToken && sdk.authToken !== originalAuthToken, 'same authToken after refresh', 'authToken refresh');
|
|
147
|
+
return [4 /*yield*/, (0, testing_1.async_test)('reset_db', function () { return sdk.reset_db(); }, passOnVoid)];
|
|
148
|
+
case 9:
|
|
137
149
|
_a.sent();
|
|
138
150
|
return [2 /*return*/];
|
|
139
151
|
}
|
|
@@ -929,7 +941,7 @@ var sms_tests = function (queries) {
|
|
|
929
941
|
});
|
|
930
942
|
};
|
|
931
943
|
var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
932
|
-
var sdk2, room, emptyRoom;
|
|
944
|
+
var sdk2, email, password, enduser, room, verifyRoomDisplayInfo, emptyRoom;
|
|
933
945
|
return __generator(this, function (_a) {
|
|
934
946
|
switch (_a.label) {
|
|
935
947
|
case 0:
|
|
@@ -937,35 +949,87 @@ var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, fun
|
|
|
937
949
|
return [4 /*yield*/, sdk2.authenticate(email2, password2)];
|
|
938
950
|
case 1:
|
|
939
951
|
_a.sent();
|
|
940
|
-
|
|
952
|
+
email = 'enduser@tellescope.com', password = 'enduserPassword!';
|
|
953
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ email: email })];
|
|
941
954
|
case 2:
|
|
955
|
+
enduser = _a.sent();
|
|
956
|
+
return [4 /*yield*/, sdk.api.endusers.set_password({ id: enduser.id, password: password }).catch(console.error)];
|
|
957
|
+
case 3:
|
|
958
|
+
_a.sent();
|
|
959
|
+
return [4 /*yield*/, enduserSDK.authenticate(email, password).catch(console.error)];
|
|
960
|
+
case 4:
|
|
961
|
+
_a.sent();
|
|
962
|
+
return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId], enduserIds: [enduserSDK.userInfo.id] })];
|
|
963
|
+
case 5:
|
|
942
964
|
room = _a.sent();
|
|
943
965
|
return [4 /*yield*/, (0, testing_1.async_test)("get-chat-room (not a user)", function () { return sdk2.api.chat_rooms.getOne(room.id); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a record for the given id"; } })];
|
|
944
|
-
case
|
|
966
|
+
case 6:
|
|
967
|
+
_a.sent();
|
|
968
|
+
return [4 /*yield*/, (0, testing_1.async_test)("user_display_info for room (not a user)", function () { return sdk2.api.chat_rooms.display_info({ id: room.id }); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a record for the given id"; } })];
|
|
969
|
+
case 7:
|
|
970
|
+
_a.sent();
|
|
971
|
+
verifyRoomDisplayInfo = function (info) {
|
|
972
|
+
if (!info)
|
|
973
|
+
return false;
|
|
974
|
+
if (typeof info !== 'object')
|
|
975
|
+
return false;
|
|
976
|
+
if (Object.keys(info).length !== 2)
|
|
977
|
+
return false;
|
|
978
|
+
if (!info[sdk.userInfo.id])
|
|
979
|
+
return false;
|
|
980
|
+
if (!info[enduserSDK.userInfo.id])
|
|
981
|
+
return false;
|
|
982
|
+
var _a = [info[sdk.userInfo.id], info[enduserSDK.userInfo.id]], user = _a[0], enduser = _a[1];
|
|
983
|
+
if (!(user.id === sdk.userInfo.id &&
|
|
984
|
+
user.fname === sdk.userInfo.fname &&
|
|
985
|
+
user.lname === sdk.userInfo.lname &&
|
|
986
|
+
user.avatar === sdk.userInfo.avatar &&
|
|
987
|
+
!!user.createdAt &&
|
|
988
|
+
!!user.lastActive &&
|
|
989
|
+
!!user.lastLogout))
|
|
990
|
+
return false;
|
|
991
|
+
if (!(enduser.id === enduserSDK.userInfo.id &&
|
|
992
|
+
enduser.fname === enduserSDK.userInfo.fname &&
|
|
993
|
+
enduser.lname === enduserSDK.userInfo.lname &&
|
|
994
|
+
enduser.avatar === enduserSDK.userInfo.avatar &&
|
|
995
|
+
!!enduser.createdAt &&
|
|
996
|
+
!!enduser.lastActive &&
|
|
997
|
+
!!enduser.lastLogout))
|
|
998
|
+
return false;
|
|
999
|
+
return true;
|
|
1000
|
+
};
|
|
1001
|
+
return [4 /*yield*/, (0, testing_1.async_test)("user_display_info for room (for user)", function () { return sdk.api.chat_rooms.display_info({ id: room.id }); }, { onResult: function (r) { return r.id === room.id && verifyRoomDisplayInfo(r.display_info); } })];
|
|
1002
|
+
case 8:
|
|
1003
|
+
_a.sent();
|
|
1004
|
+
return [4 /*yield*/, (0, testing_1.async_test)("user_display_info for room (for enduser)", function () { return enduserSDK.api.chat_rooms.display_info({ id: room.id }); }, { onResult: function (r) { return r.id === room.id && verifyRoomDisplayInfo(r.display_info); } })];
|
|
1005
|
+
case 9:
|
|
945
1006
|
_a.sent();
|
|
946
1007
|
return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(room.id)];
|
|
947
|
-
case
|
|
1008
|
+
case 10:
|
|
948
1009
|
_a.sent();
|
|
949
1010
|
return [4 /*yield*/, sdk.api.chat_rooms.createOne({})];
|
|
950
|
-
case
|
|
1011
|
+
case 11:
|
|
951
1012
|
emptyRoom = _a.sent();
|
|
952
1013
|
return [4 /*yield*/, (0, testing_1.async_test)("get-chat-room (creator can access, even when not in userIds)", function () { return sdk.api.chat_rooms.getOne(emptyRoom.id); }, { onResult: function (r) { return r.id === emptyRoom.id; } })];
|
|
953
|
-
case
|
|
1014
|
+
case 12:
|
|
954
1015
|
_a.sent();
|
|
955
1016
|
return [4 /*yield*/, (0, testing_1.async_test)("get-chat-room (not in empty room)", function () { return sdk2.api.chat_rooms.getOne(emptyRoom.id); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a record for the given id"; } })];
|
|
956
|
-
case
|
|
1017
|
+
case 13:
|
|
957
1018
|
_a.sent();
|
|
958
1019
|
return [4 /*yield*/, (0, testing_1.async_test)("join-room", function () { return sdk2.api.chat_rooms.join_room({ id: emptyRoom.id }); }, { onResult: function (_a) {
|
|
959
1020
|
var room = _a.room;
|
|
960
1021
|
return room.id === emptyRoom.id;
|
|
961
1022
|
} })];
|
|
962
|
-
case
|
|
1023
|
+
case 14:
|
|
963
1024
|
_a.sent();
|
|
964
1025
|
return [4 /*yield*/, (0, testing_1.async_test)("get-chat-room (join successful)", function () { return sdk2.api.chat_rooms.getOne(emptyRoom.id); }, { onResult: function (r) { return r.id === emptyRoom.id; } })];
|
|
965
|
-
case
|
|
1026
|
+
case 15:
|
|
966
1027
|
_a.sent();
|
|
967
1028
|
return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(emptyRoom.id)];
|
|
968
|
-
case
|
|
1029
|
+
case 16:
|
|
1030
|
+
_a.sent();
|
|
1031
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
1032
|
+
case 17:
|
|
969
1033
|
_a.sent();
|
|
970
1034
|
return [2 /*return*/];
|
|
971
1035
|
}
|
|
@@ -1110,7 +1174,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
|
|
|
1110
1174
|
});
|
|
1111
1175
|
}); };
|
|
1112
1176
|
var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1113
|
-
var email, password, enduser, enduser2, _loop_1, _a, _b, _i, n, ticketAccessible, ticketInaccessible;
|
|
1177
|
+
var email, password, enduser, enduser2, uInfo, originalAuthToken, _loop_1, _a, _b, _i, n, ticketAccessible, ticketInaccessible;
|
|
1114
1178
|
var _c, _d, _e, _f, _g, _h;
|
|
1115
1179
|
return __generator(this, function (_j) {
|
|
1116
1180
|
switch (_j.label) {
|
|
@@ -1129,8 +1193,18 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
1129
1193
|
return [4 /*yield*/, enduserSDK.authenticate(email, password).catch(console.error)];
|
|
1130
1194
|
case 4:
|
|
1131
1195
|
_j.sent();
|
|
1132
|
-
return [4 /*yield*/, (0, testing_1.
|
|
1196
|
+
return [4 /*yield*/, (0, testing_1.wait)(undefined, 1000)]; // wait so that refresh_session generates a new authToken (different timestamp)
|
|
1133
1197
|
case 5:
|
|
1198
|
+
_j.sent(); // wait so that refresh_session generates a new authToken (different timestamp)
|
|
1199
|
+
uInfo = enduserSDK.userInfo;
|
|
1200
|
+
originalAuthToken = enduserSDK.authToken;
|
|
1201
|
+
return [4 /*yield*/, enduserSDK.refresh_session()];
|
|
1202
|
+
case 6:
|
|
1203
|
+
_j.sent();
|
|
1204
|
+
(0, testing_1.assert)(uInfo.id === enduserSDK.userInfo.id, 'userInfo mismatch', 'userInfo id preserved after refresh');
|
|
1205
|
+
(0, testing_1.assert)(!!originalAuthToken && !!enduserSDK.authToken && enduserSDK.authToken !== originalAuthToken, 'same authToken after refresh', 'authToken refresh');
|
|
1206
|
+
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access for different businessId", function () { return enduserSDKDifferentBusinessId.authenticate(email, password); }, { shouldError: true, onError: function (e) { return (e === null || e === void 0 ? void 0 : e.message) === "Could not find a corresponding account"; } })];
|
|
1207
|
+
case 7:
|
|
1134
1208
|
_j.sent();
|
|
1135
1209
|
_loop_1 = function (n) {
|
|
1136
1210
|
var endpoint, model;
|
|
@@ -1184,82 +1258,97 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
1184
1258
|
for (_b in schema_1.schema)
|
|
1185
1259
|
_a.push(_b);
|
|
1186
1260
|
_i = 0;
|
|
1187
|
-
_j.label =
|
|
1188
|
-
case
|
|
1189
|
-
if (!(_i < _a.length)) return [3 /*break*/,
|
|
1261
|
+
_j.label = 8;
|
|
1262
|
+
case 8:
|
|
1263
|
+
if (!(_i < _a.length)) return [3 /*break*/, 11];
|
|
1190
1264
|
n = _a[_i];
|
|
1191
1265
|
return [5 /*yield**/, _loop_1(n)];
|
|
1192
|
-
case
|
|
1266
|
+
case 9:
|
|
1193
1267
|
_j.sent();
|
|
1194
|
-
_j.label =
|
|
1195
|
-
case 8:
|
|
1196
|
-
_i++;
|
|
1197
|
-
return [3 /*break*/, 6];
|
|
1198
|
-
case 9: return [4 /*yield*/, (0, testing_1.async_test)("enduser can update self", function () { return enduserSDK.api.endusers.updateOne(enduser.id, { fname: "Sebastian", lname: "Coates" }); }, { onResult: function (e) { return e.id === enduser.id && e.fname === 'Sebastian' && e.lname === "Coates"; } })];
|
|
1268
|
+
_j.label = 10;
|
|
1199
1269
|
case 10:
|
|
1270
|
+
_i++;
|
|
1271
|
+
return [3 /*break*/, 8];
|
|
1272
|
+
case 11: return [4 /*yield*/, (0, testing_1.async_test)("enduser can update self", function () { return enduserSDK.api.endusers.updateOne(enduser.id, { fname: "Sebastian", lname: "Coates" }); }, { onResult: function (e) { return e.id === enduser.id && e.fname === 'Sebastian' && e.lname === "Coates"; } })];
|
|
1273
|
+
case 12:
|
|
1200
1274
|
_j.sent();
|
|
1201
1275
|
return [4 /*yield*/, (0, testing_1.async_test)("enduser can't update other enduser", function () { return enduserSDK.api.endusers.updateOne(enduser2.id, { fname: "Shouldn't Work" }); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a record for the given id"; } })];
|
|
1202
|
-
case
|
|
1276
|
+
case 13:
|
|
1203
1277
|
_j.sent();
|
|
1204
1278
|
return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: enduser.id, title: "Accessible ticket" })];
|
|
1205
|
-
case
|
|
1279
|
+
case 14:
|
|
1206
1280
|
ticketAccessible = _j.sent();
|
|
1207
1281
|
return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: constants_1.PLACEHOLDER_ID, title: "Inaccessible ticket" })];
|
|
1208
|
-
case
|
|
1282
|
+
case 15:
|
|
1209
1283
|
ticketInaccessible = _j.sent();
|
|
1210
1284
|
return [4 /*yield*/, (0, testing_1.async_test)("enduser cannot create ticket for another enduser", function () { return enduserSDK.api.tickets.createOne({ enduserId: sdk.userInfo.id, title: "Error on Creation" }); }, { shouldError: true, onError: function (e) { return e.message === "enduserId does not match creator id for enduser session"; } })];
|
|
1211
|
-
case
|
|
1285
|
+
case 16:
|
|
1212
1286
|
_j.sent();
|
|
1213
1287
|
return [4 /*yield*/, (0, testing_1.async_test)("enduser-access default, no access constraints, matching enduserId", function () { return enduserSDK.api.tickets.getOne(ticketAccessible.id); }, { onResult: function (t) { return t.id === ticketAccessible.id; } })];
|
|
1214
|
-
case
|
|
1288
|
+
case 17:
|
|
1215
1289
|
_j.sent();
|
|
1216
1290
|
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access default, no access constraints, non-matching enduserId", function () { return enduserSDK.api.tickets.getOne(ticketInaccessible.id); }, { shouldError: true, onError: function (e) { return e.message.startsWith("Could not find"); } })];
|
|
1217
|
-
case
|
|
1291
|
+
case 18:
|
|
1218
1292
|
_j.sent();
|
|
1219
1293
|
return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access default, no access constraints, get many", function () { return enduserSDK.api.tickets.getSome(); }, { onResult: function (ts) { return ts.length === 1; } })];
|
|
1220
|
-
case
|
|
1294
|
+
case 19:
|
|
1221
1295
|
_j.sent();
|
|
1222
1296
|
return [4 /*yield*/, sdk.api.tickets.deleteOne(ticketAccessible.id)];
|
|
1223
|
-
case
|
|
1297
|
+
case 20:
|
|
1224
1298
|
_j.sent();
|
|
1225
1299
|
return [4 /*yield*/, sdk.api.tickets.deleteOne(ticketInaccessible.id)];
|
|
1226
|
-
case
|
|
1300
|
+
case 21:
|
|
1227
1301
|
_j.sent();
|
|
1228
1302
|
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
1229
|
-
case
|
|
1303
|
+
case 22:
|
|
1230
1304
|
_j.sent();
|
|
1231
1305
|
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser2.id)];
|
|
1232
|
-
case
|
|
1306
|
+
case 23:
|
|
1233
1307
|
_j.sent();
|
|
1234
1308
|
return [2 /*return*/];
|
|
1235
1309
|
}
|
|
1236
1310
|
});
|
|
1237
1311
|
}); };
|
|
1238
1312
|
var files_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1239
|
-
var buff, _a, presignedUpload, file, downloadURL, downloaded, cachedURL;
|
|
1313
|
+
var enduser, buff, _a, presignedUpload, file, downloadURL, downloaded, cachedURL, urlForEnduser;
|
|
1240
1314
|
return __generator(this, function (_b) {
|
|
1241
1315
|
switch (_b.label) {
|
|
1242
|
-
case 0:
|
|
1316
|
+
case 0: return [4 /*yield*/, sdk.api.endusers.createOne({ email: email })];
|
|
1317
|
+
case 1:
|
|
1318
|
+
enduser = _b.sent();
|
|
1319
|
+
return [4 /*yield*/, sdk.api.endusers.set_password({ id: enduser.id, password: password }).catch(console.error)];
|
|
1320
|
+
case 2:
|
|
1321
|
+
_b.sent();
|
|
1322
|
+
return [4 /*yield*/, enduserSDK.authenticate(email, password).catch(console.error)];
|
|
1323
|
+
case 3:
|
|
1324
|
+
_b.sent();
|
|
1243
1325
|
buff = buffer.Buffer.from('test file data');
|
|
1244
1326
|
return [4 /*yield*/, sdk.api.files.prepare_file_upload({
|
|
1245
1327
|
name: 'Test File', size: buff.byteLength, type: 'text/plain'
|
|
1246
1328
|
})];
|
|
1247
|
-
case
|
|
1329
|
+
case 4:
|
|
1248
1330
|
_a = _b.sent(), presignedUpload = _a.presignedUpload, file = _a.file;
|
|
1249
1331
|
return [4 /*yield*/, sdk.UPLOAD(presignedUpload, buff)];
|
|
1250
|
-
case
|
|
1332
|
+
case 5:
|
|
1251
1333
|
_b.sent();
|
|
1252
1334
|
return [4 /*yield*/, sdk.api.files.file_download_URL({ secureName: file.secureName })];
|
|
1253
|
-
case
|
|
1335
|
+
case 6:
|
|
1254
1336
|
downloadURL = (_b.sent()).downloadURL;
|
|
1255
1337
|
return [4 /*yield*/, sdk.DOWNLOAD(downloadURL)];
|
|
1256
|
-
case
|
|
1338
|
+
case 7:
|
|
1257
1339
|
downloaded = _b.sent();
|
|
1258
1340
|
(0, testing_1.assert)(downloaded === buff.toString(), 'downloaded file does not match uploaded file', 'upload, download comparison');
|
|
1259
1341
|
return [4 /*yield*/, sdk.api.files.file_download_URL({ secureName: file.secureName })];
|
|
1260
|
-
case
|
|
1342
|
+
case 8:
|
|
1261
1343
|
cachedURL = (_b.sent()).downloadURL;
|
|
1262
1344
|
(0, testing_1.assert)(downloadURL === cachedURL, 'cache download url failed', 'download url cache');
|
|
1345
|
+
return [4 /*yield*/, enduserSDK.api.files.file_download_URL({ secureName: file.secureName })];
|
|
1346
|
+
case 9:
|
|
1347
|
+
urlForEnduser = (_b.sent()).downloadURL;
|
|
1348
|
+
(0, testing_1.assert)(downloadURL === urlForEnduser, 'failed to get download url for enduser', 'download url for enduser');
|
|
1349
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
1350
|
+
case 10:
|
|
1351
|
+
_b.sent();
|
|
1263
1352
|
return [2 /*return*/];
|
|
1264
1353
|
}
|
|
1265
1354
|
});
|
|
@@ -1292,24 +1381,31 @@ var enduser_session_tests = function () { return __awaiter(void 0, void 0, void
|
|
|
1292
1381
|
});
|
|
1293
1382
|
}); };
|
|
1294
1383
|
var users_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1384
|
+
var randomFieldValue, randomFieldNumber;
|
|
1295
1385
|
return __generator(this, function (_a) {
|
|
1296
1386
|
switch (_a.label) {
|
|
1297
1387
|
case 0:
|
|
1298
1388
|
(0, testing_1.log_header)("Users Tests");
|
|
1389
|
+
randomFieldValue = crypto_1.default.randomBytes(32).toString('hex').toUpperCase() // uppercase so name parsing doesn't cause case change
|
|
1390
|
+
;
|
|
1391
|
+
randomFieldNumber = Math.random();
|
|
1299
1392
|
/* Update user tests */
|
|
1300
|
-
return [4 /*yield*/, (0, testing_1.async_test)("update user (non-admin, other user)", function () { return sdkNonAdmin.api.users.updateOne(sdk.userInfo.id, { fname:
|
|
1393
|
+
return [4 /*yield*/, (0, testing_1.async_test)("update user (non-admin, other user)", function () { return sdkNonAdmin.api.users.updateOne(sdk.userInfo.id, { fname: randomFieldValue }); }, { shouldError: true, onError: function (e) { return e.message === "Only admin users can update others' profiles"; } })];
|
|
1301
1394
|
case 1:
|
|
1302
1395
|
/* Update user tests */
|
|
1303
1396
|
_a.sent();
|
|
1304
|
-
return [4 /*yield*/, (0, testing_1.async_test)("
|
|
1397
|
+
return [4 /*yield*/, (0, testing_1.async_test)("verify no update", function () { return sdk.api.users.getOne(sdk.userInfo.id); }, { onResult: function (u) { return u.fname !== randomFieldValue; } })];
|
|
1305
1398
|
case 2:
|
|
1399
|
+
_a.sent();
|
|
1400
|
+
return [4 /*yield*/, (0, testing_1.async_test)("update user (non-admin, self)", function () { return sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, { fname: 'Updated' }); }, { onResult: function (u) { return u.id === sdkNonAdmin.userInfo.id && u.fname === "Updated"; } })];
|
|
1401
|
+
case 3:
|
|
1306
1402
|
_a.sent();
|
|
1307
1403
|
return [4 /*yield*/, (0, testing_1.async_test)("verify user update with admin get", function () { return sdk.api.users.getOne(sdkNonAdmin.userInfo.id); }, { onResult: function (u) { return u.id === sdkNonAdmin.userInfo.id && u.fname === "Updated"; } })
|
|
1308
1404
|
// reset fname to "Non" if this test throws, otherwise will falsely pass on next run
|
|
1309
1405
|
// NOT Supported behavior any more
|
|
1310
1406
|
// assert(sdkNonAdmin.userInfo.fname === 'Updated', 'refresh_session not called on self after update', 'sdk updated on user update')
|
|
1311
1407
|
];
|
|
1312
|
-
case
|
|
1408
|
+
case 4:
|
|
1313
1409
|
_a.sent();
|
|
1314
1410
|
// reset fname to "Non" if this test throws, otherwise will falsely pass on next run
|
|
1315
1411
|
// NOT Supported behavior any more
|
|
@@ -1318,14 +1414,25 @@ var users_tests = function () { return __awaiter(void 0, void 0, void 0, functio
|
|
|
1318
1414
|
{ onResult: function (u) { return u.id === sdkNonAdmin.userInfo.id && u.fname === "Non"; } })
|
|
1319
1415
|
// sdkNonAdmin.userInfo.fname = 'Non' // update back in sdk instance as well
|
|
1320
1416
|
];
|
|
1321
|
-
case
|
|
1417
|
+
case 5:
|
|
1322
1418
|
// reset fname to "Non" if this test throws, otherwise will falsely pass on next run
|
|
1323
1419
|
// NOT Supported behavior any more
|
|
1324
1420
|
// assert(sdkNonAdmin.userInfo.fname === 'Updated', 'refresh_session not called on self after update', 'sdk updated on user update')
|
|
1325
1421
|
_a.sent();
|
|
1326
1422
|
// sdkNonAdmin.userInfo.fname = 'Non' // update back in sdk instance as well
|
|
1327
1423
|
return [4 /*yield*/, (0, testing_1.async_test)("verify user update with admin get", function () { return sdk.api.users.getOne(sdkNonAdmin.userInfo.id); }, { onResult: function (u) { return u.id === sdkNonAdmin.userInfo.id && u.fname === "Non"; } })];
|
|
1328
|
-
case
|
|
1424
|
+
case 6:
|
|
1425
|
+
// sdkNonAdmin.userInfo.fname = 'Non' // update back in sdk instance as well
|
|
1426
|
+
_a.sent();
|
|
1427
|
+
return [4 /*yield*/, (0, testing_1.async_test)("update user (custom fields)", function () { return sdk.api.users.updateOne(sdk.userInfo.id, { fields: { f1: randomFieldValue, f2: randomFieldNumber, f3: { object: randomFieldValue } } }); }, // change back
|
|
1428
|
+
{ onResult: function (u) { var _a, _b, _c; return u.id === sdk.userInfo.id && ((_a = u.fields) === null || _a === void 0 ? void 0 : _a.f1) === randomFieldValue && ((_b = u.fields) === null || _b === void 0 ? void 0 : _b.f2) === randomFieldNumber && ((_c = u.fields) === null || _c === void 0 ? void 0 : _c.f3).object == randomFieldValue; } })
|
|
1429
|
+
// sdkNonAdmin.userInfo.fname = 'Non' // update back in sdk instance as well
|
|
1430
|
+
];
|
|
1431
|
+
case 7:
|
|
1432
|
+
_a.sent();
|
|
1433
|
+
// sdkNonAdmin.userInfo.fname = 'Non' // update back in sdk instance as well
|
|
1434
|
+
return [4 /*yield*/, (0, testing_1.async_test)("verify user update (custom fields)", function () { return sdk.api.users.getOne(sdk.userInfo.id); }, { onResult: function (u) { var _a, _b, _c; return u.id === sdk.userInfo.id && ((_a = u.fields) === null || _a === void 0 ? void 0 : _a.f1) === randomFieldValue && ((_b = u.fields) === null || _b === void 0 ? void 0 : _b.f2) === randomFieldNumber && ((_c = u.fields) === null || _c === void 0 ? void 0 : _c.f3).object == randomFieldValue; } })];
|
|
1435
|
+
case 8:
|
|
1329
1436
|
// sdkNonAdmin.userInfo.fname = 'Non' // update back in sdk instance as well
|
|
1330
1437
|
_a.sent();
|
|
1331
1438
|
return [2 /*return*/];
|