@tellescope/sdk 0.0.67 → 0.0.68

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.
@@ -952,9 +952,9 @@ var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, fun
952
952
  case 0:
953
953
  log_header("Chat Room Tests");
954
954
  sdk2 = new Session({ host: host });
955
- return [4 /*yield*/, sdk2.authenticate(email2, password2)];
955
+ return [4 /*yield*/, sdk2.authenticate(nonAdminEmail, nonAdminPassword)]; // non-admin has access restrictions we want to test
956
956
  case 1:
957
- _a.sent();
957
+ _a.sent(); // non-admin has access restrictions we want to test
958
958
  email = 'enduser@tellescope.com', password = 'enduserPassword!';
959
959
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: email })];
960
960
  case 2:
@@ -1066,9 +1066,9 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1066
1066
  switch (_a.label) {
1067
1067
  case 0:
1068
1068
  sdk2 = new Session({ host: host });
1069
- return [4 /*yield*/, sdk2.authenticate(email2, password2)];
1069
+ return [4 /*yield*/, sdk2.authenticate(nonAdminEmail, nonAdminPassword)]; // non-admin has access restrictions we want to test
1070
1070
  case 1:
1071
- _a.sent();
1071
+ _a.sent(); // non-admin has access restrictions we want to test
1072
1072
  return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId] })];
1073
1073
  case 2:
1074
1074
  room = _a.sent();
@@ -1100,7 +1100,10 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1100
1100
  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; } })];
1101
1101
  case 6:
1102
1102
  _a.sent();
1103
- 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'; } })
1103
+ 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'; } })];
1104
+ case 7:
1105
+ _a.sent();
1106
+ return [4 /*yield*/, async_test("get-chats admin", function () { return sdk.api.chats.getSome({ filter: { roomId: room.id } }); }, { onResult: function () { return true; } })
1104
1107
  // currently disabled endpoint altogether
1105
1108
  // await async_test(
1106
1109
  // `update-chat not allowed`,
@@ -1108,7 +1111,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1108
1111
  // { shouldError: true, onError: e => e.message === 'You do not have permission to access this resource' }
1109
1112
  // )
1110
1113
  ];
1111
- case 7:
1114
+ case 8:
1112
1115
  _a.sent();
1113
1116
  // currently disabled endpoint altogether
1114
1117
  // await async_test(
@@ -1116,7 +1119,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1116
1119
  // () => sdk2.api.chats.updateOne(chat.id, { message: 'Hi' }),
1117
1120
  // { shouldError: true, onError: e => e.message === 'You do not have permission to access this resource' }
1118
1121
  // )
1119
- return [4 /*yield*/, async_test("delete-chat not allowed", function () { return sdk2.api.chats.deleteOne(chat.id); }, { shouldError: true, onError: function (e) { return e.message === 'You do not have permission to access this resource'; } })
1122
+ return [4 /*yield*/, async_test("delete-chat not allowed", function () { return sdk2.api.chats.deleteOne(chat.id); }, { shouldError: true, onError: function (e) { return e.message === 'Inaccessible'; } })
1120
1123
  // currently disabled endpoint altogether
1121
1124
  // await async_test(
1122
1125
  // `update-chat can't update roomId`,
@@ -1124,7 +1127,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1124
1127
  // { shouldError: true, onError: e => e.message === 'Error parsing field updates: roomId is not valid for updates' }
1125
1128
  // )
1126
1129
  ];
1127
- case 8:
1130
+ case 9:
1128
1131
  // currently disabled endpoint altogether
1129
1132
  // await async_test(
1130
1133
  // `update-chat not allowed`,
@@ -1139,7 +1142,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1139
1142
  // { shouldError: true, onError: e => e.message === 'Error parsing field updates: roomId is not valid for updates' }
1140
1143
  // )
1141
1144
  return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(room.id)];
1142
- case 9:
1145
+ case 10:
1143
1146
  // currently disabled endpoint altogether
1144
1147
  // await async_test(
1145
1148
  // `update-chat can't update roomId`,
@@ -1148,54 +1151,54 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1148
1151
  // )
1149
1152
  _a.sent();
