@tellescope/sdk 0.0.90 → 0.0.93

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.
@@ -471,7 +471,7 @@ var verify_missing_defaults = function (_a) {
471
471
  o = _b[_i];
472
472
  if (Object.keys(model.defaultActions).includes(o) || model.customActions[o])
473
473
  return [3 /*break*/, 3]; // action is implemented
474
- return [4 /*yield*/, async_test("".concat(o, " unavailable for ").concat(name), function () { return queryForOperation[o](); }, { shouldError: true, onError: function (e) { return e.message === 'This action is not allowed'; } })];
474
+ return [4 /*yield*/, async_test("".concat(o, " unavailable for ").concat(name), function () { return queryForOperation[o](); }, { shouldError: true, onError: function (e) { return e.message === 'This action is not allowed' || e.message === 'Inaccessible'; } })];
475
475
  case 2:
476
476
  _d.sent();
477
477
  _d.label = 3;
@@ -597,79 +597,90 @@ var enduser_tests = function (queries) {
597
597
  var e1, e2, eToDup1, eToDup2;
598
598
  return __generator(this, function (_a) {
599
599
  switch (_a.label) {
600
- case 0: return [4 /*yield*/, queries.createOne({ email: 'test1@gmail.com', phone: '+14155555500' })];
600
+ case 0:
601
+ log_header("Enduser");
602
+ return [4 /*yield*/, queries.createOne({ email: 'test1@gmail.com', phone: '+14155555500' })];
601
603
  case 1:
602
604
  e1 = _a.sent();
603
605
  return [4 /*yield*/, queries.createOne({ email: 'test2@gmail.com', phone: '+14155555501' })];
604
606
  case 2:
605
607
  e2 = _a.sent();
606
- return [4 /*yield*/, async_test("update-enduser email conflict", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { email: e2.email }); }, { shouldError: true, onError: function () { return true; } })];
608
+ return [4 /*yield*/, enduserSDK.register({ email: 'test3@gmail.com', password: "testenduserpassword" })];
607
609
  case 3:
608
610
  _a.sent();
609
- return [4 /*yield*/, async_test("update-enduser phone conflict", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { phone: e2.phone }); }, { shouldError: true, onError: function () { return true; } })];
611
+ return [4 /*yield*/, async_test("get-enduser registered", function () { return queries.getOne({ email: 'test3@gmail.com' }); }, { onResult: function (e) { return !!e; } })];
610
612
  case 4:
611
613
  _a.sent();
612
- return [4 /*yield*/, async_test("update-enduser email and phone conflict", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { email: e2.email, phone: e2.phone }); }, { shouldError: true, onError: function () { return true; } })];
614
+ return [4 /*yield*/, async_test("enduser registered can log in", function () { return enduserSDK.authenticate('test3@gmail.com', 'testenduserpassword'); }, { onResult: function (e) { return !!e.authToken && e.enduser.email === 'test3@gmail.com'; } })];
613
615
  case 5:
614
616
  _a.sent();
615
- return [4 /*yield*/, async_test("update-enduser working", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { email: 'edited' + e1.email }); }, passOnVoid)];
617
+ return [4 /*yield*/, async_test("update-enduser email conflict", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { email: e2.email }); }, { shouldError: true, onError: function () { return true; } })];
616
618
  case 6:
617
619
  _a.sent();
618
- return [4 /*yield*/, async_test("update-enduser test replaceObjectFields 1", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { fields: { field1: '1' } }); }, passOnVoid)];
620
+ return [4 /*yield*/, async_test("update-enduser phone conflict", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { phone: e2.phone }); }, { shouldError: true, onError: function () { return true; } })];
619
621
  case 7:
620
622
  _a.sent();
621
- return [4 /*yield*/, async_test("get-enduser test replaceObjectFields verify 1", function () { var _a; return queries.getOne((_a = e1.id) !== null && _a !== void 0 ? _a : ''); }, { onResult: function (e) { var _a; return ((_a = e.fields) === null || _a === void 0 ? void 0 : _a.field1) === '1'; } })];
623
+ return [4 /*yield*/, async_test("update-enduser email and phone conflict", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { email: e2.email, phone: e2.phone }); }, { shouldError: true, onError: function () { return true; } })];
622
624
  case 8:
