@tellescope/sdk 1.237.3 → 1.237.4
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 +1 -1
- package/lib/cjs/tests/api_tests/inbox_thread_assignment_updates.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/inbox_thread_assignment_updates.test.js +117 -12
- package/lib/cjs/tests/api_tests/inbox_thread_assignment_updates.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/inbox_thread_status_preservation.test.d.ts +6 -0
- package/lib/cjs/tests/api_tests/inbox_thread_status_preservation.test.d.ts.map +1 -0
- package/lib/cjs/tests/tests.js +21 -2
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/enduser.d.ts +1 -1
- package/lib/esm/tests/api_tests/inbox_thread_assignment_updates.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/inbox_thread_assignment_updates.test.js +117 -12
- package/lib/esm/tests/api_tests/inbox_thread_assignment_updates.test.js.map +1 -1
- package/lib/esm/tests/api_tests/inbox_thread_status_preservation.test.d.ts +6 -0
- package/lib/esm/tests/api_tests/inbox_thread_status_preservation.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/inbox_thread_status_preservation.test.js +435 -0
- package/lib/esm/tests/api_tests/inbox_thread_status_preservation.test.js.map +1 -0
- package/lib/esm/tests/tests.js +21 -2
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/tests/api_tests/inbox_thread_assignment_updates.test.ts +81 -0
- package/src/tests/tests.ts +19 -0
- package/test_generated.pdf +0 -0
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
require('source-map-support').install();
|
|
38
|
+
import { Session } from "../../sdk";
|
|
39
|
+
import { assert, log_header, } from "@tellescope/testing";
|
|
40
|
+
import { setup_tests } from "../setup";
|
|
41
|
+
var host = process.env.API_URL || 'http://localhost:8080';
|
|
42
|
+
export var inbox_thread_status_preservation_tests = function (_a) {
|
|
43
|
+
var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
|
|
44
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
45
|
+
var timestamp, from, testEnduser, resetAndBuildThreads, inboundSMS1, threadsAfterInbound, smsThread, threadAfterStatusUpdate, outboundSMS1, threadAfterOutbound, emailSubject, inboundEmail, threadsAfterEmail, emailThread, outboundEmail, emailThreadAfterOutbound, inboundSMS3a, threadsForTest3, smsThread3, threadBeforeNewInbound, inboundSMS3b, threadAfterNewInbound, outboundOnlyEnduser_1, outboundOnly1, threadsForTest4, outboundOnlyThread, outboundOnly2, outboundThreadAfterSecond, err_1;
|
|
46
|
+
return __generator(this, function (_b) {
|
|
47
|
+
switch (_b.label) {
|
|
48
|
+
case 0:
|
|
49
|
+
log_header("InboxThread Status Preservation Tests");
|
|
50
|
+
timestamp = Date.now();
|
|
51
|
+
from = new Date(Date.now() - 60000) // 1 minute ago
|
|
52
|
+
;
|
|
53
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({
|
|
54
|
+
fname: "Test",
|
|
55
|
+
lname: "Patient",
|
|
56
|
+
email: "test-inbox-status-".concat(timestamp, "@test.com"),
|
|
57
|
+
phone: "+1555".concat(timestamp.toString().slice(-7)),
|
|
58
|
+
})
|
|
59
|
+
// Helper to reset and rebuild threads (same pattern as inbox_thread_draft_scheduled.test.ts)
|
|
60
|
+
];
|
|
61
|
+
case 1:
|
|
62
|
+
testEnduser = _b.sent();
|
|
63
|
+
resetAndBuildThreads = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
64
|
+
return __generator(this, function (_a) {
|
|
65
|
+
switch (_a.label) {
|
|
66
|
+
case 0: return [4 /*yield*/, sdk.api.inbox_threads.reset_threads()];
|
|
67
|
+
case 1:
|
|
68
|
+
_a.sent();
|
|
69
|
+
return [4 /*yield*/, sdk.api.inbox_threads.build_threads({ from: from, to: new Date() })];
|
|
70
|
+
case 2:
|
|
71
|
+
_a.sent();
|
|
72
|
+
return [2 /*return*/];
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}); };
|
|
76
|
+
_b.label = 2;
|
|
77
|
+
case 2:
|
|
78
|
+
_b.trys.push([2, , 39, 43]);
|
|
79
|
+
// Test 1: Outbound SMS should NOT reset inboxStatus
|
|
80
|
+
console.log("Test 1: Outbound SMS should NOT reset inboxStatus...");
|
|
81
|
+
return [4 /*yield*/, sdk.api.sms_messages.createOne({
|
|
82
|
+
message: "Inbound test message",
|
|
83
|
+
enduserId: testEnduser.id,
|
|
84
|
+
inbound: true,
|
|
85
|
+
phoneNumber: "+15550001111",
|
|
86
|
+
enduserPhoneNumber: testEnduser.phone,
|
|
87
|
+
logOnly: true,
|
|
88
|
+
})
|
|
89
|
+
// Build initial threads
|
|
90
|
+
];
|
|
91
|
+
case 3:
|
|
92
|
+
inboundSMS1 = _b.sent();
|
|
93
|
+
// Build initial threads
|
|
94
|
+
return [4 /*yield*/, resetAndBuildThreads()
|
|
95
|
+
// Find the created thread
|
|
96
|
+
];
|
|
97
|
+
case 4:
|
|
98
|
+
// Build initial threads
|
|
99
|
+
_b.sent();
|
|
100
|
+
return [4 /*yield*/, sdk.api.inbox_threads.load_threads({})];
|
|
101
|
+
case 5:
|
|
102
|
+
threadsAfterInbound = _b.sent();
|
|
103
|
+
smsThread = threadsAfterInbound.threads.find(function (t) {
|
|
104
|
+
return t.type === 'SMS' && t.enduserIds.includes(testEnduser.id) && t.phoneNumber === "+15550001111";
|
|
105
|
+
});
|
|
106
|
+
assert(!!smsThread, "SMS thread should be created from inbound message");
|
|
107
|
+
assert(smsThread.inboxStatus === 'New', "Initial status should be 'New', got '".concat(smsThread.inboxStatus, "'"));
|
|
108
|
+
// Update thread status to "Resolved"
|
|
109
|
+
return [4 /*yield*/, sdk.api.inbox_threads.updateOne(smsThread.id, { inboxStatus: "Resolved" })
|
|
110
|
+
// Verify status was updated
|
|
111
|
+
];
|
|
112
|
+
case 6:
|
|
113
|
+
// Update thread status to "Resolved"
|
|
114
|
+
_b.sent();
|
|
115
|
+
return [4 /*yield*/, sdk.api.inbox_threads.load_threads({ ids: [smsThread.id] })];
|
|
116
|
+
case 7:
|
|
117
|
+
threadAfterStatusUpdate = (_b.sent()).threads[0];
|
|
118
|
+
assert(threadAfterStatusUpdate.inboxStatus === 'Resolved', "Status should be 'Resolved' after update, got '".concat(threadAfterStatusUpdate.inboxStatus, "'"));
|
|
119
|
+
return [4 /*yield*/, sdk.api.sms_messages.createOne({
|
|
120
|
+
message: "Outbound reply message",
|
|
121
|
+
enduserId: testEnduser.id,
|
|
122
|
+
inbound: false,
|
|
123
|
+
phoneNumber: "+15550001111",
|
|
124
|
+
enduserPhoneNumber: testEnduser.phone,
|
|
125
|
+
logOnly: true,
|
|
126
|
+
})
|
|
127
|
+
// Rebuild threads - status should remain "Resolved"
|
|
128
|
+
];
|
|
129
|
+
case 8:
|
|
130
|
+
outboundSMS1 = _b.sent();
|
|
131
|
+
// Rebuild threads - status should remain "Resolved"
|
|
132
|
+
return [4 /*yield*/, sdk.api.inbox_threads.build_threads({ from: from, to: new Date() })
|
|
133
|
+
// Verify status was NOT reset
|
|
134
|
+
];
|
|
135
|
+
case 9:
|
|
136
|
+
// Rebuild threads - status should remain "Resolved"
|
|
137
|
+
_b.sent();
|
|
138
|
+
return [4 /*yield*/, sdk.api.inbox_threads.load_threads({ ids: [smsThread.id] })];
|
|
139
|
+
case 10:
|
|
140
|
+
threadAfterOutbound = (_b.sent()).threads[0];
|
|
141
|
+
assert(threadAfterOutbound.inboxStatus === 'Resolved', "Status should remain 'Resolved' after outbound message, got '".concat(threadAfterOutbound.inboxStatus, "'"));
|
|
142
|
+
assert(!!threadAfterOutbound.outboundTimestamp, "outboundTimestamp should be set after outbound message");
|
|
143
|
+
assert(threadAfterOutbound.outboundPreview === "Outbound reply message", "outboundPreview should be updated, got '".concat(threadAfterOutbound.outboundPreview, "'"));
|
|
144
|
+
console.log("Test 1 passed: Outbound SMS does NOT reset inboxStatus");
|
|
145
|
+
// Clean up test 1 resources
|
|
146
|
+
return [4 /*yield*/, Promise.all([
|
|
147
|
+
sdk.api.sms_messages.deleteOne(inboundSMS1.id),
|
|
148
|
+
sdk.api.sms_messages.deleteOne(outboundSMS1.id),
|
|
149
|
+
sdk.api.inbox_threads.deleteOne(smsThread.id),
|
|
150
|
+
])
|
|
151
|
+
// Test 2: Outbound Email should NOT reset inboxStatus
|
|
152
|
+
];
|
|
153
|
+
case 11:
|
|
154
|
+
// Clean up test 1 resources
|
|
155
|
+
_b.sent();
|
|
156
|
+
// Test 2: Outbound Email should NOT reset inboxStatus
|
|
157
|
+
console.log("Test 2: Outbound Email should NOT reset inboxStatus...");
|
|
158
|
+
emailSubject = "Test Email Status ".concat(timestamp);
|
|
159
|
+
return [4 /*yield*/, sdk.api.emails.createOne({
|
|
160
|
+
subject: emailSubject,
|
|
161
|
+
textContent: "Inbound test email content",
|
|
162
|
+
enduserId: testEnduser.id,
|
|
163
|
+
messageId: "inbound-email-".concat(timestamp),
|
|
164
|
+
inbound: true,
|
|
165
|
+
logOnly: true,
|
|
166
|
+
})
|
|
167
|
+
// Build threads
|
|
168
|
+
];
|
|
169
|
+
case 12:
|
|
170
|
+
inboundEmail = _b.sent();
|
|
171
|
+
// Build threads
|
|
172
|
+
return [4 /*yield*/, resetAndBuildThreads()
|
|
173
|
+
// Find the created email thread
|
|
174
|
+
];
|
|
175
|
+
case 13:
|
|
176
|
+
// Build threads
|
|
177
|
+
_b.sent();
|
|
178
|
+
return [4 /*yield*/, sdk.api.inbox_threads.load_threads({})];
|
|
179
|
+
case 14:
|
|
180
|
+
threadsAfterEmail = _b.sent();
|
|
181
|
+
emailThread = threadsAfterEmail.threads.find(function (t) {
|
|
182
|
+
return t.type === 'Email' && t.enduserIds.includes(testEnduser.id);
|
|
183
|
+
});
|
|
184
|
+
assert(!!emailThread, "Email thread should be created from inbound email");
|
|
185
|
+
// Update thread status to "In Progress"
|
|
186
|
+
return [4 /*yield*/, sdk.api.inbox_threads.updateOne(emailThread.id, { inboxStatus: "In Progress" })
|
|
187
|
+
// Create outbound email reply (should NOT reset status)
|
|
188
|
+
];
|
|
189
|
+
case 15:
|
|
190
|
+
// Update thread status to "In Progress"
|
|
191
|
+
_b.sent();
|
|
192
|
+
return [4 /*yield*/, sdk.api.emails.createOne({
|
|
193
|
+
subject: "Re: ".concat(emailSubject),
|
|
194
|
+
textContent: "Outbound reply email content",
|
|
195
|
+
enduserId: testEnduser.id,
|
|
196
|
+
messageId: "outbound-email-".concat(timestamp),
|
|
197
|
+
inbound: false,
|
|
198
|
+
logOnly: true,
|
|
199
|
+
})
|
|
200
|
+
// Rebuild threads - status should remain "In Progress"
|
|
201
|
+
];
|
|
202
|
+
case 16:
|
|
203
|
+
outboundEmail = _b.sent();
|
|
204
|
+
// Rebuild threads - status should remain "In Progress"
|
|
205
|
+
return [4 /*yield*/, sdk.api.inbox_threads.build_threads({ from: from, to: new Date() })
|
|
206
|
+
// Verify status was NOT reset
|
|
207
|
+
];
|
|
208
|
+
case 17:
|
|
209
|
+
// Rebuild threads - status should remain "In Progress"
|
|
210
|
+
_b.sent();
|
|
211
|
+
return [4 /*yield*/, sdk.api.inbox_threads.load_threads({ ids: [emailThread.id] })];
|
|
212
|
+
case 18:
|
|
213
|
+
emailThreadAfterOutbound = (_b.sent()).threads[0];
|
|
214
|
+
assert(emailThreadAfterOutbound.inboxStatus === 'In Progress', "Email status should remain 'In Progress' after outbound, got '".concat(emailThreadAfterOutbound.inboxStatus, "'"));
|
|
215
|
+
console.log("Test 2 passed: Outbound Email does NOT reset inboxStatus");
|
|
216
|
+
// Clean up test 2 resources
|
|
217
|
+
return [4 /*yield*/, Promise.all([
|
|
218
|
+
sdk.api.emails.deleteOne(inboundEmail.id),
|
|
219
|
+
sdk.api.emails.deleteOne(outboundEmail.id),
|
|
220
|
+
sdk.api.inbox_threads.deleteOne(emailThread.id),
|
|
221
|
+
])
|
|
222
|
+
// Test 3: Inbound SMS SHOULD update inboxStatus
|
|
223
|
+
];
|
|
224
|
+
case 19:
|
|
225
|
+
// Clean up test 2 resources
|
|
226
|
+
_b.sent();
|
|
227
|
+
// Test 3: Inbound SMS SHOULD update inboxStatus
|
|
228
|
+
console.log("Test 3: New inbound SMS SHOULD update inboxStatus...");
|
|
229
|
+
return [4 /*yield*/, sdk.api.sms_messages.createOne({
|
|
230
|
+
message: "First inbound message",
|
|
231
|
+
enduserId: testEnduser.id,
|
|
232
|
+
inbound: true,
|
|
233
|
+
phoneNumber: "+15550003333",
|
|
234
|
+
enduserPhoneNumber: testEnduser.phone,
|
|
235
|
+
logOnly: true,
|
|
236
|
+
})
|
|
237
|
+
// Build threads
|
|
238
|
+
];
|
|
239
|
+
case 20:
|
|
240
|
+
inboundSMS3a = _b.sent();
|
|
241
|
+
// Build threads
|
|
242
|
+
return [4 /*yield*/, resetAndBuildThreads()
|
|
243
|
+
// Find the thread
|
|
244
|
+
];
|
|
245
|
+
case 21:
|
|
246
|
+
// Build threads
|
|
247
|
+
_b.sent();
|
|
248
|
+
return [4 /*yield*/, sdk.api.inbox_threads.load_threads({})];
|
|
249
|
+
case 22:
|
|
250
|
+
threadsForTest3 = _b.sent();
|
|
251
|
+
smsThread3 = threadsForTest3.threads.find(function (t) {
|
|
252
|
+
return t.type === 'SMS' && t.enduserIds.includes(testEnduser.id) && t.phoneNumber === "+15550003333";
|
|
253
|
+
});
|
|
254
|
+
assert(!!smsThread3, "SMS thread should be created");
|
|
255
|
+
// Update thread status to "Resolved"
|
|
256
|
+
return [4 /*yield*/, sdk.api.inbox_threads.updateOne(smsThread3.id, { inboxStatus: "Resolved" })
|
|
257
|
+
// Verify status was updated
|
|
258
|
+
];
|
|
259
|
+
case 23:
|
|
260
|
+
// Update thread status to "Resolved"
|
|
261
|
+
_b.sent();
|
|
262
|
+
return [4 /*yield*/, sdk.api.inbox_threads.load_threads({ ids: [smsThread3.id] })];
|
|
263
|
+
case 24:
|
|
264
|
+
threadBeforeNewInbound = (_b.sent()).threads[0];
|
|
265
|
+
assert(threadBeforeNewInbound.inboxStatus === 'Resolved', "Status should be 'Resolved' before new inbound");
|
|
266
|
+
// Create NEW inbound SMS with default "New" status
|
|
267
|
+
// Wait to ensure ObjectId timestamps are in different seconds (MongoDB ObjectIds have second-level precision)
|
|
268
|
+
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 1100); })];
|
|
269
|
+
case 25:
|
|
270
|
+
// Create NEW inbound SMS with default "New" status
|
|
271
|
+
// Wait to ensure ObjectId timestamps are in different seconds (MongoDB ObjectIds have second-level precision)
|
|
272
|
+
_b.sent();
|
|
273
|
+
return [4 /*yield*/, sdk.api.sms_messages.createOne({
|
|
274
|
+
message: "Second inbound message - should reset status",
|
|
275
|
+
enduserId: testEnduser.id,
|
|
276
|
+
inbound: true,
|
|
277
|
+
phoneNumber: "+15550003333",
|
|
278
|
+
enduserPhoneNumber: testEnduser.phone,
|
|
279
|
+
inboxStatus: "New",
|
|
280
|
+
logOnly: true,
|
|
281
|
+
})
|
|
282
|
+
// Rebuild threads - status SHOULD be updated from new inbound
|
|
283
|
+
];
|
|
284
|
+
case 26:
|
|
285
|
+
inboundSMS3b = _b.sent();
|
|
286
|
+
// Rebuild threads - status SHOULD be updated from new inbound
|
|
287
|
+
return [4 /*yield*/, sdk.api.inbox_threads.build_threads({ from: from, to: new Date() })
|
|
288
|
+
// Verify status WAS updated from new inbound
|
|
289
|
+
];
|
|
290
|
+
case 27:
|
|
291
|
+
// Rebuild threads - status SHOULD be updated from new inbound
|
|
292
|
+
_b.sent();
|
|
293
|
+
return [4 /*yield*/, sdk.api.inbox_threads.load_threads({ ids: [smsThread3.id] })];
|
|
294
|
+
case 28:
|
|
295
|
+
threadAfterNewInbound = (_b.sent()).threads[0];
|
|
296
|
+
assert(threadAfterNewInbound.inboxStatus === 'New', "Status SHOULD be 'New' after new inbound message, got '".concat(threadAfterNewInbound.inboxStatus, "'"));
|
|
297
|
+
console.log("Test 3 passed: New inbound SMS DOES update inboxStatus");
|
|
298
|
+
// Clean up test 3 resources
|
|
299
|
+
return [4 /*yield*/, Promise.all([
|
|
300
|
+
sdk.api.sms_messages.deleteOne(inboundSMS3a.id),
|
|
301
|
+
sdk.api.sms_messages.deleteOne(inboundSMS3b.id),
|
|
302
|
+
sdk.api.inbox_threads.deleteOne(smsThread3.id),
|
|
303
|
+
])
|
|
304
|
+
// Test 4: Outbound-only thread should keep default status
|
|
305
|
+
];
|
|
306
|
+
case 29:
|
|
307
|
+
// Clean up test 3 resources
|
|
308
|
+
_b.sent();
|
|
309
|
+
// Test 4: Outbound-only thread should keep default status
|
|
310
|
+
console.log("Test 4: Outbound-only thread should keep default status...");
|
|
311
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({
|
|
312
|
+
fname: "Outbound",
|
|
313
|
+
lname: "Only",
|
|
314
|
+
email: "outbound-only-".concat(timestamp, "@test.com"),
|
|
315
|
+
phone: "+1555".concat((timestamp + 1).toString().slice(-7)),
|
|
316
|
+
})
|
|
317
|
+
// Create outbound-only SMS (no prior inbound)
|
|
318
|
+
];
|
|
319
|
+
case 30:
|
|
320
|
+
outboundOnlyEnduser_1 = _b.sent();
|
|
321
|
+
return [4 /*yield*/, sdk.api.sms_messages.createOne({
|
|
322
|
+
message: "First outbound message",
|
|
323
|
+
enduserId: outboundOnlyEnduser_1.id,
|
|
324
|
+
inbound: false,
|
|
325
|
+
phoneNumber: "+15550004444",
|
|
326
|
+
enduserPhoneNumber: outboundOnlyEnduser_1.phone,
|
|
327
|
+
logOnly: true,
|
|
328
|
+
})
|
|
329
|
+
// Build threads - should create thread with default "New" status
|
|
330
|
+
];
|
|
331
|
+
case 31:
|
|
332
|
+
outboundOnly1 = _b.sent();
|
|
333
|
+
// Build threads - should create thread with default "New" status
|
|
334
|
+
return [4 /*yield*/, resetAndBuildThreads()
|
|
335
|
+
// Find the thread
|
|
336
|
+
];
|
|
337
|
+
case 32:
|
|
338
|
+
// Build threads - should create thread with default "New" status
|
|
339
|
+
_b.sent();
|
|
340
|
+
return [4 /*yield*/, sdk.api.inbox_threads.load_threads({})];
|
|
341
|
+
case 33:
|
|
342
|
+
threadsForTest4 = _b.sent();
|
|
343
|
+
outboundOnlyThread = threadsForTest4.threads.find(function (t) {
|
|
344
|
+
return t.type === 'SMS' && t.enduserIds.includes(outboundOnlyEnduser_1.id) && t.phoneNumber === "+15550004444";
|
|
345
|
+
});
|
|
346
|
+
assert(!!outboundOnlyThread, "Outbound-only thread should be created");
|
|
347
|
+
assert(outboundOnlyThread.inboxStatus === 'New', "Outbound-only thread should have 'New' status, got '".concat(outboundOnlyThread.inboxStatus, "'"));
|
|
348
|
+
// Create another outbound SMS
|
|
349
|
+
// Wait to ensure ObjectId timestamps are in different seconds (MongoDB ObjectIds have second-level precision)
|
|
350
|
+
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 1100); })];
|
|
351
|
+
case 34:
|
|
352
|
+
// Create another outbound SMS
|
|
353
|
+
// Wait to ensure ObjectId timestamps are in different seconds (MongoDB ObjectIds have second-level precision)
|
|
354
|
+
_b.sent();
|
|
355
|
+
return [4 /*yield*/, sdk.api.sms_messages.createOne({
|
|
356
|
+
message: "Second outbound message",
|
|
357
|
+
enduserId: outboundOnlyEnduser_1.id,
|
|
358
|
+
inbound: false,
|
|
359
|
+
phoneNumber: "+15550004444",
|
|
360
|
+
enduserPhoneNumber: outboundOnlyEnduser_1.phone,
|
|
361
|
+
logOnly: true,
|
|
362
|
+
})
|
|
363
|
+
// Rebuild threads - status should remain "New" (not reset, just unchanged)
|
|
364
|
+
];
|
|
365
|
+
case 35:
|
|
366
|
+
outboundOnly2 = _b.sent();
|
|
367
|
+
// Rebuild threads - status should remain "New" (not reset, just unchanged)
|
|
368
|
+
return [4 /*yield*/, sdk.api.inbox_threads.build_threads({ from: from, to: new Date() })
|
|
369
|
+
// Verify status remains "New"
|
|
370
|
+
];
|
|
371
|
+
case 36:
|
|
372
|
+
// Rebuild threads - status should remain "New" (not reset, just unchanged)
|
|
373
|
+
_b.sent();
|
|
374
|
+
return [4 /*yield*/, sdk.api.inbox_threads.load_threads({ ids: [outboundOnlyThread.id] })];
|
|
375
|
+
case 37:
|
|
376
|
+
outboundThreadAfterSecond = (_b.sent()).threads[0];
|
|
377
|
+
assert(outboundThreadAfterSecond.inboxStatus === 'New', "Outbound-only thread status should remain 'New', got '".concat(outboundThreadAfterSecond.inboxStatus, "'"));
|
|
378
|
+
console.log("Test 4 passed: Outbound-only thread keeps default status");
|
|
379
|
+
// Clean up test 4 resources
|
|
380
|
+
return [4 /*yield*/, Promise.all([
|
|
381
|
+
sdk.api.sms_messages.deleteOne(outboundOnly1.id),
|
|
382
|
+
sdk.api.sms_messages.deleteOne(outboundOnly2.id),
|
|
383
|
+
sdk.api.inbox_threads.deleteOne(outboundOnlyThread.id),
|
|
384
|
+
sdk.api.endusers.deleteOne(outboundOnlyEnduser_1.id),
|
|
385
|
+
])];
|
|
386
|
+
case 38:
|
|
387
|
+
// Clean up test 4 resources
|
|
388
|
+
_b.sent();
|
|
389
|
+
console.log("All InboxThread status preservation tests passed!");
|
|
390
|
+
return [3 /*break*/, 43];
|
|
391
|
+
case 39:
|
|
392
|
+
_b.trys.push([39, 41, , 42]);
|
|
393
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(testEnduser.id)];
|
|
394
|
+
case 40:
|
|
395
|
+
_b.sent();
|
|
396
|
+
return [3 /*break*/, 42];
|
|
397
|
+
case 41:
|
|
398
|
+
err_1 = _b.sent();
|
|
399
|
+
console.error("Cleanup error:", err_1);
|
|
400
|
+
return [3 /*break*/, 42];
|
|
401
|
+
case 42: return [7 /*endfinally*/];
|
|
402
|
+
case 43: return [2 /*return*/];
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
});
|
|
406
|
+
};
|
|
407
|
+
// Allow running this test file independently
|
|
408
|
+
if (require.main === module) {
|
|
409
|
+
console.log("Using API URL: ".concat(host));
|
|
410
|
+
var sdk_1 = new Session({ host: host });
|
|
411
|
+
var sdkNonAdmin_1 = new Session({ host: host });
|
|
412
|
+
var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
413
|
+
return __generator(this, function (_a) {
|
|
414
|
+
switch (_a.label) {
|
|
415
|
+
case 0: return [4 /*yield*/, setup_tests(sdk_1, sdkNonAdmin_1)];
|
|
416
|
+
case 1:
|
|
417
|
+
_a.sent();
|
|
418
|
+
return [4 /*yield*/, inbox_thread_status_preservation_tests({ sdk: sdk_1, sdkNonAdmin: sdkNonAdmin_1 })];
|
|
419
|
+
case 2:
|
|
420
|
+
_a.sent();
|
|
421
|
+
return [2 /*return*/];
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
}); };
|
|
425
|
+
runTests()
|
|
426
|
+
.then(function () {
|
|
427
|
+
console.log("InboxThread status preservation test suite completed successfully");
|
|
428
|
+
process.exit(0);
|
|
429
|
+
})
|
|
430
|
+
.catch(function (error) {
|
|
431
|
+
console.error("InboxThread status preservation test suite failed:", error);
|
|
432
|
+
process.exit(1);
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
//# sourceMappingURL=inbox_thread_status_preservation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbox_thread_status_preservation.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/inbox_thread_status_preservation.test.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/tests/tests.js
CHANGED
|
@@ -14120,7 +14120,7 @@ var updatedAt_tests = function () { return __awaiter(void 0, void 0, void 0, fun
|
|
|
14120
14120
|
});
|
|
14121
14121
|
}); };
|
|
14122
14122
|
var replace_enduser_template_values_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
14123
|
-
var enduser, d;
|
|
14123
|
+
var enduser, d, enduserWithVitals;
|
|
14124
14124
|
return __generator(this, function (_a) {
|
|
14125
14125
|
switch (_a.label) {
|
|
14126
14126
|
case 0:
|
|
@@ -14136,8 +14136,27 @@ var replace_enduser_template_values_tests = function () { return __awaiter(void
|
|
|
14136
14136
|
assert(replace_enduser_template_values('{{enduser.UnknownCustomField}}', enduser) === '{{enduser.UnknownCustomField}}', 'fail UnknownCustomField', 'UnknownCustomField');
|
|
14137
14137
|
d = Date.now();
|
|
14138
14138
|
assert(replace_enduser_template_values(d, enduser) === d, 'fail non-string', 'non-string');
|
|
14139
|
-
return [4 /*yield*/, sdk.api.endusers.
|
|
14139
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({
|
|
14140
|
+
fname: "Vitals",
|
|
14141
|
+
height: { value: 72, unit: 'inches' },
|
|
14142
|
+
weight: { value: 180, unit: 'lbs' }
|
|
14143
|
+
})];
|
|
14140
14144
|
case 2:
|
|
14145
|
+
enduserWithVitals = _a.sent();
|
|
14146
|
+
assert(replace_enduser_template_values('{{enduser.height.value}}', enduserWithVitals) === '72', 'fail height.value', 'height.value');
|
|
14147
|
+
assert(replace_enduser_template_values('{{enduser.height.unit}}', enduserWithVitals) === 'inches', 'fail height.unit', 'height.unit');
|
|
14148
|
+
assert(replace_enduser_template_values('{{enduser.weight.value}}', enduserWithVitals) === '180', 'fail weight.value', 'weight.value');
|
|
14149
|
+
assert(replace_enduser_template_values('{{enduser.weight.unit}}', enduserWithVitals) === 'lbs', 'fail weight.unit', 'weight.unit');
|
|
14150
|
+
// Test undefined safeguards - enduser without height/weight should return empty string
|
|
14151
|
+
assert(replace_enduser_template_values('{{enduser.height.value}}', enduser) === '', 'fail undefined height.value', 'undefined height.value');
|
|
14152
|
+
assert(replace_enduser_template_values('{{enduser.height.unit}}', enduser) === '', 'fail undefined height.unit', 'undefined height.unit');
|
|
14153
|
+
assert(replace_enduser_template_values('{{enduser.weight.value}}', enduser) === '', 'fail undefined weight.value', 'undefined weight.value');
|
|
14154
|
+
assert(replace_enduser_template_values('{{enduser.weight.unit}}', enduser) === '', 'fail undefined weight.unit', 'undefined weight.unit');
|
|
14155
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduserWithVitals.id)];
|
|
14156
|
+
case 3:
|
|
14157
|
+
_a.sent();
|
|
14158
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
14159
|
+
case 4:
|
|
14141
14160
|
_a.sent();
|
|
14142
14161
|
return [2 /*return*/];
|
|
14143
14162
|
}
|