1150
1153
  return [4 /*yield*/, wait(undefined, 25)];
1151
- case 10:
1154
+ case 11:
1152
1155
  _a.sent();
1153
1156
  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'; } })];
1154
- case 11:
1157
+ case 12:
1155
1158
  _a.sent();
1156
1159
  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'; } })];
1157
- case 12:
1160
+ case 13:
1158
1161
  _a.sent();
1159
1162
  return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId, sdk2.userInfo.id] })];
1160
- case 13:
1163
+ case 14:
1161
1164
  sharedRoom = _a.sent();
1162
1165
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: sharedRoom.id, message: "Hello!", })];
1163
- case 14:
1166
+ case 15:
1164
1167
  sharedChat = _a.sent();
1165
1168
  return [4 /*yield*/, sdk2.api.chats.createOne({ roomId: sharedRoom.id, message: "Hello there!", })];
1166
- case 15:
1169
+ case 16:
1167
1170
  sharedChat2 = _a.sent();
1168
1171
  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; } })];
1169
- case 16:
1172
+ case 17:
1170
1173
  _a.sent();
1171
1174
  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; } })];
1172
- case 17:
1175
+ case 18:
1173
1176
  _a.sent();
1174
1177
  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; }); } })];
1175
- case 18:
1178
+ case 19:
1176
1179
  _a.sent();
1177
1180
  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; }); } })
1178
1181
  // test setNull dependency
1179
1182
  ];
1180
- case 19:
1183
+ case 20:
1181
1184
  _a.sent();
1182
1185
  return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId] })];
1183
- case 20:
1186
+ case 21:
1184
1187
  roomNull = _a.sent();
1185
1188
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomNull.id, message: "Hello!" })];
1186
- case 21:
1189
+ case 22:
1187
1190
  chatNull = _a.sent();
1188
1191
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomNull.id, message: "Hello...", replyId: chatNull.id })];
1189
- case 22:
1192
+ case 23:
1190
1193
  chat2Null = _a.sent();
1191
1194
  return [4 /*yield*/, sdk.api.chats.deleteOne(chatNull.id)];
1192
- case 23:
1195
+ case 24:
1193
1196
  _a.sent();
1194
1197
  return [4 /*yield*/, wait(undefined, 250)];
1195
- case 24:
1198
+ case 25:
1196
1199
  _a.sent();
1197
1200
  return [4 /*yield*/, async_test("get-chat (setNull working)", function () { return sdk.api.chats.getOne(chat2Null.id); }, { onResult: function (c) { return c.replyId === null; } })];
1198
- case 25:
1201
+ case 26:
1199
1202
  _a.sent();
1200
1203
  return [2 /*return*/];
1201
1204
  }
@@ -1516,12 +1519,17 @@ var calendar_events_tests = function () { return __awaiter(void 0, void 0, void
1516
1519
  });
1517
1520
  }); };
1518
1521
  var automation_events_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