623
625
  _a.sent();
624
- return [4 /*yield*/, async_test("update-enduser test replaceObjectFields 2", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { fields: { field2: '2' } }); }, passOnVoid)];
626
+ return [4 /*yield*/, async_test("update-enduser working", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { email: 'edited' + e1.email }); }, passOnVoid)];
625
627
  case 9:
626
628
  _a.sent();
627
- return [4 /*yield*/, async_test("get-enduser test replaceObjectFields verify 2", function () { var _a; return queries.getOne((_a = e1.id) !== null && _a !== void 0 ? _a : ''); }, { onResult: function (e) { var _a, _b; return ((_a = e.fields) === null || _a === void 0 ? void 0 : _a.field1) === '1' && ((_b = e.fields) === null || _b === void 0 ? void 0 : _b.field2) === '2'; } })];
629
+ return [4 /*yield*/, async_test("update-enduser test replaceObjectFields 1", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { fields: { field1: '1' } }); }, passOnVoid)];
628
630
  case 10:
629
631
  _a.sent();
630
- return [4 /*yield*/, async_test("update-enduser test replaceObjectFields true 1", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { fields: { field2: '_2' } }, { replaceObjectFields: true }); }, passOnVoid)];
632
+ return [4 /*yield*/, async_test("get-enduser test replaceObjectFields verify 1", function () { var _a; return queries.getOne((_a = e1.id) !== null && _a !== void 0 ? _a : ''); }, { onResult: function (e) { var _a; return ((_a = e.fields) === null || _a === void 0 ? void 0 : _a.field1) === '1'; } })];
631
633
  case 11:
632
634
  _a.sent();
633
- return [4 /*yield*/, async_test("get-enduser test replaceObjectFields verify true 1", function () { var _a; return queries.getOne((_a = e1.id) !== null && _a !== void 0 ? _a : ''); }, { onResult: function (e) { var _a, _b; return ((_a = e.fields) === null || _a === void 0 ? void 0 : _a.field1) === undefined && ((_b = e.fields) === null || _b === void 0 ? void 0 : _b.field2) === '_2'; } })];
635
+ return [4 /*yield*/, async_test("update-enduser test replaceObjectFields 2", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { fields: { field2: '2' } }); }, passOnVoid)];
634
636
  case 12:
635
637
  _a.sent();
636
- return [4 /*yield*/, async_test("update-enduser test replaceObjectFields true unset", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { fields: {} }, { replaceObjectFields: true }); }, passOnVoid)];
638
+ return [4 /*yield*/, async_test("get-enduser test replaceObjectFields verify 2", function () { var _a; return queries.getOne((_a = e1.id) !== null && _a !== void 0 ? _a : ''); }, { onResult: function (e) { var _a, _b; return ((_a = e.fields) === null || _a === void 0 ? void 0 : _a.field1) === '1' && ((_b = e.fields) === null || _b === void 0 ? void 0 : _b.field2) === '2'; } })];
637
639
  case 13:
638
640
  _a.sent();
639
- return [4 /*yield*/, async_test("get-enduser test replaceObjectFields verify true unset", function () { var _a; return queries.getOne((_a = e1.id) !== null && _a !== void 0 ? _a : ''); }, { onResult: function (e) { return objects_equivalent(e.fields, {}); } })];
641
+ return [4 /*yield*/, async_test("update-enduser test replaceObjectFields true 1", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { fields: { field2: '_2' } }, { replaceObjectFields: true }); }, passOnVoid)];
640
642
  case 14:
643
+ _a.sent();
644
+ return [4 /*yield*/, async_test("get-enduser test replaceObjectFields verify true 1", function () { var _a; return queries.getOne((_a = e1.id) !== null && _a !== void 0 ? _a : ''); }, { onResult: function (e) { var _a, _b; return ((_a = e.fields) === null || _a === void 0 ? void 0 : _a.field1) === undefined && ((_b = e.fields) === null || _b === void 0 ? void 0 : _b.field2) === '_2'; } })];
645
+ case 15:
646
+ _a.sent();
647
+ return [4 /*yield*/, async_test("update-enduser test replaceObjectFields true unset", function () { var _a; return queries.updateOne((_a = e1.id) !== null && _a !== void 0 ? _a : '', { fields: {} }, { replaceObjectFields: true }); }, passOnVoid)];
648
+ case 16:
649
+ _a.sent();
650
+ return [4 /*yield*/, async_test("get-enduser test replaceObjectFields verify true unset", function () { var _a; return queries.getOne((_a = e1.id) !== null && _a !== void 0 ? _a : ''); }, { onResult: function (e) { return objects_equivalent(e.fields, {}); } })];
651
+ case 17:
641
652
  _a.sent();
642
653
  eToDup1 = { email: 'dup1@tellescope.com' };
643
654
  eToDup2 = { email: 'dup2@tellescope.com' };
644
655
  return [4 /*yield*/, queries.createOne(eToDup1)];
645
- case 15:
656
+ case 18:
646
657
  _a.sent();
647
658
  return [4 /*yield*/, queries.createOne(eToDup2)];
648
- case 16:
659
+ case 19:
649
660
  _a.sent();
650
661
  return [4 /*yield*/, async_test("create-many-endusers - all conflict (1)", function () { return queries.createSome([eToDup1]); }, { shouldError: true, onError: function (e) { return e.message === 'Uniqueness Violation'; } })];
651
- case 17:
662
+ case 20:
652
663
  _a.sent();
653
664
  return [4 /*yield*/, async_test("create-many-endusers - all conflict (2)", function () { return queries.createSome([eToDup1, eToDup2]); }, { shouldError: true, onError: function (e) { return e.message === 'Uniqueness Violation'; } })];
654
- case 18:
665
+ case 21:
655
666
  _a.sent();
656
667
  return [4 /*yield*/, async_test("create-many-endusers - multiple email conflict", function () { return queries.createSome([eToDup1, eToDup2, { email: "unique@tellescope.com" }]); }, { onResult: function (_a) {
657
668
  var created = _a.created, errors = _a.errors;
658
669
  return created.length === 1 && errors.length === 2;
659
670
  } })];
660
- case 19:
671
+ case 22:
661
672
  _a.sent();
662
673
  return [4 /*yield*/, async_test("create-many-endusers - create conflict, one unique", function () { return queries.createSome([{ email: 'd1@tellescope.com' }, { email: 'd1@tellescope.com' }, { email: 'd1@tellescope.com' }]); }, { onResult: function (_a) {
663
674
  var created = _a.created, errors = _a.errors;
664
675
  return created.length === 1 && errors.length === 2;
665
676
  } })];
666
- case 20:
677
+ case 23:
667
678
  _a.sent();
668
679
  return [4 /*yield*/, async_test("create-many-endusers - create conflict, two unique", function () { return queries.createSome([{ email: 'd2@tellescope.com' }, { email: 'd2@tellescope.com' }, { email: 'createme@tellescope.com' }]); }, { onResult: function (_a) {
669
680
  var created = _a.created, errors = _a.errors;
670
681
  return created.length === 2 && errors.length === 1;
671
682
  } })];
672
- case 21:
683
+ case 24:
673
684
  _a.sent();
674
685
  return [2 /*return*/];
675
686
  }
@@ -1871,6 +1882,193 @@ var notifications_tests = function () { return __awaiter(void 0, void 0, void 0,
1871
1882
  }
1872
1883
  });
1873
1884
  }); };
