@tellescope/sdk 1.164.0 → 1.166.0
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 +20 -0
- package/lib/cjs/enduser.d.ts.map +1 -1
- package/lib/cjs/sdk.d.ts +45 -0
- package/lib/cjs/sdk.d.ts.map +1 -1
- package/lib/cjs/sdk.js +2 -0
- package/lib/cjs/sdk.js.map +1 -1
- package/lib/cjs/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +111 -53
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/enduser.d.ts +20 -0
- package/lib/esm/enduser.d.ts.map +1 -1
- package/lib/esm/sdk.d.ts +45 -0
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/sdk.js +2 -0
- package/lib/esm/sdk.js.map +1 -1
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +111 -53
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/sdk.ts +8 -0
- package/src/tests/tests.ts +75 -23
- package/test_generated.pdf +0 -0
package/src/tests/tests.ts
CHANGED
|
@@ -65,6 +65,8 @@ const UniquenessViolationMessage = 'Uniqueness Violation'
|
|
|
65
65
|
const host = process.env.TEST_URL || 'http://localhost:8080' as const
|
|
66
66
|
const [email, password] = [process.env.TEST_EMAIL, process.env.TEST_PASSWORD]
|
|
67
67
|
const [mfaEmail, mfaPassword] = [process.env.MFA_EMAIL, process.env.TEST_PASSWORD]
|
|
68
|
+
|
|
69
|
+
// email2 should not be a @tellescope.com domain in order to validate access for agent_records
|
|
68
70
|
const [email2, password2] = [process.env.TEST_EMAIL_2, process.env.TEST_PASSWORD_2]
|
|
69
71
|
const [nonAdminEmail, nonAdminPassword] = [process.env.NON_ADMIN_EMAIL, process.env.NON_ADMIN_PASSWORD]
|
|
70
72
|
|
|
@@ -1433,6 +1435,23 @@ const chat_tests = async() => {
|
|
|
1433
1435
|
const roomNull = await sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId] })
|
|
1434
1436
|
const chatNull = await sdk.api.chats.createOne({ roomId: roomNull.id, message: "Hello!" })
|
|
1435
1437
|
const chat2Null = await sdk.api.chats.createOne({ roomId: roomNull.id, message: "Hello...", replyId: chatNull.id })
|
|
1438
|
+
|
|
1439
|
+
const chatScheduled = await sdk.api.chats.createOne({ roomId: roomNull.id, message: "Scheduled", sendAt: new Date(Date.now() + 1000 * 60 * 60 * 24) })
|
|
1440
|
+
await wait(undefined, 2000) // should be greater than 1s
|
|
1441
|
+
|
|
1442
|
+
await sdk.api.chats.updateOne(chatScheduled.id, { sendAt: new Date(0) }) // trigger scheduled send
|
|
1443
|
+
await wait(undefined, 250)
|
|
1444
|
+
await async_test(
|
|
1445
|
+
`Scheduled chat timestamps`,
|
|
1446
|
+
() => sdk.api.chats.getOne(chatScheduled.id),
|
|
1447
|
+
{ onResult: c =>
|
|
1448
|
+
!!c.sendAt && new Date(c.sendAt).getTime() === 0
|
|
1449
|
+
&& !!c.timestamp && new Date(c.timestamp).getTime() < Date.now()
|
|
1450
|
+
&& !!c.timestamp && new Date(c.timestamp).getTime() > Date.now() - 1000 // should be less than delay after chatScheduled
|
|
1451
|
+
// createdAt is only precise to the second but should be different than timestamp
|
|
1452
|
+
&& Math.floor(new Date(c.timestamp).getTime() / 1000) !== Math.floor(new Date(c.createdAt).getTime() / 1000)
|
|
1453
|
+
}
|
|
1454
|
+
)
|
|
1436
1455
|
|
|
1437
1456
|
await sdk.api.chats.deleteOne(chatNull.id)
|
|
1438
1457
|
await wait(undefined, 250)
|
|
@@ -3604,12 +3623,9 @@ const role_based_access_tests = async () => {
|
|
|
3604
3623
|
// cleanup
|
|
3605
3624
|
await Promise.all([
|
|
3606
3625
|
sdk.api.endusers.deleteOne(e.id),
|
|
3607
|
-
sdk.api.tickets.deleteOne(adminTicket.id),
|
|
3608
|
-
sdk.api.tickets.deleteOne(ticketCreatedByNonAdmin.id),
|
|
3609
|
-
sdk.api.emails.deleteOne(email.id),
|
|
3610
|
-
sdk.api.sms_messages.deleteOne(sms.id),
|
|
3611
3626
|
sdk.api.calendar_events.deleteOne(calendarEvent.id),
|
|
3612
3627
|
sdk.api.chat_rooms.deleteOne(chatRoom.id),
|
|
3628
|
+
sdk.api.tickets.deleteOne(ticketCreatedByNonAdmin.id), // not associated with enduser, needs own cleanup
|
|
3613
3629
|
])
|
|
3614
3630
|
}
|
|
3615
3631
|
|
|
@@ -5038,7 +5054,7 @@ const wait_for_trigger_tests = async () => {
|
|
|
5038
5054
|
|
|
5039
5055
|
await sdk.api.endusers.updateOne(eTrigger.id, { fields: { Test: 'Trigger' } })
|
|
5040
5056
|
await sdk.api.endusers.updateOne(eNoTrigger.id, { fields: { Test: 'Trigger' } })
|
|
5041
|
-
await wait(undefined,
|
|
5057
|
+
await wait(undefined, 5000)
|
|
5042
5058
|
|
|
5043
5059
|
// TODO - Test a delayed action which comes after the triggered action
|
|
5044
5060
|
|
|
@@ -5211,23 +5227,16 @@ const rate_limit_tests = async () => {
|
|
|
5211
5227
|
)
|
|
5212
5228
|
|
|
5213
5229
|
// these should work, as they do not have the same template
|
|
5214
|
-
|
|
5230
|
+
await sdk.api.emails.createSome([
|
|
5215
5231
|
{ enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit' },
|
|
5216
5232
|
{ enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit' },
|
|
5217
5233
|
{ enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit' },
|
|
5218
|
-
])
|
|
5234
|
+
])
|
|
5219
5235
|
|
|
5220
5236
|
await Promise.all([
|
|
5221
5237
|
sdk.api.endusers.deleteOne(e1.id),
|
|
5222
5238
|
sdk.api.endusers.deleteOne(e2.id),
|
|
5223
5239
|
sdk.api.endusers.deleteOne(e3.id),
|
|
5224
|
-
sdk.api.emails.deleteOne(email1.id),
|
|
5225
|
-
sdk.api.emails.deleteOne(email2.id),
|
|
5226
|
-
sdk.api.emails.deleteOne(email3.id),
|
|
5227
|
-
sdk.api.emails.deleteOne(email4.id),
|
|
5228
|
-
sdk.api.emails.deleteOne(email5.id),
|
|
5229
|
-
sdk.api.sms_messages.deleteOne(sms1.id),
|
|
5230
|
-
sdk.api.sms_messages.deleteOne(sms2.id),
|
|
5231
5240
|
])
|
|
5232
5241
|
}
|
|
5233
5242
|
|
|
@@ -6524,11 +6533,9 @@ export const formsort_tests = async () => {
|
|
|
6524
6533
|
|
|
6525
6534
|
// cleanup
|
|
6526
6535
|
const endusers = await sdk.api.endusers.getSome()
|
|
6527
|
-
const formResponses = await sdk.api.form_responses.getSome()
|
|
6528
6536
|
await Promise.all([
|
|
6529
6537
|
sdk.api.forms.deleteOne(form.id),
|
|
6530
6538
|
...endusers.map(e => sdk.api.endusers.deleteOne(e.id)),
|
|
6531
|
-
...formResponses.map(f => sdk.api.form_responses.deleteOne(f.id)),
|
|
6532
6539
|
])
|
|
6533
6540
|
}
|
|
6534
6541
|
|
|
@@ -6558,8 +6565,53 @@ export const enduser_orders_tests = async () => {
|
|
|
6558
6565
|
return Promise.all(orders.map(o => sdk.api.enduser_orders.deleteOne(o.id)))
|
|
6559
6566
|
}
|
|
6560
6567
|
|
|
6568
|
+
const agent_record_tests = async () => {
|
|
6569
|
+
log_header("AgentRecord Tests")
|
|
6570
|
+
|
|
6571
|
+
const r1 = await sdk.api.agent_records.createOne({ title: 'test', description: '', type: 'Article' })
|
|
6572
|
+
await sdk.api.agent_records.updateOne(r1.id, { title: 'updated' })
|
|
6573
|
+
const [r2, r3] = (await sdk.api.agent_records.createSome([{ title: 'test 2', description: '', type: 'Article' }, { title: 'test 3', description: '', type: 'Article' }])).created
|
|
6574
|
+
|
|
6575
|
+
const sdkOther = new Session({ host })
|
|
6576
|
+
await sdkOther.authenticate(email2, password2)
|
|
6577
|
+
|
|
6578
|
+
await async_test(
|
|
6579
|
+
`AgentRecord create blocked`,
|
|
6580
|
+
() => sdkOther.api.agent_records.createOne({ title: 'test', description: '', type: 'Article' }),
|
|
6581
|
+
{ shouldError: true, onError: e => true },
|
|
6582
|
+
)
|
|
6583
|
+
await async_test(
|
|
6584
|
+
`AgentRecord create many blocked`,
|
|
6585
|
+
() => sdkOther.api.agent_records.createSome([{ title: 'test', description: '', type: 'Article' }, { title: 'test', description: '', type: 'Article' }]),
|
|
6586
|
+
{ shouldError: true, onError: e => true },
|
|
6587
|
+
)
|
|
6588
|
+
await async_test(
|
|
6589
|
+
`AgentRecord update blocked`,
|
|
6590
|
+
() => sdkOther.api.agent_records.updateOne(r1.id, { title: 'updated' }),
|
|
6591
|
+
{ shouldError: true, onError: e => true },
|
|
6592
|
+
)
|
|
6593
|
+
await async_test(
|
|
6594
|
+
`AgentRecord delete blocked`,
|
|
6595
|
+
() => sdkOther.api.agent_records.deleteOne(r1.id),
|
|
6596
|
+
{ shouldError: true, onError: e => true },
|
|
6597
|
+
)
|
|
6598
|
+
|
|
6599
|
+
await async_test(
|
|
6600
|
+
`AgentRecord read access allowed in a different organizatino`,
|
|
6601
|
+
() => sdkSub.api.agent_records.getSome(),
|
|
6602
|
+
{ onResult: r => !!r.find(r => r.businessId !== sdkSub.userInfo.businessId) },
|
|
6603
|
+
)
|
|
6604
|
+
|
|
6605
|
+
await Promise.all([
|
|
6606
|
+
sdk.api.agent_records.deleteOne(r1.id),
|
|
6607
|
+
sdk.api.agent_records.deleteOne(r2.id),
|
|
6608
|
+
sdk.api.agent_records.deleteOne(r3.id),
|
|
6609
|
+
])
|
|
6610
|
+
}
|
|
6611
|
+
|
|
6561
6612
|
const NO_TEST = () => {}
|
|
6562
6613
|
const tests: { [K in keyof ClientModelForName]: () => void } = {
|
|
6614
|
+
agent_records: agent_record_tests,
|
|
6563
6615
|
enduser_eligibility_results: NO_TEST,
|
|
6564
6616
|
diagnosis_codes: NO_TEST,
|
|
6565
6617
|
allergy_codes: NO_TEST,
|
|
@@ -7229,10 +7281,10 @@ export const ticket_reminder_tests = async () => {
|
|
|
7229
7281
|
// test actual reminders without setting owner to avoid email notifications
|
|
7230
7282
|
const tToRemind = await sdk.api.tickets.createOne({
|
|
7231
7283
|
title,
|
|
7232
|
-
dueDateInMS,
|
|
7284
|
+
dueDateInMS: Date.now(),
|
|
7233
7285
|
reminders: [
|
|
7234
|
-
{ msBeforeDueDate:
|
|
7235
|
-
{ msBeforeDueDate:
|
|
7286
|
+
{ msBeforeDueDate: 0 }, // should remind right away
|
|
7287
|
+
{ msBeforeDueDate: -8000 }, // should then remind after
|
|
7236
7288
|
]
|
|
7237
7289
|
})
|
|
7238
7290
|
toDelete.push(tToRemind)
|
|
@@ -7246,8 +7298,8 @@ export const ticket_reminder_tests = async () => {
|
|
|
7246
7298
|
&& t.nextReminderInMS !== -1
|
|
7247
7299
|
&& t.reminders?.filter(r => r.didRemind)?.length === 1
|
|
7248
7300
|
),
|
|
7249
|
-
|
|
7250
|
-
|
|
7301
|
+
100,
|
|
7302
|
+
100,
|
|
7251
7303
|
),
|
|
7252
7304
|
passOnAnyResult
|
|
7253
7305
|
)
|
|
@@ -7272,10 +7324,10 @@ export const ticket_reminder_tests = async () => {
|
|
|
7272
7324
|
t.reminders?.[0]?.didRemind === true
|
|
7273
7325
|
&& t.nextReminderInMS === -1
|
|
7274
7326
|
&& t.reminders?.[1]?.didRemind === true
|
|
7275
|
-
&& t.reminders?.
|
|
7327
|
+
&& t.reminders?.length === 2
|
|
7276
7328
|
),
|
|
7277
7329
|
100,
|
|
7278
|
-
|
|
7330
|
+
100,
|
|
7279
7331
|
),
|
|
7280
7332
|
passOnAnyResult
|
|
7281
7333
|
)
|
package/test_generated.pdf
CHANGED
|
Binary file
|