1519
- var state1, state2, journey, testAction, enduser;
1520
- var _a, _b;
1521
- return __generator(this, function (_c) {
1522
- switch (_c.label) {
1522
+ var form, state1, state2, journey, testAction, enduser, _a, _b, _c, _d;
1523
+ var _e, _f, _g, _h;
1524
+ return __generator(this, function (_j) {
1525
+ switch (_j.label) {
1523
1526
  case 0:
1524
1527
  log_header("Automation Events");
1528
+ return [4 /*yield*/, sdk.api.forms.createOne({
1529
+ title: 'Form', fields: [{ title: 'Question 1', type: 'string' }]
1530
+ })];
1531
+ case 1:
1532
+ form = _j.sent();
1525
1533
  state1 = "State 1", state2 = "State 2";
1526
1534
  return [4 /*yield*/, sdk.api.journeys.createOne({
1527
1535
  title: "Automations Test",
@@ -1531,8 +1539,8 @@ var automation_events_tests = function () { return __awaiter(void 0, void 0, voi
1531
1539
  { name: state2, priority: 'N/A' },
1532
1540
  ]
1533
1541
  })];
1534
- case 1:
1535
- journey = _c.sent();
1542
+ case 2:
1543
+ journey = _j.sent();
1536
1544
  return [4 /*yield*/, async_test("enterState cannot match updateStateForJourney", function () { return sdk.api.event_automations.createOne({
1537
1545
  journeyId: journey.id,
1538
1546
  event: {
@@ -1544,8 +1552,8 @@ var automation_events_tests = function () { return __awaiter(void 0, void 0, voi
1544
1552
  info: { state: state1, journeyId: journey.id },
1545
1553
  },
1546
1554
  }); }, { shouldError: true, onError: function (e) { return e.message === 'updateStateForJourney cannot have the same journey and state as the enterState event'; } })];
1547
- case 2:
1548
- _c.sent();
1555
+ case 3:
1556
+ _j.sent();
1549
1557
  return [4 /*yield*/, async_test("leaveState cannot match updateStateForJourney", function () { return sdk.api.event_automations.createOne({
1550
1558
  journeyId: journey.id,
1551
1559
  event: {
@@ -1557,8 +1565,8 @@ var automation_events_tests = function () { return __awaiter(void 0, void 0, voi
1557
1565
  info: { state: state1, journeyId: journey.id },
1558
1566
  },
1559
1567
  }); }, { shouldError: true, onError: function (e) { return e.message === 'updateStateForJourney cannot have the same journey and state as the leaveState event'; } })];
1560
- case 3:
1561
- _c.sent();
1568
+ case 4:
1569
+ _j.sent();
1562
1570
  testAction = {
1563
1571
  type: 'sendWebhook',
1564
1572
  info: { message: 'test' }
@@ -1571,8 +1579,8 @@ var automation_events_tests = function () { return __awaiter(void 0, void 0, voi
1571
1579
  },
1572
1580
  action: testAction,
1573
1581
  })];
1574
- case 4:
1575
- _c.sent();
1582
+ case 5:
1583
+ _j.sent();
1576
1584
  return [4 /*yield*/, sdk.api.event_automations.createOne({
1577
1585
  journeyId: journey.id,
1578
1586
  event: {
@@ -1581,8 +1589,8 @@ var automation_events_tests = function () { return __awaiter(void 0, void 0, voi
1581
1589
  },
1582
1590
  action: testAction,
1583
1591
  })];
1584
- case 5:
1585
- _c.sent();
1592
+ case 6:
1593
+ _j.sent();
1586
1594
  return [4 /*yield*/, sdk.api.event_automations.createOne({
1587
1595
  journeyId: journey.id,
1588
1596
  event: {
@@ -1591,8 +1599,24 @@ var automation_events_tests = function () { return __awaiter(void 0, void 0, voi
1591
1599
  },
1592
1600
  action: testAction,
1593
1601
  })];
1594
- case 6:
1595
- _c.sent();
1602
+ case 7:
1603
+ _j.sent();
1604
+ return [4 /*yield*/, sdk.api.event_automations.createOne({
1605
+ journeyId: journey.id,
1606
+ event: {
1607
+ type: "formResponse",
1608
+ info: { formId: form.id },
1609
+ },
1610
+ conditions: [
1611
+ {
1612
+ type: 'atJourneyState',
1613
+ info: { state: state2, journeyId: journey.id }
1614
+ }
1615
+ ],
1616
+ action: testAction,
1617
+ })];
1618
+ case 8:
1619
+ _j.sent();
1596
1620
  return [4 /*yield*/, async_test("Cannot insert duplicate event/action pair", function () { return sdk.api.event_automations.createOne({
1597
1621
  journeyId: journey.id,
1598
1622
  event: {
@@ -1603,36 +1627,61 @@ var automation_events_tests = function () { return __awaiter(void 0, void 0, voi
1603
1627
  }); }, { shouldError: true, onError: function (e) { return e.message === "You cannot create two identical event automations"; } })
1604
1628
  // trigger a1 on create
1605
1629
  ];
1606
- case 7:
1607
- _c.sent();
1630
+ case 9:
1631
+ _j.sent();
1608
1632
  return [4 /*yield*/, sdk.api.endusers.createOne({
1609
1633
  email: "automations@tellescope.com",
1610
- journeys: (_a = {}, _a[journey.id] = journey.defaultState, _a)
1634
+ journeys: (_e = {}, _e[journey.id] = journey.defaultState, _e)
1611
1635
  })
1612
- // trigger a2 and a3 by leaving state 1 an going to state 2
1636
+ // should NOT trigger while user not in state 2
1613
1637
  ];
1614
- case 8:
1615
- enduser = _c.sent();
1638
+ case 10:
1639
+ enduser = _j.sent();
1640
+ _b = (_a = sdk.api.form_responses).submit_form_response;
1641
+ _f = {};
1642
+ return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({ formId: form.id, enduserId: enduser.id })];
1643
+ case 11:
1644
+ // should NOT trigger while user not in state 2
1645
+ return [4 /*yield*/, _b.apply(_a, [(_f.accessCode = (_j.sent()).accessCode,
1646
+ _f.responses = ['Answer'],
1647
+ _f)])
1616
1648
  // trigger a2 and a3 by leaving state 1 an going to state 2
1617
- return [4 /*yield*/, sdk.api.endusers.updateOne(enduser.id, { journeys: (_b = {}, _b[journey.id] = state2, _b) })];
1618
- case 9:
1649
+ ];
1650
+ case 12:
1651
+ // should NOT trigger while user not in state 2
1652
+ _j.sent();
1653
+ // trigger a2 and a3 by leaving state 1 an going to state 2
1654
+ return [4 /*yield*/, sdk.api.endusers.updateOne(enduser.id, { journeys: (_g = {}, _g[journey.id] = state2, _g) })
1655
+ // SHOULD trigger now that user is in state 2
1656
+ ];
1657
+ case 13:
1619
1658
  // trigger a2 and a3 by leaving state 1 an going to state 2
1620
- _c.sent();
1621
- return [4 /*yield*/, async_test("Automation events triggered correctly",
1622
- // () => sdk.api.automation_endusers.getSome(),
1623
- function () { return sdk.api.automation_endusers.getSome({ filter: { enduserId: enduser.id } }); }, { onResult: function (es) { return es && es.length === 3 && es.filter(function (a) { return a.automationId === "ONE_TIME"; }).length === 3; } })
1659
+ _j.sent();
1660
+ _d = (_c = sdk.api.form_responses).submit_form_response;
1661
+ _h = {};
1662
+ return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({ formId: form.id, enduserId: enduser.id })];
1663
+ case 14:
1664
+ // SHOULD trigger now that user is in state 2
1665
+ return [4 /*yield*/, _d.apply(_c, [(_h.accessCode = (_j.sent()).accessCode,
1666
+ _h.responses = ['Answer 2'],
1667
+ _h)])];
1668
+ case 15:
1669
+ // SHOULD trigger now that user is in state 2
1670
+ _j.sent();
1671
+ return [4 /*yield*/, async_test("Automation events triggered correctly", function () { return sdk.api.automation_endusers.getSome({ filter: { enduserId: enduser.id } }); }, { onResult: function (es) { return es && es.length === 4 && es.filter(function (a) { return a.automationId === "ONE_TIME"; }).length === 4; } })
1624
1672
  // cleanup
1625
1673
  ];
1626
- case 10:
1627
- _c.sent();
1674
+ case 16:
1675
+ _j.sent();
1628
1676
  // cleanup
1629
- return [4 /*yield*/, sdk.api.journeys.deleteOne(journey.id)]; // automation events deleted as side effect
1630
- case 11:
1677
+ return [4 /*yield*/, Promise.all([
1678
+ sdk.api.journeys.deleteOne(journey.id),
1679
+ sdk.api.endusers.deleteOne(enduser.id),
1680
+ sdk.api.forms.deleteOne(form.id),
1681
+ ])];
1682
+ case 17:
1631
1683
  // cleanup
1632
- _c.sent(); // automation events deleted as side effect
1633
- return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
1634
- case 12:
1635
- _c.sent();
1684
+ _j.sent();
1636
1685
  return [2 /*return*/];
1637
1686
  }
1638
1687
  });