1885
+ var handleAnyError = { shouldError: true, onError: function () { return true; } };
1886
+ var passOnAnyResult = { onResult: function () { return true; } };
1887
+ var role_based_access_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
1888
+ var adminId, nonAdminId, e, adminTicket, nonAdminTicket, nonAdminTicketNoEnduser, ticketCreatedByNonAdmin, email, sms, calendarEvent, chatRoom, chatMessage, chatMessage2;
1889
+ return __generator(this, function (_a) {
1890
+ switch (_a.label) {
1891
+ case 0:
1892
+ log_header("Role Based Access Tests");
1893
+ adminId = sdk.userInfo.id;
1894
+ nonAdminId = sdkNonAdmin.userInfo.id;
1895
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'roletest@gmail.com' })];
1896
+ case 1:
1897
+ e = _a.sent();
1898
+ return [4 /*yield*/, sdk.api.tickets.createOne({ title: 'ticket', enduserId: e.id, owner: adminId })];
1899
+ case 2:
1900
+ adminTicket = _a.sent();
1901
+ return [4 /*yield*/, sdk.api.tickets.createOne({ title: 'ticket', enduserId: e.id, owner: nonAdminId })];
1902
+ case 3:
1903
+ nonAdminTicket = _a.sent();
1904
+ return [4 /*yield*/, sdk.api.tickets.createOne({ title: 'ticket', owner: nonAdminId })];
1905
+ case 4:
1906
+ nonAdminTicketNoEnduser = _a.sent();
1907
+ return [4 /*yield*/, sdkNonAdmin.api.tickets.createOne({ title: 'ticket' })];
1908
+ case 5:
1909
+ ticketCreatedByNonAdmin = _a.sent();
1910
+ return [4 /*yield*/, sdk.api.emails.createOne({ enduserId: e.id, logOnly: true, subject: 'blah', textContent: 'blah blah' })];
1911
+ case 6:
1912
+ email = _a.sent();
1913
+ return [4 /*yield*/, sdk.api.sms_messages.createOne({ enduserId: e.id, logOnly: true, message: 'blah blah' })];
1914
+ case 7:
1915
+ sms = _a.sent();
1916
+ return [4 /*yield*/, sdk.api.calendar_events.createOne({
1917
+ attendees: [{ id: e.id, type: 'enduser' }],
1918
+ durationInMinutes: 50,
1919
+ startTimeInMS: 2000000,
1920
+ title: 'Access Test'
1921
+ })];
1922
+ case 8:
1923
+ calendarEvent = _a.sent();
1924
+ return [4 /*yield*/, sdk.api.chat_rooms.createOne({ enduserIds: [e.id] })];
1925
+ case 9:
1926
+ chatRoom = _a.sent();
1927
+ return [4 /*yield*/, sdk.api.chats.createOne({ roomId: chatRoom.id, message: 'test chat access' })];
1928
+ case 10:
1929
+ chatMessage = _a.sent();
1930
+ return [4 /*yield*/, sdk.api.chats.createOne({ roomId: chatRoom.id, message: 'test chat access 2' })
1931
+ // unassigned to enduser access tests
1932
+ ];
1933
+ case 11:
1934
+ chatMessage2 = _a.sent();
1935
+ // unassigned to enduser access tests
1936
+ return [4 /*yield*/, async_test("Admin / creator can access enduser without being assigned", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) { return !!e; } })];
1937
+ case 12:
1938
+ // unassigned to enduser access tests
1939
+ _a.sent();
1940
+ return [4 /*yield*/, async_test("Unassigned non-admin can't access enduser without being assigned", function () { return sdkNonAdmin.api.endusers.getOne(e.id); }, handleAnyError)];
1941
+ case 13:
1942
+ _a.sent();
1943
+ return [4 /*yield*/, async_test("non-admin for enduser ticket bad", function () { return sdkNonAdmin.api.tickets.getOne(adminTicket.id); }, handleAnyError)];
1944
+ case 14:
1945
+ _a.sent();
1946
+ return [4 /*yield*/, async_test("Non-admin for ticket", function () { return sdkNonAdmin.api.tickets.getOne(nonAdminTicketNoEnduser.id); }, passOnAnyResult)];
1947
+ case 15:
1948
+ _a.sent();
1949
+ return [4 /*yield*/, async_test("Non-admin for enduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(nonAdminTicket.id); }, passOnAnyResult)];
1950
+ case 16:
1951
+ _a.sent();
1952
+ return [4 /*yield*/, async_test("Non-admin for own ticket", function () { return sdkNonAdmin.api.tickets.getOne(ticketCreatedByNonAdmin.id); }, passOnAnyResult)];
1953
+ case 17:
1954
+ _a.sent();
1955
+ return [4 /*yield*/, async_test("Non-admin for tickets", function () { return sdkNonAdmin.api.tickets.getSome(); }, { onResult: function (ts) { return ts.length === 3; } })];
1956
+ case 18:
1957
+ _a.sent();
1958
+ return [4 /*yield*/, async_test("non-admin for email bad", function () { return sdkNonAdmin.api.emails.getOne(email.id); }, handleAnyError)];
1959
+ case 19:
1960
+ _a.sent();
1961
+ return [4 /*yield*/, async_test("non-admin for sms bad", function () { return sdkNonAdmin.api.sms_messages.getOne(sms.id); }, handleAnyError)];
1962
+ case 20:
1963
+ _a.sent();
1964
+ return [4 /*yield*/, async_test("admin for calendar", function () { return sdk.api.calendar_events.getOne(calendarEvent.id); }, passOnAnyResult)];
1965
+ case 21:
1966
+ _a.sent();
1967
+ return [4 /*yield*/, async_test("non-admin for calendar bad", function () { return sdkNonAdmin.api.calendar_events.getOne(calendarEvent.id); }, handleAnyError)];
1968
+ case 22:
1969
+ _a.sent();
1970
+ return [4 /*yield*/, async_test("non-admin for chat room bad", function () { return sdkNonAdmin.api.chat_rooms.getOne(chatRoom.id); }, handleAnyError)];
1971
+ case 23:
1972
+ _a.sent();
1973
+ return [4 /*yield*/, async_test("non-admin for chat message bad", function () { return sdkNonAdmin.api.chats.getOne(chatMessage.id); }, handleAnyError)];
1974
+ case 24:
1975
+ _a.sent();
1976
+ return [4 /*yield*/, async_test("Non-admin for chats", function () { return sdkNonAdmin.api.chats.getSome({ filter: { roomId: chatRoom.id } }); }, handleAnyError)
1977
+ // unassigned update / delete coverage
1978
+ ];
1979
+ case 25:
1980
+ _a.sent();
1981
+ // unassigned update / delete coverage
1982
+ return [4 /*yield*/, async_test("non-admin for enduser ticket update bad", function () { return sdkNonAdmin.api.tickets.updateOne(adminTicket.id, { title: 'updated' }); }, handleAnyError)];
1983
+ case 26:
1984
+ // unassigned update / delete coverage
1985
+ _a.sent();
1986
+ return [4 /*yield*/, async_test("non-admin for enduser ticket delete bad", function () { return sdkNonAdmin.api.tickets.deleteOne(adminTicket.id); }, handleAnyError)];
1987
+ case 27:
1988
+ _a.sent();
1989
+ return [4 /*yield*/, async_test("non-admin can't delete tickets by default (even with access)", function () { return sdkNonAdmin.api.tickets.deleteOne(nonAdminTicket.id); }, handleAnyError)
1990
+ // set assignees
1991
+ ];
1992
+ case 28:
1993
+ _a.sent();
1994
+ // set assignees
1995
+ return [4 /*yield*/, sdk.api.endusers.updateOne(e.id, { assignedTo: [sdk.userInfo.id, sdkNonAdmin.userInfo.id] })
1996
+ // assigned access tests
1997
+ ];
1998
+ case 29:
1999
+ // set assignees
2000
+ _a.sent();
2001
+ // assigned access tests
2002
+ return [4 /*yield*/, async_test("Admin / creator can access enduser while assigned", function () { return sdk.api.endusers.getOne(e.id); }, passOnAnyResult)];
2003
+ case 30:
2004
+ // assigned access tests
2005
+ _a.sent();
2006
+ return [4 /*yield*/, async_test("Unassigned non-admin can access enduser while assigned", function () { return sdkNonAdmin.api.endusers.getOne(e.id); }, passOnAnyResult)];
2007
+ case 31:
2008
+ _a.sent();
2009
+ return [4 /*yield*/, async_test("non-admin for enduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(adminTicket.id); }, passOnAnyResult)];
2010
+ case 32:
2011
+ _a.sent();
2012
+ return [4 /*yield*/, async_test("Non-admin for ticket", function () { return sdkNonAdmin.api.tickets.getOne(nonAdminTicketNoEnduser.id); }, passOnAnyResult)];
2013
+ case 33:
2014
+ _a.sent();
2015
+ return [4 /*yield*/, async_test("Non-admin for enduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(nonAdminTicket.id); }, passOnAnyResult)];
2016
+ case 34:
2017
+ _a.sent();
2018
+ return [4 /*yield*/, async_test("Non-admin for tickets", function () { return sdkNonAdmin.api.tickets.getSome(); }, { onResult: function (ts) { return ts.length === 4; } })];
2019
+ case 35:
2020
+ _a.sent();
2021
+ return [4 /*yield*/, async_test("non-admin for email", function () { return sdkNonAdmin.api.emails.getOne(email.id); }, passOnAnyResult)];
2022
+ case 36:
2023
+ _a.sent();
2024
+ return [4 /*yield*/, async_test("non-admin for sms", function () { return sdkNonAdmin.api.sms_messages.getOne(sms.id); }, passOnAnyResult)];
2025
+ case 37:
2026
+ _a.sent();
2027
+ return [4 /*yield*/, async_test("non-admin for calendar", function () { return sdkNonAdmin.api.calendar_events.getOne(calendarEvent.id); }, passOnAnyResult)];
2028
+ case 38:
2029
+ _a.sent();
2030
+ return [4 /*yield*/, async_test("non-admin for chat room", function () { return sdkNonAdmin.api.chat_rooms.getOne(chatRoom.id); }, passOnAnyResult)];
2031
+ case 39:
2032
+ _a.sent();
2033
+ return [4 /*yield*/, async_test("non-admin for chat message", function () { return sdkNonAdmin.api.chats.getOne(chatMessage.id); }, passOnAnyResult)];
2034
+ case 40:
2035
+ _a.sent();
2036
+ return [4 /*yield*/, async_test("Non-admin for chats", function () { return sdkNonAdmin.api.chats.getSome({ filter: { roomId: chatRoom.id } }); }, { onResult: function (cs) { return cs.length === 2; } })
2037
+ // update / delete coverage for assigned tickets
2038
+ ];
2039
+ case 41:
2040
+ _a.sent();
2041
+ // update / delete coverage for assigned tickets
2042
+ return [4 /*yield*/, async_test("non-admin assigned enduser ticket update find", function () { return sdkNonAdmin.api.tickets.updateOne(adminTicket.id, { title: 'updated' }); }, passOnAnyResult)];
2043
+ case 42:
2044
+ // update / delete coverage for assigned tickets
2045
+ _a.sent();
2046
+ return [4 /*yield*/, async_test("non-admin for enduser ticket delete still bad", function () { return sdkNonAdmin.api.tickets.deleteOne(adminTicket.id); }, handleAnyError)
2047
+ // cleanup
2048
+ ];
2049
+ case 43:
2050
+ _a.sent();
2051
+ // cleanup
2052
+ return [4 /*yield*/, Promise.all([
2053
+ sdk.api.endusers.deleteOne(e.id),
2054
+ sdk.api.tickets.deleteOne(adminTicket.id),
2055
+ sdk.api.tickets.deleteOne(nonAdminTicket.id),
2056
+ sdk.api.tickets.deleteOne(nonAdminTicketNoEnduser.id),
2057
+ sdk.api.tickets.deleteOne(ticketCreatedByNonAdmin.id),
2058
+ sdk.api.emails.deleteOne(email.id),
2059
+ sdk.api.sms_messages.deleteOne(sms.id),
2060
+ sdk.api.calendar_events.deleteOne(calendarEvent.id),
2061
+ sdk.api.chat_rooms.deleteOne(chatRoom.id),
2062
+ sdk.api.chats.deleteOne(chatMessage.id),
2063
+ sdk.api.chats.deleteOne(chatMessage2.id),
2064
+ ])];
2065
+ case 44:
2066
+ // cleanup
2067
+ _a.sent();
2068
+ return [2 /*return*/];
2069
+ }
2070
+ });
2071
+ }); };
1874
2072
  var NO_TEST = function () { };
