@tellescope/sdk 1.236.2 → 1.237.1

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.
Files changed (41) hide show
  1. package/lib/cjs/enduser.d.ts +1 -0
  2. package/lib/cjs/enduser.d.ts.map +1 -1
  3. package/lib/cjs/enduser.js +1 -0
  4. package/lib/cjs/enduser.js.map +1 -1
  5. package/lib/cjs/sdk.d.ts +1 -0
  6. package/lib/cjs/sdk.d.ts.map +1 -1
  7. package/lib/cjs/sdk.js +1 -0
  8. package/lib/cjs/sdk.js.map +1 -1
  9. package/lib/cjs/tests/api_tests/inbox_thread_assignment_updates.test.d.ts.map +1 -1
  10. package/lib/cjs/tests/api_tests/inbox_thread_assignment_updates.test.js +172 -64
  11. package/lib/cjs/tests/api_tests/inbox_thread_assignment_updates.test.js.map +1 -1
  12. package/lib/cjs/tests/api_tests/inbox_thread_mdb_filter.test.d.ts +6 -0
  13. package/lib/cjs/tests/api_tests/inbox_thread_mdb_filter.test.d.ts.map +1 -0
  14. package/lib/cjs/tests/api_tests/inbox_thread_mdb_filter.test.js +372 -0
  15. package/lib/cjs/tests/api_tests/inbox_thread_mdb_filter.test.js.map +1 -0
  16. package/lib/cjs/tests/tests.js +571 -105
  17. package/lib/cjs/tests/tests.js.map +1 -1
  18. package/lib/esm/enduser.d.ts +3 -0
  19. package/lib/esm/enduser.d.ts.map +1 -1
  20. package/lib/esm/enduser.js +1 -0
  21. package/lib/esm/enduser.js.map +1 -1
  22. package/lib/esm/sdk.d.ts +5 -2
  23. package/lib/esm/sdk.d.ts.map +1 -1
  24. package/lib/esm/sdk.js +1 -0
  25. package/lib/esm/sdk.js.map +1 -1
  26. package/lib/esm/tests/api_tests/inbox_thread_assignment_updates.test.d.ts.map +1 -1
  27. package/lib/esm/tests/api_tests/inbox_thread_assignment_updates.test.js +172 -64
  28. package/lib/esm/tests/api_tests/inbox_thread_assignment_updates.test.js.map +1 -1
  29. package/lib/esm/tests/api_tests/inbox_thread_mdb_filter.test.d.ts +6 -0
  30. package/lib/esm/tests/api_tests/inbox_thread_mdb_filter.test.d.ts.map +1 -0
  31. package/lib/esm/tests/api_tests/inbox_thread_mdb_filter.test.js +368 -0
  32. package/lib/esm/tests/api_tests/inbox_thread_mdb_filter.test.js.map +1 -0
  33. package/lib/esm/tests/tests.js +571 -105
  34. package/lib/esm/tests/tests.js.map +1 -1
  35. package/lib/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +10 -10
  37. package/src/enduser.ts +4 -0
  38. package/src/sdk.ts +4 -0
  39. package/src/tests/api_tests/inbox_thread_assignment_updates.test.ts +99 -0
  40. package/src/tests/tests.ts +399 -1
  41. package/test_generated.pdf +0 -0
@@ -14867,6 +14867,469 @@ var inbox_threads_loading_tests = function () { return __awaiter(void 0, void 0,
14867
14867
  }
14868
14868
  });
14869
14869
  }); };