1875
2073
  var tests = {
1876
2074
  chats: chat_tests,
@@ -1907,7 +2105,7 @@ var tests = {
1907
2105
  log_header("API");
1908
2106
  _h.label = 1;
1909
2107
  case 1:
1910
- _h.trys.push([1, 13, , 14]);
2108
+ _h.trys.push([1, 14, , 15]);
1911
2109
  return [4 /*yield*/, Promise.all([
1912
2110
  sdk.authenticate(email, password),
1913
2111
  sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword),
@@ -1944,21 +2142,24 @@ var tests = {
1944
2142
  return [4 /*yield*/, enduser_session_tests()];
1945
2143
  case 12:
1946
2144
  _h.sent();
1947
- return [3 /*break*/, 14];
2145
+ return [4 /*yield*/, role_based_access_tests()];
1948
2146
  case 13:
2147
+ _h.sent();
2148
+ return [3 /*break*/, 15];
2149
+ case 14:
1949
2150
  err_1 = _h.sent();
1950
2151
  console.error("Failed during custom test");
1951
2152
  console.error(err_1);
1952
2153
  process.exit(1);
1953
- return [3 /*break*/, 14];
1954
- case 14:
2154
+ return [3 /*break*/, 15];
2155
+ case 15:
1955
2156
  _a = [];
1956
2157
  for (_b in schema)
1957
2158
  _a.push(_b);
1958
2159
  _i = 0;
1959
- _h.label = 15;
1960
- case 15:
1961
- if (!(_i < _a.length)) return [3 /*break*/, 18];
2160
+ _h.label = 16;
2161
+ case 16:
2162
+ if (!(_i < _a.length)) return [3 /*break*/, 19];
1962
2163
  n = _a[_i];
1963
2164
  returnValidation = (_g = (_f = schema[n].customActions) === null || _f === void 0 ? void 0 : _f.create) === null || _g === void 0 ? void 0 : _g.returns;
1964
2165
  return [4 /*yield*/, run_generated_tests({
@@ -1969,38 +2170,38 @@ var tests = {
1969
2170
  create: returnValidation // ModelFields<ClientModel>,
1970
2171
  }
1971
2172
  })];
1972
- case 16:
1973
- _h.sent();
1974
- _h.label = 17;
1975
2173
  case 17:
1976
- _i++;
1977
- return [3 /*break*/, 15];
2174
+ _h.sent();
2175
+ _h.label = 18;
1978
2176
  case 18:
2177
+ _i++;
2178
+ return [3 /*break*/, 16];
2179
+ case 19:
1979
2180
  _c = [];
1980
2181
  for (_d in tests)
1981
2182
  _c.push(_d);
1982
2183
  _e = 0;
1983
- _h.label = 19;
1984
- case 19:
1985
- if (!(_e < _c.length)) return [3 /*break*/, 24];
1986
- t = _c[_e];
1987
2184
  _h.label = 20;
1988
2185
  case 20:
1989
- _h.trys.push([20, 22, , 23]);
1990
- return [4 /*yield*/, tests[t]()];
2186
+ if (!(_e < _c.length)) return [3 /*break*/, 25];
2187
+ t = _c[_e];
2188
+ _h.label = 21;
1991
2189
  case 21:
1992
- _h.sent();
1993
- return [3 /*break*/, 23];
2190
+ _h.trys.push([21, 23, , 24]);
2191
+ return [4 /*yield*/, tests[t]()];
1994
2192
  case 22:
2193
+ _h.sent();
2194
+ return [3 /*break*/, 24];
2195
+ case 23:
1995
2196
  err_2 = _h.sent();
1996
2197
  console.error("Error running test:");
1997
2198
  console.error(err_2);
1998
2199
  process.exit(1);
1999
- return [3 /*break*/, 23];
2000
- case 23:
2001
- _e++;
2002
- return [3 /*break*/, 19];
2200
+ return [3 /*break*/, 24];
2003
2201
  case 24:
2202
+ _e++;
2203
+ return [3 /*break*/, 20];
2204
+ case 25:
2004
2205
  process.exit();
2005
2206
  return [2 /*return*/];
2006
2207
  }