14870
+ var inbox_threads_new_fields_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
14871
+ var e, resetThreadsAndDates, i, start, resetThreadBuildingDates, from, chatRoom, groupMMS, inboundCall, outboundCall, archivedDate, trashedDate, beforeReset, resetResult, afterReset, org, epochTime, emptyResetResult;
14872
+ var _a, _b;
14873
+ return __generator(this, function (_c) {
14874
+ switch (_c.label) {
14875
+ case 0:
14876
+ (0, testing_1.log_header)("Inbox Thread New Fields Tests (archivedAt, trashedAt, senderIds)");
14877
+ return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'Test', lname: 'NewFields' })
14878
+ // Use the new reset_threads endpoint for full resets (delete threads + reset dates)
14879
+ ];
14880
+ case 1:
14881
+ e = _c.sent();
14882
+ resetThreadsAndDates = function () { return sdk.api.inbox_threads.reset_threads(); };
14883
+ i = 0;
14884
+ start = new Date();
14885
+ resetThreadBuildingDates = function () { return (sdk.api.organizations.updateOne(businessId, {
14886
+ inboxThreadsBuiltFrom: new Date(start.getTime() + (i++)),
14887
+ inboxThreadsBuiltTo: new Date(start.getTime() + (i++))
14888
+ })); };
14889
+ // Start with clean state
14890
+ return [4 /*yield*/, resetThreadsAndDates()];
14891
+ case 2:
14892
+ // Start with clean state
14893
+ _c.sent();
14894
+ from = new Date(start.getTime() - 10000);
14895
+ // Test 1: Sender ID Tests - Email
14896
+ (0, testing_1.log_header)("Sender ID Tests - Email");
14897
+ return [4 /*yield*/, sdk.api.emails.createOne({
14898
+ logOnly: true,
14899
+ subject: 'Test Email Inbound',
14900
+ textContent: 'Inbound email',
14901
+ enduserId: e.id,
14902
+ inbound: true,
14903
+ userId: sdk.userInfo.id,
14904
+ })];
14905
+ case 3:
14906
+ _c.sent();
14907
+ return [4 /*yield*/, sdk.api.emails.createOne({
14908
+ logOnly: true,
14909
+ subject: 'Test Email Inbound',
14910
+ textContent: 'Outbound email',
14911
+ enduserId: e.id,
14912
+ inbound: false,
14913
+ userId: sdk.userInfo.id,
14914
+ })];
14915
+ case 4:
14916
+ _c.sent();
14917
+ return [4 /*yield*/, (0, testing_1.async_test)('build email threads with sender IDs', function () { return sdk.api.inbox_threads.build_threads({ from: from, to: new Date() }); }, { onResult: function (_a) {
14918
+ var alreadyBuilt = _a.alreadyBuilt;
14919
+ return !alreadyBuilt;
14920
+ } })];
14921
+ case 5:
14922
+ _c.sent();
14923
+ return [4 /*yield*/, (0, testing_1.async_test)('verify email thread has correct sender IDs', function () { return sdk.api.inbox_threads.load_threads({}); }, { onResult: function (_a) {
14924
+ var threads = _a.threads;
14925
+ var emailThread = threads.find(function (t) { return t.type === 'Email'; });
14926
+ return !!emailThread
14927
+ && emailThread.recentOutboundUserId === sdk.userInfo.id
14928
+ && emailThread.recentInboundEnduserId === e.id;
14929
+ } })
14930
+ // Test 2: Sender ID Tests - SMS
14931
+ ];
14932
+ case 6:
14933
+ _c.sent();
14934
+ // Test 2: Sender ID Tests - SMS
14935
+ (0, testing_1.log_header)("Sender ID Tests - SMS");
14936
+ return [4 /*yield*/, resetThreadsAndDates()];
14937
+ case 7:
14938
+ _c.sent();
14939
+ return [4 /*yield*/, sdk.api.sms_messages.createOne({
14940
+ logOnly: true,
14941
+ inbound: true,
14942
+ enduserId: e.id,
14943
+ message: 'Inbound SMS',
14944
+ userId: sdk.userInfo.id,
14945
+ phoneNumber: '+15555555555',
14946
+ enduserPhoneNumber: '+15555555556',
14947
+ })];
14948
+ case 8:
14949
+ _c.sent();
14950
+ return [4 /*yield*/, sdk.api.sms_messages.createOne({
14951
+ logOnly: true,
14952
+ inbound: false,
14953
+ enduserId: e.id,
14954
+ message: 'Outbound SMS',
14955
+ userId: sdk.userInfo.id,
14956
+ phoneNumber: '+15555555555',
14957
+ enduserPhoneNumber: '+15555555556',
14958
+ })];
14959
+ case 9:
14960
+ _c.sent();
14961
+ return [4 /*yield*/, (0, testing_1.async_test)('build SMS threads with sender IDs', function () { return sdk.api.inbox_threads.build_threads({ from: from, to: new Date() }); }, { onResult: function (_a) {
14962
+ var alreadyBuilt = _a.alreadyBuilt;
14963
+ return !alreadyBuilt;
14964
+ } })];
14965
+ case 10:
14966
+ _c.sent();
14967
+ return [4 /*yield*/, (0, testing_1.async_test)('verify SMS thread has correct sender IDs', function () { return sdk.api.inbox_threads.load_threads({}); }, { onResult: function (_a) {
14968
+ var threads = _a.threads;
14969
+ var smsThread = threads.find(function (t) { return t.type === 'SMS'; });
14970
+ return !!smsThread
14971
+ && smsThread.recentOutboundUserId === sdk.userInfo.id
14972
+ && smsThread.recentInboundEnduserId === e.id;
14973
+ } })
14974
+ // Test 3: Sender ID Tests - ChatRoom
14975
+ ];
14976
+ case 11:
14977
+ _c.sent();
14978
+ // Test 3: Sender ID Tests - ChatRoom
14979
+ (0, testing_1.log_header)("Sender ID Tests - ChatRoom");
14980
+ return [4 /*yield*/, resetThreadsAndDates()];
14981
+ case 12:
14982
+ _c.sent();
14983
+ return [4 /*yield*/, sdk.api.chat_rooms.createOne({
14984
+ title: 'Test Chat Room',
14985
+ userIds: [sdk.userInfo.id],
14986
+ enduserIds: [e.id],
14987
+ })
14988
+ // First message from user (outbound)
14989
+ ];
14990
+ case 13:
14991
+ chatRoom = _c.sent();
14992
+ // First message from user (outbound)
14993
+ return [4 /*yield*/, sdk.api.chats.createOne({ roomId: chatRoom.id, message: 'User message', senderId: sdk.userInfo.id })];
14994
+ case 14:
14995
+ // First message from user (outbound)
14996
+ _c.sent();
14997
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
14998
+ case 15:
14999
+ _c.sent();
15000
+ return [4 /*yield*/, (0, testing_1.async_test)('build chat threads after user message', function () { return sdk.api.inbox_threads.build_threads({ from: from, to: new Date() }); }, { onResult: function (_a) {
15001
+ var alreadyBuilt = _a.alreadyBuilt;
15002
+ return !alreadyBuilt;
15003
+ } })];
15004
+ case 16:
15005
+ _c.sent();
15006
+ return [4 /*yield*/, (0, testing_1.async_test)('verify chat thread has outbound userId only', function () { return sdk.api.inbox_threads.load_threads({}); }, { onResult: function (_a) {
15007
+ var threads = _a.threads;
15008
+ var chatThread = threads.find(function (t) { return t.type === 'Chat'; });
15009
+ return !!chatThread
15010
+ && chatThread.recentOutboundUserId === sdk.userInfo.id
15011
+ && !chatThread.recentInboundEnduserId;
15012
+ } })
15013
+ // Now enduser sends a message (becomes recentSender, but merge preserves previous outbound userId)
15014
+ ];
15015
+ case 17:
15016
+ _c.sent();
15017
+ // Now enduser sends a message (becomes recentSender, but merge preserves previous outbound userId)
15018
+ return [4 /*yield*/, sdk.api.chats.createOne({ roomId: chatRoom.id, message: 'Enduser message', enduserId: e.id, senderId: e.id })];
15019
+ case 18:
15020
+ // Now enduser sends a message (becomes recentSender, but merge preserves previous outbound userId)
15021
+ _c.sent();
15022
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
15023
+ case 19:
15024
+ _c.sent();
15025
+ return [4 /*yield*/, resetThreadBuildingDates()]; // Only reset dates, keep existing thread for merge test
15026
+ case 20:
15027
+ _c.sent(); // Only reset dates, keep existing thread for merge test
15028
+ return [4 /*yield*/, (0, testing_1.async_test)('rebuild chat threads after enduser message', function () { return sdk.api.inbox_threads.build_threads({ from: from, to: new Date() }); }, { onResult: function (_a) {
15029
+ var alreadyBuilt = _a.alreadyBuilt;
15030
+ return !alreadyBuilt;
15031
+ } })];
15032
+ case 21:
15033
+ _c.sent();
15034
+ return [4 /*yield*/, (0, testing_1.async_test)('verify chat thread has both sender IDs (merge preserves previous)', function () { return sdk.api.inbox_threads.load_threads({}); }, { onResult: function (_a) {
15035
+ var threads = _a.threads;
15036
+ var chatThread = threads.find(function (t) { return t.type === 'Chat'; });
15037
+ // ChatRoom only tracks one recentSender at a time, but merge preserves both IDs
15038
+ return !!chatThread
15039
+ && chatThread.recentOutboundUserId === sdk.userInfo.id // preserved from previous build
15040
+ && chatThread.recentInboundEnduserId === e.id; // from current build
15041
+ } })
15042
+ // Test 4: Sender ID Tests - GroupMMS
15043
+ ];
15044
+ case 22:
15045
+ _c.sent();
15046
+ // Test 4: Sender ID Tests - GroupMMS
15047
+ (0, testing_1.log_header)("Sender ID Tests - GroupMMS");
15048
+ return [4 /*yield*/, resetThreadsAndDates()];
15049
+ case 23:
15050
+ _c.sent();
15051
+ return [4 /*yield*/, sdk.api.group_mms_conversations.createOne({
15052
+ enduserIds: [e.id],
15053
+ userIds: [sdk.userInfo.id],
15054
+ userStates: [],
15055
+ messages: [
15056
+ { message: 'Inbound message', sender: e.id, timestamp: Date.now() - 1000, logOnly: true },
15057
+ { message: 'Outbound message', sender: sdk.userInfo.id, timestamp: Date.now(), logOnly: true },
15058
+ ],
15059
+ })];
15060
+ case 24:
15061
+ groupMMS = _c.sent();
15062
+ return [4 /*yield*/, (0, testing_1.async_test)('build GroupMMS threads with sender IDs', function () { return sdk.api.inbox_threads.build_threads({ from: from, to: new Date() }); }, { onResult: function (_a) {
15063
+ var alreadyBuilt = _a.alreadyBuilt;
15064
+ return !alreadyBuilt;
15065
+ } })];
15066
+ case 25:
15067
+ _c.sent();
15068
+ return [4 /*yield*/, (0, testing_1.async_test)('verify GroupMMS thread has correct sender IDs', function () { return sdk.api.inbox_threads.load_threads({}); }, { onResult: function (_a) {
15069
+ var threads = _a.threads;
15070
+ var groupMMSThread = threads.find(function (t) { return t.type === 'GroupMMS'; });
15071
+ return !!groupMMSThread
15072
+ && groupMMSThread.recentOutboundUserId === sdk.userInfo.id
15073
+ && groupMMSThread.recentInboundEnduserId === e.id;
15074
+ } })
15075
+ // Test 5: Sender ID Tests - PhoneCall
15076
+ ];
15077
+ case 26:
15078
+ _c.sent();
15079
+ // Test 5: Sender ID Tests - PhoneCall
15080
+ (0, testing_1.log_header)("Sender ID Tests - PhoneCall");
15081
+ return [4 /*yield*/, resetThreadsAndDates()];
15082
+ case 27:
15083
+ _c.sent();
15084
+ return [4 /*yield*/, sdk.api.phone_calls.createOne({
15085
+ enduserId: e.id,
15086
+ inbound: true,
15087
+ to: '+15555555555',
15088
+ from: '+15555555556',
15089
+ userId: sdk.userInfo.id,
15090
+ })];
15091
+ case 28:
15092
+ inboundCall = _c.sent();
15093
+ return [4 /*yield*/, (0, testing_1.async_test)('build phone call threads (inbound)', function () { return sdk.api.inbox_threads.build_threads({ from: from, to: new Date() }); }, { onResult: function (_a) {
15094
+ var alreadyBuilt = _a.alreadyBuilt;
15095
+ return !alreadyBuilt;
15096
+ } })];
15097
+ case 29:
15098
+ _c.sent();
15099
+ return [4 /*yield*/, (0, testing_1.async_test)('verify inbound phone call thread has enduserId', function () { return sdk.api.inbox_threads.load_threads({}); }, { onResult: function (_a) {
15100
+ var threads = _a.threads;
15101
+ var callThread = threads.find(function (t) { return t.type === 'Phone' && t.threadId === inboundCall.id; });
15102
+ return !!callThread
15103
+ && !callThread.recentOutboundUserId
15104
+ && callThread.recentInboundEnduserId === e.id;
15105
+ } })
15106
+ // Test outbound call separately to avoid date range issues
15107
+ ];
15108
+ case 30:
15109
+ _c.sent();
15110
+ // Test outbound call separately to avoid date range issues
15111
+ return [4 /*yield*/, resetThreadsAndDates()];
15112
+ case 31:
15113
+ // Test outbound call separately to avoid date range issues
15114
+ _c.sent();
15115
+ return [4 /*yield*/, sdk.api.phone_calls.createOne({
15116
+ enduserId: e.id,
15117
+ inbound: false,
15118
+ to: '+15555555556',
15119
+ from: '+15555555555',
15120
+ userId: sdk.userInfo.id,
15121
+ })];
15122
+ case 32:
15123
+ outboundCall = _c.sent();
15124
+ return [4 /*yield*/, (0, testing_1.async_test)('build phone call threads (outbound)', function () { return sdk.api.inbox_threads.build_threads({ from: from, to: new Date() }); }, { onResult: function (_a) {
15125
+ var alreadyBuilt = _a.alreadyBuilt;
15126
+ return !alreadyBuilt;
15127
+ } })];
15128
+ case 33:
15129
+ _c.sent();
15130
+ return [4 /*yield*/, (0, testing_1.async_test)('verify outbound phone call thread has userId', function () { return sdk.api.inbox_threads.load_threads({}); }, { onResult: function (_a) {
15131
+ var threads = _a.threads;
15132
+ var callThread = threads.find(function (t) { return t.type === 'Phone' && t.threadId === outboundCall.id; });
15133
+ return !!callThread
15134
+ && callThread.recentOutboundUserId === sdk.userInfo.id
15135
+ && !callThread.recentInboundEnduserId;
15136
+ } })
15137
+ // Test 6: Archive/Trash Tests - Propagation
15138
+ ];
15139
+ case 34:
15140
+ _c.sent();
15141
+ // Test 6: Archive/Trash Tests - Propagation
15142
+ (0, testing_1.log_header)("Archive/Trash Tests - Propagation");
15143
+ return [4 /*yield*/, resetThreadsAndDates()];
15144
+ case 35:
15145
+ _c.sent();
15146
+ archivedDate = new Date();
15147
+ return [4 /*yield*/, sdk.api.emails.createOne({
15148
+ logOnly: true,
15149
+ subject: 'Archived Email',
15150
+ textContent: 'This email is archived',
15151
+ enduserId: e.id,
15152
+ inbound: true,
15153
+ userId: sdk.userInfo.id,
15154
+ archivedAt: archivedDate,
15155
+ })];
15156
+ case 36:
15157
+ _c.sent();
15158
+ return [4 /*yield*/, (0, testing_1.async_test)('build threads with archived email', function () { return sdk.api.inbox_threads.build_threads({ from: from, to: new Date() }); }, { onResult: function (_a) {
15159
+ var alreadyBuilt = _a.alreadyBuilt;
15160
+ return !alreadyBuilt;
15161
+ } })];
15162
+ case 37:
15163
+ _c.sent();
15164
+ return [4 /*yield*/, (0, testing_1.async_test)('verify thread has archivedAt populated', function () { return sdk.api.inbox_threads.load_threads({}); }, { onResult: function (_a) {
15165
+ var threads = _a.threads;
15166
+ var emailThread = threads.find(function (t) { return t.type === 'Email'; });
15167
+ return !!emailThread
15168
+ && !!emailThread.archivedAt
15169
+ && new Date(emailThread.archivedAt).getTime() === archivedDate.getTime();
15170
+ } })
15171
+ // Test 7: Archive/Trash Tests - Clearing (new message clears archived status)
15172
+ ];
15173
+ case 38:
15174
+ _c.sent();
15175
+ // Test 7: Archive/Trash Tests - Clearing (new message clears archived status)
15176
+ (0, testing_1.log_header)("Archive/Trash Tests - Clearing");
15177
+ return [4 /*yield*/, sdk.api.emails.createOne({
15178
+ logOnly: true,
15179
+ subject: 'Archived Email',
15180
+ textContent: 'This email is NOT archived',
15181
+ enduserId: e.id,
15182
+ inbound: true,
15183
+ userId: sdk.userInfo.id,
15184
+ // No archivedAt
15185
+ })];
15186
+ case 39:
15187
+ _c.sent();
15188
+ return [4 /*yield*/, resetThreadBuildingDates()]; // Only reset dates, keep existing thread for merge test
15189
+ case 40:
15190
+ _c.sent(); // Only reset dates, keep existing thread for merge test
15191
+ return [4 /*yield*/, (0, testing_1.async_test)('rebuild threads after non-archived message', function () { return sdk.api.inbox_threads.build_threads({ from: from, to: new Date() }); }, { onResult: function (_a) {
15192
+ var alreadyBuilt = _a.alreadyBuilt;
15193
+ return !alreadyBuilt;
15194
+ } })];
15195
+ case 41:
15196
+ _c.sent();
15197
+ return [4 /*yield*/, (0, testing_1.async_test)('verify thread archivedAt is cleared', function () { return sdk.api.inbox_threads.load_threads({}); }, { onResult: function (_a) {
15198
+ var threads = _a.threads;
15199
+ var emailThread = threads.find(function (t) { return t.type === 'Email'; });
15200
+ return !!emailThread && emailThread.archivedAt === '';
15201
+ } })
15202
+ // Test 8: Archive/Trash Tests - trashedAt propagation
15203
+ ];
15204
+ case 42:
15205
+ _c.sent();
15206
+ // Test 8: Archive/Trash Tests - trashedAt propagation
15207
+ (0, testing_1.log_header)("Archive/Trash Tests - Trashed Propagation");
15208
+ return [4 /*yield*/, resetThreadsAndDates()];
15209
+ case 43:
15210
+ _c.sent();
15211
+ trashedDate = new Date();
15212
+ return [4 /*yield*/, sdk.api.sms_messages.createOne({
15213
+ logOnly: true,
15214
+ inbound: true,
15215
+ enduserId: e.id,
15216
+ message: 'Trashed SMS',
15217
+ userId: sdk.userInfo.id,
15218
+ phoneNumber: '+15555555557',
15219
+ enduserPhoneNumber: '+15555555558',
15220
+ trashedAt: trashedDate,
15221
+ })];
15222
+ case 44:
15223
+ _c.sent();
15224
+ return [4 /*yield*/, (0, testing_1.async_test)('build threads with trashed SMS', function () { return sdk.api.inbox_threads.build_threads({ from: from, to: new Date() }); }, { onResult: function (_a) {
15225
+ var alreadyBuilt = _a.alreadyBuilt;
15226
+ return !alreadyBuilt;
15227
+ } })];
15228
+ case 45:
15229
+ _c.sent();
15230
+ return [4 /*yield*/, (0, testing_1.async_test)('verify thread has trashedAt populated', function () { return sdk.api.inbox_threads.load_threads({}); }, { onResult: function (_a) {
15231
+ var threads = _a.threads;
15232
+ var smsThread = threads.find(function (t) { return t.type === 'SMS' && t.phoneNumber === '+15555555557'; });
15233
+ return !!smsThread
15234
+ && !!smsThread.trashedAt
15235
+ && new Date(smsThread.trashedAt).getTime() === trashedDate.getTime();
15236
+ } })
15237
+ // Test 9: Archive/Trash Tests - Most Recent Archived, Older Not
15238
+ ];
15239
+ case 46:
15240
+ _c.sent();
15241
+ // Test 9: Archive/Trash Tests - Most Recent Archived, Older Not
15242
+ (0, testing_1.log_header)("Archive/Trash Tests - Most Recent Archived, Older Not");
15243
+ return [4 /*yield*/, resetThreadsAndDates()
15244
+ // Create non-archived message first (older)
15245
+ ];
15246
+ case 47:
15247
+ _c.sent();
15248
+ // Create non-archived message first (older)
15249
+ return [4 /*yield*/, sdk.api.emails.createOne({
15250
+ logOnly: true,
15251
+ subject: 'Archive Order Test',
15252
+ textContent: 'Older non-archived email',
15253
+ enduserId: e.id,
15254
+ inbound: true,
15255
+ userId: sdk.userInfo.id,
15256
+ // No archivedAt
15257
+ })];
15258
+ case 48:
15259
+ // Create non-archived message first (older)
15260
+ _c.sent();
15261
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 100)
15262
+ // Create archived message second (newer = most recent)
15263
+ ]; // Small delay to ensure ordering
15264
+ case 49:
15265
+ _c.sent(); // Small delay to ensure ordering
15266
+ // Create archived message second (newer = most recent)
15267
+ return [4 /*yield*/, sdk.api.emails.createOne({
15268
+ logOnly: true,
15269
+ subject: 'Archive Order Test',
15270
+ textContent: 'Newer archived email',
15271
+ enduserId: e.id,
15272
+ inbound: true,
15273
+ userId: sdk.userInfo.id,
15274
+ archivedAt: new Date(),
15275
+ })];
15276
+ case 50:
15277
+ // Create archived message second (newer = most recent)
15278
+ _c.sent();
15279
+ return [4 /*yield*/, (0, testing_1.async_test)('build threads for archive order test', function () { return sdk.api.inbox_threads.build_threads({ from: from, to: new Date() }); }, { onResult: function (_a) {
15280
+ var alreadyBuilt = _a.alreadyBuilt;
15281
+ return !alreadyBuilt;
15282
+ } })];
15283
+ case 51:
15284
+ _c.sent();
15285
+ return [4 /*yield*/, (0, testing_1.async_test)('verify thread archivedAt follows most recent message (IS archived)', function () { return sdk.api.inbox_threads.load_threads({}); }, { onResult: function (_a) {
15286
+ var threads = _a.threads;
15287
+ var emailThread = threads.find(function (t) { return t.type === 'Email'; });
15288
+ // Most recent message is archived, so thread should be archived
15289
+ return !!emailThread && !!emailThread.archivedAt;
15290
+ } })
15291
+ // Test 10: Reset Threads Endpoint - Comprehensive Coverage
15292
+ ];
15293
+ case 52:
15294
+ _c.sent();
15295
+ // Test 10: Reset Threads Endpoint - Comprehensive Coverage
15296
+ (0, testing_1.log_header)("Reset Threads Endpoint Test");
15297
+ return [4 /*yield*/, sdk.api.inbox_threads.load_threads({})];
15298
+ case 53:
15299
+ beforeReset = _c.sent();
15300
+ (0, testing_1.assert)(beforeReset.threads.length > 0, 'no threads before reset test', 'threads exist before reset test');
15301
+ return [4 /*yield*/, sdk.api.inbox_threads.reset_threads()];
15302
+ case 54:
15303
+ resetResult = _c.sent();
15304
+ (0, testing_1.assert)(resetResult.deletedCount > 0, 'no threads deleted by reset', 'reset_threads deleted threads');
15305
+ return [4 /*yield*/, sdk.api.inbox_threads.load_threads({})];
15306
+ case 55:
15307
+ afterReset = _c.sent();
15308
+ (0, testing_1.assert)(afterReset.threads.length === 0, 'threads remain after reset', 'all threads deleted after reset');
15309
+ return [4 /*yield*/, sdk.api.organizations.getOne(businessId)];
15310
+ case 56:
15311
+ org = _c.sent();
15312
+ epochTime = new Date(0).getTime();
15313
+ (0, testing_1.assert)(new Date((_a = org.inboxThreadsBuiltFrom) !== null && _a !== void 0 ? _a : 0).getTime() === epochTime, 'inboxThreadsBuiltFrom not reset to epoch', 'organization inboxThreadsBuiltFrom reset to epoch');
15314
+ (0, testing_1.assert)(new Date((_b = org.inboxThreadsBuiltTo) !== null && _b !== void 0 ? _b : 0).getTime() === epochTime, 'inboxThreadsBuiltTo not reset to epoch', 'organization inboxThreadsBuiltTo reset to epoch');
15315
+ return [4 /*yield*/, sdk.api.inbox_threads.reset_threads()];
15316
+ case 57:
15317
+ emptyResetResult = _c.sent();
15318
+ (0, testing_1.assert)(emptyResetResult.deletedCount === 0, 'deletedCount should be 0 when no threads', 'reset with no threads returns 0');
15319
+ // Cleanup
15320
+ return [4 /*yield*/, Promise.all([
15321
+ sdk.api.endusers.deleteOne(e.id),
15322
+ sdk.api.chat_rooms.deleteOne(chatRoom.id).catch(function () { }),
15323
+ sdk.api.group_mms_conversations.deleteOne(groupMMS.id).catch(function () { }),
15324
+ resetThreadsAndDates(), // Use the new endpoint for cleanup
15325
+ ])];
15326
+ case 58:
15327
+ // Cleanup
15328
+ _c.sent();
15329
+ return [2 /*return*/];
15330
+ }
15331
+ });
15332
+ }); };
14870
15333
  var get_next_reminder_timestamp_tests = function () {
14871
15334
  (0, testing_1.log_header)("Get Next Reminder Timestamp Tests");
14872
15335
  var startTimeInMS = Date.now();
@@ -14970,7 +15433,7 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
14970
15433
  (0, testing_1.assert)((0, utilities_1.truncate_string)(null, { length: 4, showEllipsis: false }) === '', 'truncate doesnt work for non string', 'trucate works for non-string');
14971
15434
  _l.label = 2;
14972
15435
  case 2:
14973
- _l.trys.push([2, 94, , 95]);
15436
+ _l.trys.push([2, 95, , 96]);
14974
15437
  get_next_reminder_timestamp_tests();
14975
15438
  (0, exports.form_conditional_logic_tests)();
14976
15439
  return [4 /*yield*/, test_weighted_round_robin()];
@@ -15111,243 +15574,246 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
15111
15574
  return [4 /*yield*/, (0, setup_1.setup_tests)(sdk, sdkNonAdmin)];
15112
15575
  case 16:
15113
15576
  _l.sent();
15114
- return [4 /*yield*/, (0, auto_merge_form_submission_test_1.auto_merge_form_submission_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15577
+ return [4 /*yield*/, inbox_threads_new_fields_tests()];
15115
15578
  case 17:
15116
15579
  _l.sent();
15117
- return [4 /*yield*/, threadKeyTests()];
15580
+ return [4 /*yield*/, (0, inbox_thread_assignment_updates_test_1.inbox_thread_assignment_updates_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15118
15581
  case 18:
15119
15582
  _l.sent();
15120
- return [4 /*yield*/, automation_trigger_tests()];
15583
+ return [4 /*yield*/, (0, auto_merge_form_submission_test_1.auto_merge_form_submission_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15121
15584
  case 19:
15122
15585
  _l.sent();
15123
- return [4 /*yield*/, (0, managed_content_enduser_access_test_1.managed_content_enduser_access_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15586
+ return [4 /*yield*/, threadKeyTests()];
15124
15587
  case 20:
15125
15588
  _l.sent();
15126
- return [4 /*yield*/, (0, afteraction_day_of_month_delay_test_1.afteraction_day_of_month_delay_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15589
+ return [4 /*yield*/, automation_trigger_tests()];
15127
15590
  case 21:
15128
15591
  _l.sent();
15129
- return [4 /*yield*/, (0, bulk_assignment_test_1.bulk_assignment_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15592
+ return [4 /*yield*/, (0, managed_content_enduser_access_test_1.managed_content_enduser_access_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15130
15593
  case 22:
15131
15594
  _l.sent();
15132
- return [4 /*yield*/, (0, custom_aggregation_test_1.custom_aggregation_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15595
+ return [4 /*yield*/, (0, afteraction_day_of_month_delay_test_1.afteraction_day_of_month_delay_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15133
15596
  case 23:
15134
15597
  _l.sent();
15135
- return [4 /*yield*/, (0, exports.formsort_tests)()];
15598
+ return [4 /*yield*/, (0, bulk_assignment_test_1.bulk_assignment_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15136
15599
  case 24:
15137
15600
  _l.sent();
15138
- return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
15601
+ return [4 /*yield*/, (0, custom_aggregation_test_1.custom_aggregation_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15139
15602
  case 25:
15140
15603
  _l.sent();
15141
- return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15604
+ return [4 /*yield*/, (0, exports.formsort_tests)()];
15142
15605
  case 26:
15143
15606
  _l.sent();
15144
- return [4 /*yield*/, (0, calendar_event_limits_test_1.calendar_event_limits_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15607
+ return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
15145
15608
  case 27:
15146
15609
  _l.sent();
15147
- return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
15610
+ return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15148
15611
  case 28:
15149
15612
  _l.sent();
15150
- return [4 /*yield*/, (0, monthly_availability_restrictions_test_1.monthly_availability_restrictions_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15613
+ return [4 /*yield*/, (0, calendar_event_limits_test_1.calendar_event_limits_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15151
15614
  case 29:
15152
15615
  _l.sent();
15153
- return [4 /*yield*/, (0, journey_error_branching_test_1.journey_error_branching_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15616
+ return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
15154
15617
  case 30:
15155
15618
  _l.sent();
15156
- return [4 /*yield*/, (0, inbox_thread_assignment_updates_test_1.inbox_thread_assignment_updates_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15619
+ return [4 /*yield*/, (0, monthly_availability_restrictions_test_1.monthly_availability_restrictions_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15157
15620
  case 31:
15158
15621
  _l.sent();
15159
- return [4 /*yield*/, (0, message_assignment_trigger_test_1.message_assignment_trigger_tests)({ sdk: sdk })];
15622
+ return [4 /*yield*/, (0, journey_error_branching_test_1.journey_error_branching_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15160
15623
  case 32:
15161
15624
  _l.sent();
15162
- return [4 /*yield*/, inbox_threads_building_tests()];
15625
+ return [4 /*yield*/, (0, message_assignment_trigger_test_1.message_assignment_trigger_tests)({ sdk: sdk })];
15163
15626
  case 33:
15164
15627
  _l.sent();
15165
- return [4 /*yield*/, inbox_threads_loading_tests()];
15628
+ return [4 /*yield*/, inbox_threads_building_tests()];
15166
15629
  case 34:
15167
15630
  _l.sent();
15168
- return [4 /*yield*/, (0, load_inbox_data_test_1.load_inbox_data_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15631
+ return [4 /*yield*/, inbox_threads_loading_tests()];
15169
15632
  case 35:
15170
15633
  _l.sent();
15171
- return [4 /*yield*/, (0, enduser_observations_acknowledge_test_1.enduser_observations_acknowledge_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15634
+ return [4 /*yield*/, (0, load_inbox_data_test_1.load_inbox_data_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15172
15635
  case 36:
15173
15636
  _l.sent();
15174
- return [4 /*yield*/, (0, create_user_notifications_trigger_test_1.create_user_notifications_trigger_tests)({ sdk: sdk })];
15637
+ return [4 /*yield*/, (0, enduser_observations_acknowledge_test_1.enduser_observations_acknowledge_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15175
15638
  case 37:
15176
15639
  _l.sent();
15177
- return [4 /*yield*/, group_mms_active_tests()];
15640
+ return [4 /*yield*/, (0, create_user_notifications_trigger_test_1.create_user_notifications_trigger_tests)({ sdk: sdk })];
15178
15641
  case 38:
15179
15642
  _l.sent();
15180
- return [4 /*yield*/, auto_reply_tests()];
15643
+ return [4 /*yield*/, group_mms_active_tests()];
15181
15644
  case 39:
15182
15645
  _l.sent();
15183
- return [4 /*yield*/, (0, exports.relationships_tests)()];
15646
+ return [4 /*yield*/, auto_reply_tests()];
15184
15647
  case 40:
15185
15648
  _l.sent();
15186
- return [4 /*yield*/, rate_limit_tests()];
15649
+ return [4 /*yield*/, (0, exports.relationships_tests)()];
15187
15650
  case 41:
15188
15651
  _l.sent();
15189
- return [4 /*yield*/, ip_address_form_tests()];
15652
+ return [4 /*yield*/, rate_limit_tests()];
15190
15653
  case 42:
15191
15654
  _l.sent();
15192
- return [4 /*yield*/, bulk_update_tests()];
15655
+ return [4 /*yield*/, ip_address_form_tests()];
15193
15656
  case 43:
15194
15657
  _l.sent();
15195
- return [4 /*yield*/, (0, exports.cancel_upcoming_appointments_journey_action_test)()];
15658
+ return [4 /*yield*/, bulk_update_tests()];
15196
15659
  case 44:
15197
15660
  _l.sent();
15198
- return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
15661
+ return [4 /*yield*/, (0, exports.cancel_upcoming_appointments_journey_action_test)()];
15199
15662
  case 45:
15663
+ _l.sent();
15664
+ return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
15665
+ case 46:
15200
15666
  _l.sent(); // should come right after setup tests
15201
15667
  return [4 /*yield*/, sync_tests_with_access_tags()]; // should come directly after setup to avoid extra sync values
15202
- case 46:
15668
+ case 47:
15203
15669
  _l.sent(); // should come directly after setup to avoid extra sync values
15204
15670
  return [4 /*yield*/, sync_tests()]; // should come directly after setup to avoid extra sync values
15205
- case 47:
15671
+ case 48:
15206
15672
  _l.sent(); // should come directly after setup to avoid extra sync values
15207
15673
  return [4 /*yield*/, get_templated_message_tests()];
15208
- case 48:
15674
+ case 49:
15209
15675
  _l.sent();
15210
15676
  return [4 /*yield*/, updatedAt_tests()];
15211
- case 49:
15677
+ case 50:
15212
15678
  _l.sent();
15213
15679
  return [4 /*yield*/, file_source_tests()];
15214
- case 50:
15680
+ case 51:
15215
15681
  _l.sent();
15216
15682
  return [4 /*yield*/, enduser_access_tags_tests()];
15217
- case 51:
15683
+ case 52:
15218
15684
  _l.sent();
15219
15685
  return [4 /*yield*/, enduserAccessTests()];
15220
- case 52:
15686
+ case 53:
15221
15687
  _l.sent();
15222
15688
  return [4 /*yield*/, test_form_response_search()];
15223
- case 53:
15689
+ case 54:
15224
15690
  _l.sent();
15225
15691
  return [4 /*yield*/, date_parsing_tests()];
15226
- case 54:
15692
+ case 55:
15227
15693
  _l.sent();
15228
15694
  return [4 /*yield*/, fromEmailOverride_tests()];
15229
- case 55:
15695
+ case 56:
15230
15696
  _l.sent();
15231
15697
  return [4 /*yield*/, ticket_tests()];
15232
- case 56:
15698
+ case 57:
15233
15699
  _l.sent();
15234
15700
  return [4 /*yield*/, uniqueness_tests()];
15235
- case 57:
15701
+ case 58:
15236
15702
  _l.sent();
15237
15703
  return [4 /*yield*/, (0, exports.enduser_orders_tests)()];
15238
- case 58:
15704
+ case 59:
15239
15705
  _l.sent();
15240
15706
  return [4 /*yield*/, calendar_event_care_team_tests()];
15241
- case 59:
15707
+ case 60:
15242
15708
  _l.sent();
15243
15709
  return [4 /*yield*/, merge_enduser_tests()];
15244
- case 60:
15710
+ case 61:
15245
15711
  _l.sent();
15246
15712
  return [4 /*yield*/, input_modifier_tests()];
15247
- case 61:
15713
+ case 62:
15248
15714
  _l.sent();
15249
15715
  return [4 /*yield*/, (0, exports.switch_to_related_contacts_tests)()];
15250
- case 62:
15716
+ case 63:
15251
15717
  _l.sent();
15252
15718
  return [4 /*yield*/, redaction_tests()];
15253
- case 63:
15719
+ case 64:
15254
15720
  _l.sent();
15255
15721
  return [4 /*yield*/, (0, exports.no_chained_triggers_tests)()];
15256
- case 64:
15722
+ case 65:
15257
15723
  _l.sent();
15258
15724
  return [4 /*yield*/, mdb_filter_tests()];
15259
- case 65:
15725
+ case 66:
15260
15726
  _l.sent();
15261
15727
  return [4 /*yield*/, superadmin_tests()];
15262
- case 66:
15728
+ case 67:
15263
15729
  _l.sent();
15264
15730
  return [4 /*yield*/, (0, exports.ticket_queue_tests)()];
15265
- case 67:
15731
+ case 68:
15266
15732
  _l.sent();
15267
15733
  return [4 /*yield*/, vital_trigger_tests()];
15268
- case 68:
15734
+ case 69:
15269
15735
  _l.sent();
15270
15736
  return [4 /*yield*/, close_reasons_no_duplicates_tests()];
15271
- case 69:
15737
+ case 70:
15272
15738
  _l.sent();
15273
15739
  return [4 /*yield*/, register_as_enduser_tests()];
15274
- case 70:
15740
+ case 71:
15275
15741
  _l.sent();
15276
15742
  return [4 /*yield*/, lockout_tests()];
15277
- case 71:
15743
+ case 72:
15278
15744
  _l.sent();
15279
15745
  return [4 /*yield*/, delete_user_tests()
15280
15746
  // await test_send_with_template()
15281
15747
  ];
15282
- case 72:
15748
+ case 73:
15283
15749
  _l.sent();
15284
15750
  // await test_send_with_template()
15285
15751
  return [4 /*yield*/, bulk_read_tests()];
15286
- case 73:
15752
+ case 74:
15287
15753
  // await test_send_with_template()
15288
15754
  _l.sent();
15289
15755
  return [4 /*yield*/, (0, exports.ticket_reminder_tests)()];
15290
- case 74:
15756
+ case 75:
15291
15757
  _l.sent();
15292
15758
  return [4 /*yield*/, marketing_email_unsubscribe_tests()];
15293
- case 75:
15759
+ case 76:
15294
15760
  _l.sent();
15295
15761
  return [4 /*yield*/, unique_strings_tests()];
15296
- case 76:
15762
+ case 77:
15297
15763
  _l.sent();
15298
15764
  return [4 /*yield*/, (0, exports.alternate_phones_tests)()];
15299
- case 77:
15765
+ case 78:
15300
15766
  _l.sent();
15301
15767
  return [4 /*yield*/, role_based_access_tests()];
15302
- case 78:
15768
+ case 79:
15303
15769
  _l.sent();
15304
15770
  return [4 /*yield*/, enduser_session_tests()];
15305
- case 79:
15771
+ case 80:
15306
15772
  _l.sent();
15307
15773
  return [4 /*yield*/, nextReminderInMS_tests()];
15308
- case 80:
15774
+ case 81:
15309
15775
  _l.sent();
15310
15776
  return [4 /*yield*/, search_tests()];
15311
- case 81:
15777
+ case 82:
15312
15778
  _l.sent();
15313
15779
  return [4 /*yield*/, wait_for_trigger_tests()];
15314
- case 82:
15780
+ case 83:
15315
15781
  _l.sent();
15316
15782
  return [4 /*yield*/, pdf_generation()];
15317
- case 83:
15783
+ case 84:
15318
15784
  _l.sent();
15319
15785
  return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests().catch(console.error)]; // timing is unreliable, uncomment if changing logic
15320
- case 84:
15786
+ case 85:
15321
15787
  _l.sent(); // timing is unreliable, uncomment if changing logic
15322
15788
  return [4 /*yield*/, sub_organization_enduser_tests()];
15323
- case 85:
15324
- _l.sent();
15325
- return [4 /*yield*/, sub_organization_tests()];
15326
15789
  case 86:
15327
15790
  _l.sent();
15328
- return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
15791
+ return [4 /*yield*/, sub_organization_tests()];
15329
15792
  case 87:
15330
15793
  _l.sent();
15331
- return [4 /*yield*/, generate_user_auth_tests()];
15794
+ return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
15332
15795
  case 88:
15333
15796
  _l.sent();
15334
- return [4 /*yield*/, generateEnduserAuthTests()];
15797
+ return [4 /*yield*/, generate_user_auth_tests()];
15335
15798
  case 89:
15336
15799
  _l.sent();
15337
- return [4 /*yield*/, public_form_tests()];
15800
+ return [4 /*yield*/, generateEnduserAuthTests()];
15338
15801
  case 90:
15339
15802
  _l.sent();
15340
- return [4 /*yield*/, badInputTests()];
15803
+ return [4 /*yield*/, public_form_tests()];
15341
15804
  case 91:
15342
15805
  _l.sent();
15343
- return [4 /*yield*/, filterTests()];
15806
+ return [4 /*yield*/, badInputTests()];
15344
15807
  case 92:
15345
15808
  _l.sent();
15346
- return [4 /*yield*/, updatesTests()];
15809
+ return [4 /*yield*/, filterTests()];
15347
15810
  case 93:
15348
15811
  _l.sent();
15349
- return [3 /*break*/, 95];
15812
+ return [4 /*yield*/, updatesTests()];
15350
15813
  case 94:
15814
+ _l.sent();
15815
+ return [3 /*break*/, 96];
15816
+ case 95:
15351
15817
  err_1 = _l.sent();
15352
15818
  console.error("Failed during custom test");
15353
15819
  if (err_1.message && err_1.info) {
@@ -15357,18 +15823,18 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
15357
15823
  console.error(err_1);
15358
15824
  }
15359
15825
  process.exit(1);
15360
- return [3 /*break*/, 95];
15361
- case 95:
15826
+ return [3 /*break*/, 96];
15827
+ case 96:
15362
15828
  _a = schema_1.schema;
15363
15829
  _b = [];
15364
15830
  for (_c in _a)
15365
15831
  _b.push(_c);
15366
15832
  _i = 0;
15367
- _l.label = 96;
15368
- case 96:
15369
- if (!(_i < _b.length)) return [3 /*break*/, 99];
15833
+ _l.label = 97;
15834
+ case 97:
15835
+ if (!(_i < _b.length)) return [3 /*break*/, 100];
15370
15836
  _c = _b[_i];
15371
- if (!(_c in _a)) return [3 /*break*/, 98];
15837
+ if (!(_c in _a)) return [3 /*break*/, 99];
15372
15838
  n = _c;
15373
15839
  returnValidation = (_k = (_j = schema_1.schema[n].customActions) === null || _j === void 0 ? void 0 : _j.create) === null || _k === void 0 ? void 0 : _k.returns;
15374
15840
  return [4 /*yield*/, run_generated_tests({
@@ -15379,41 +15845,41 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
15379
15845
  create: returnValidation // ModelFields<ClientModel>,
15380
15846
  }
15381
15847
  })];
15382
- case 97:
15383
- _l.sent();
15384
- _l.label = 98;
15385
15848
  case 98:
15386
- _i++;
15387
- return [3 /*break*/, 96];
15849
+ _l.sent();
15850
+ _l.label = 99;
15388
15851
  case 99:
15852
+ _i++;
15853
+ return [3 /*break*/, 97];
15854
+ case 100:
15389
15855
  _d = tests;
15390
15856
  _f = [];
15391
15857
  for (_g in _d)
15392
15858
  _f.push(_g);
15393
15859
  _h = 0;
15394
- _l.label = 100;
15395
- case 100:
15396
- if (!(_h < _f.length)) return [3 /*break*/, 105];
15397
- _g = _f[_h];
15398
- if (!(_g in _d)) return [3 /*break*/, 104];
15399
- t = _g;
15400
15860
  _l.label = 101;
15401
15861
  case 101:
15402
- _l.trys.push([101, 103, , 104]);
15403
- return [4 /*yield*/, tests[t]()];
15862
+ if (!(_h < _f.length)) return [3 /*break*/, 106];
15863
+ _g = _f[_h];
15864
+ if (!(_g in _d)) return [3 /*break*/, 105];
15865
+ t = _g;
15866
+ _l.label = 102;
15404
15867
  case 102:
15405
- _l.sent();
15406
- return [3 /*break*/, 104];
15868
+ _l.trys.push([102, 104, , 105]);
15869
+ return [4 /*yield*/, tests[t]()];
15407
15870
  case 103:
15871
+ _l.sent();
15872
+ return [3 /*break*/, 105];
15873
+ case 104:
15408
15874
  err_2 = _l.sent();
15409
15875
  console.error("Error running test:");
15410
15876
  console.error(err_2);
15411
15877
  process.exit(1);
15412
- return [3 /*break*/, 104];
15413
- case 104:
15414
- _h++;
15415
- return [3 /*break*/, 100];
15878
+ return [3 /*break*/, 105];
15416
15879
  case 105:
15880
+ _h++;
15881
+ return [3 /*break*/, 101];
15882
+ case 106:
15417
15883
  process.exit();
15418
15884
  return [2 /*return*/];
15419
15885
  }