@tellescope/sdk 1.200.2 → 1.202.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/sdk.d.ts +1 -0
- package/lib/cjs/sdk.d.ts.map +1 -1
- package/lib/cjs/sdk.js +1 -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 +775 -107
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/sdk.d.ts +3 -2
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/sdk.js +1 -0
- package/lib/esm/sdk.js.map +1 -1
- package/lib/esm/session.d.ts +0 -1
- package/lib/esm/session.d.ts.map +1 -1
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +775 -107
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/sdk.ts +4 -0
- package/src/tests/tests.ts +710 -6
- package/test_generated.pdf +0 -0
package/src/tests/tests.ts
CHANGED
|
@@ -7298,22 +7298,24 @@ export const formsort_tests = async () => {
|
|
|
7298
7298
|
|
|
7299
7299
|
const form = await sdk.api.forms.createOne({ title: "FormSort" })
|
|
7300
7300
|
|
|
7301
|
-
const postToFormsort = async ({ matchByName=false, ...o }: {
|
|
7301
|
+
const postToFormsort = async ({ matchByName=false, createNewEnduser=false, ...o }: {
|
|
7302
7302
|
answers: { key: string, value: any }[],
|
|
7303
7303
|
responder_uuid: string,
|
|
7304
7304
|
finalized: boolean,
|
|
7305
7305
|
matchByName?: boolean,
|
|
7306
|
+
createNewEnduser?: boolean,
|
|
7306
7307
|
}) => {
|
|
7307
|
-
await axios.post(`${host}/v1/webhooks/formsort/9d4f9dff00f60df2690a16da2cb848f289b447614ad9bef850e54af09a1fbf7a?formId=${form.id}&matchByName=${matchByName}`, o)
|
|
7308
|
+
await axios.post(`${host}/v1/webhooks/formsort/9d4f9dff00f60df2690a16da2cb848f289b447614ad9bef850e54af09a1fbf7a?formId=${form.id}&matchByName=${matchByName}&createNewEnduser=${createNewEnduser}`, o)
|
|
7308
7309
|
}
|
|
7309
7310
|
|
|
7310
|
-
const postToFormsortGeneric = async ({ matchByName=false, ...o }: {
|
|
7311
|
+
const postToFormsortGeneric = async ({ matchByName=false, createNewEnduser=false, ...o }: {
|
|
7311
7312
|
answers: { key: string, value: any }[],
|
|
7312
7313
|
responder_uuid: string,
|
|
7313
7314
|
finalized: boolean,
|
|
7314
7315
|
matchByName?: boolean,
|
|
7316
|
+
createNewEnduser?: boolean,
|
|
7315
7317
|
}) => {
|
|
7316
|
-
await axios.post(`${host}/v1/webhooks/form-ingestion/9d4f9dff00f60df2690a16da2cb848f289b447614ad9bef850e54af09a1fbf7a?formId=${form.id}&matchByName=${matchByName}`, o)
|
|
7318
|
+
await axios.post(`${host}/v1/webhooks/form-ingestion/9d4f9dff00f60df2690a16da2cb848f289b447614ad9bef850e54af09a1fbf7a?formId=${form.id}&matchByName=${matchByName}&createNewEnduser=${createNewEnduser}`, o)
|
|
7317
7319
|
}
|
|
7318
7320
|
|
|
7319
7321
|
const emailAnswer = { key: 'email', value: 'test@tellescope.com' }
|
|
@@ -7520,6 +7522,28 @@ export const formsort_tests = async () => {
|
|
|
7520
7522
|
}
|
|
7521
7523
|
)
|
|
7522
7524
|
|
|
7525
|
+
await postToFormsort({ answers: [emailAnswer], responder_uuid: "createNewEnduser", finalized: false, createNewEnduser: true })
|
|
7526
|
+
await async_test(`new enduser and form response created (1)`, sdk.api.form_responses.getSome, { onResult: r => r.length === 7 })
|
|
7527
|
+
await async_test(`new enduser and form response created (1)`, sdk.api.endusers.getSome, { onResult: r => r.length === 5 })
|
|
7528
|
+
|
|
7529
|
+
await postToFormsort({ answers: [emailAnswer], responder_uuid: "createNewEnduser", finalized: false, createNewEnduser: true })
|
|
7530
|
+
await async_test(`new enduser and form response created (2)`, sdk.api.form_responses.getSome, {
|
|
7531
|
+
onResult: r => r.length === 8 && r.filter(e => e.externalId === 'createNewEnduser').length === 2
|
|
7532
|
+
})
|
|
7533
|
+
await async_test(`new enduser and form response created (2)`, sdk.api.endusers.getSome, {
|
|
7534
|
+
onResult: r => r.length === 6 && r.filter(e => e.externalId === 'createNewEnduser').length === 2
|
|
7535
|
+
})
|
|
7536
|
+
|
|
7537
|
+
await postToFormsort({ answers: [emailAnswer], responder_uuid: "createNewEnduser", finalized: true, createNewEnduser: true })
|
|
7538
|
+
await async_test(`new enduser and form response created (3, finalized)`, sdk.api.form_responses.getSome, {
|
|
7539
|
+
onResult: r => r.length === 9 && r.filter(e => e.externalId === 'createNewEnduser').length === 3
|
|
7540
|
+
})
|
|
7541
|
+
await async_test(`new enduser and form response created (3, finalized)`, sdk.api.endusers.getSome, {
|
|
7542
|
+
onResult: r => r.length === 7
|
|
7543
|
+
&& r.filter(e => e.externalId === 'createNewEnduser').length === 3
|
|
7544
|
+
&& r.filter(e => e.externalId === 'createNewEnduser' && e.email === emailAnswer.value).length === 1 // email set on finalized
|
|
7545
|
+
})
|
|
7546
|
+
|
|
7523
7547
|
// cleanup
|
|
7524
7548
|
const endusers = await sdk.api.endusers.getSome()
|
|
7525
7549
|
await Promise.all([
|
|
@@ -10428,6 +10452,7 @@ const get_templated_message_tests = async () => {
|
|
|
10428
10452
|
|
|
10429
10453
|
const enduser = await sdk.api.endusers.createOne({ fname: "Main", fields: { CustomField: "Enduser" } })
|
|
10430
10454
|
const related = await sdk.api.endusers.createOne({ lname: "Related", fields: { OtherCustomField: "Contact" } })
|
|
10455
|
+
const form = await sdk.api.forms.createOne({ title: 'test form for templated message' })
|
|
10431
10456
|
|
|
10432
10457
|
await async_test(
|
|
10433
10458
|
"Fields are templated correctly for enduser and relatedcontact",
|
|
@@ -10457,9 +10482,93 @@ const get_templated_message_tests = async () => {
|
|
|
10457
10482
|
}
|
|
10458
10483
|
)
|
|
10459
10484
|
|
|
10485
|
+
await async_test(
|
|
10486
|
+
"Unformatted link",
|
|
10487
|
+
() => sdk.api.templates.get_templated_message({
|
|
10488
|
+
enduserId: enduser.id,
|
|
10489
|
+
channel: 'Email',
|
|
10490
|
+
message: `https://www.tellescope.com`,
|
|
10491
|
+
html: `https://www.tellescope.com`,
|
|
10492
|
+
userId: sdk.userInfo.id,
|
|
10493
|
+
}),
|
|
10494
|
+
{
|
|
10495
|
+
onResult: r => (
|
|
10496
|
+
r.plaintext === 'https://www.tellescope.com'
|
|
10497
|
+
&& r.html === 'https://www.tellescope.com'
|
|
10498
|
+
)
|
|
10499
|
+
}
|
|
10500
|
+
)
|
|
10501
|
+
|
|
10502
|
+
await async_test(
|
|
10503
|
+
"link format",
|
|
10504
|
+
() => sdk.api.templates.get_templated_message({
|
|
10505
|
+
enduserId: enduser.id,
|
|
10506
|
+
channel: 'Email',
|
|
10507
|
+
message: `{https://www.tellescope.com}[click here]`,
|
|
10508
|
+
html: `{https://www.tellescope.com}[click here]`,
|
|
10509
|
+
userId: sdk.userInfo.id,
|
|
10510
|
+
}),
|
|
10511
|
+
{ onResult:
|
|
10512
|
+
r => (
|
|
10513
|
+
r.plaintext.includes('/r/') && r.plaintext.includes('click here')
|
|
10514
|
+
&& r.html.includes('/r/') && r.html.includes('<a') && r.html.includes('click here') && r.html.includes("</a>")
|
|
10515
|
+
)
|
|
10516
|
+
}
|
|
10517
|
+
)
|
|
10518
|
+
await async_test(
|
|
10519
|
+
"plain $LINK_ONLY",
|
|
10520
|
+
() => sdk.api.templates.get_templated_message({
|
|
10521
|
+
enduserId: enduser.id,
|
|
10522
|
+
channel: 'Email',
|
|
10523
|
+
message: `{https://www.tellescope.com}[$LINK_ONLY]`,
|
|
10524
|
+
html: `{https://www.tellescope.com}[$LINK_ONLY]`,
|
|
10525
|
+
userId: sdk.userInfo.id,
|
|
10526
|
+
}),
|
|
10527
|
+
{ onResult:
|
|
10528
|
+
r => (
|
|
10529
|
+
r.plaintext.includes('/r/') && !r.plaintext.includes('$LINK_ONLY')
|
|
10530
|
+
&& r.html.includes('/r/') && !r.html.includes('$LINK_ONLY')
|
|
10531
|
+
)
|
|
10532
|
+
}
|
|
10533
|
+
)
|
|
10534
|
+
|
|
10535
|
+
await async_test(
|
|
10536
|
+
"form link",
|
|
10537
|
+
() => sdk.api.templates.get_templated_message({
|
|
10538
|
+
enduserId: enduser.id,
|
|
10539
|
+
channel: 'Email',
|
|
10540
|
+
message: `{{forms.${form.id}.link:click here}}`,
|
|
10541
|
+
html: `{{forms.${form.id}.link:click here}}`,
|
|
10542
|
+
userId: sdk.userInfo.id,
|
|
10543
|
+
}),
|
|
10544
|
+
{ onResult:
|
|
10545
|
+
r => (
|
|
10546
|
+
r.plaintext.includes('/r/') && r.plaintext.includes('click here')
|
|
10547
|
+
&& r.html.includes('/r/') && r.html.includes('<a') && r.html.includes('click here') && r.html.includes("</a>")
|
|
10548
|
+
)
|
|
10549
|
+
}
|
|
10550
|
+
)
|
|
10551
|
+
await async_test(
|
|
10552
|
+
"form $LINK_ONLY",
|
|
10553
|
+
() => sdk.api.templates.get_templated_message({
|
|
10554
|
+
enduserId: enduser.id,
|
|
10555
|
+
channel: 'Email',
|
|
10556
|
+
message: `{{forms.${form.id}.link:$LINK_ONLY}}`,
|
|
10557
|
+
html: `{{forms.${form.id}.link:$LINK_ONLY}}`,
|
|
10558
|
+
userId: sdk.userInfo.id,
|
|
10559
|
+
}),
|
|
10560
|
+
{ onResult:
|
|
10561
|
+
r => (
|
|
10562
|
+
r.plaintext.includes('/r/') && !r.plaintext.includes('$LINK_ONLY')
|
|
10563
|
+
&& r.html.includes('/r/') && !r.html.includes('$LINK_ONLY')
|
|
10564
|
+
)
|
|
10565
|
+
}
|
|
10566
|
+
)
|
|
10567
|
+
|
|
10460
10568
|
await Promise.all([
|
|
10461
10569
|
sdk.api.endusers.deleteOne(enduser.id),
|
|
10462
10570
|
sdk.api.endusers.deleteOne(related.id),
|
|
10571
|
+
sdk.api.forms.deleteOne(form.id),
|
|
10463
10572
|
])
|
|
10464
10573
|
}
|
|
10465
10574
|
|
|
@@ -10567,6 +10676,600 @@ const replace_enduser_template_values_tests = async () => {
|
|
|
10567
10676
|
await sdk.api.endusers.deleteOne(enduser.id)
|
|
10568
10677
|
}
|
|
10569
10678
|
|
|
10679
|
+
const inbox_loading_tests = async () => {
|
|
10680
|
+
log_header("Inbox Loading Tests")
|
|
10681
|
+
const e = await sdk.api.endusers.createOne({ fname: 'Test', lname: 'Testson' })
|
|
10682
|
+
|
|
10683
|
+
const email = await sdk.api.emails.createOne({
|
|
10684
|
+
logOnly: true,
|
|
10685
|
+
subject: 'Test Email',
|
|
10686
|
+
enduserId: e.id,
|
|
10687
|
+
textContent: 'This is a test email',
|
|
10688
|
+
inbound: true,
|
|
10689
|
+
userId: sdk.userInfo.id,
|
|
10690
|
+
})
|
|
10691
|
+
const sms = await sdk.api.sms_messages.createOne({
|
|
10692
|
+
logOnly: true,
|
|
10693
|
+
inbound: true,
|
|
10694
|
+
enduserId: e.id,
|
|
10695
|
+
message: 'This is a test SMS',
|
|
10696
|
+
userId: sdk.userInfo.id,
|
|
10697
|
+
})
|
|
10698
|
+
const groupMMS = await sdk.api.group_mms_conversations.createOne({
|
|
10699
|
+
enduserIds: [e.id],
|
|
10700
|
+
userIds: [sdk.userInfo.id],
|
|
10701
|
+
userStates: [],
|
|
10702
|
+
})
|
|
10703
|
+
const call = await sdk.api.phone_calls.createOne({ enduserId: e.id, inbound: true, userId: sdk.userInfo.id })
|
|
10704
|
+
const thread = await sdk.api.ticket_threads.createOne({ enduserId: e.id, subject: 'test thread' })
|
|
10705
|
+
const comment = await sdk.api.ticket_thread_comments.createOne({
|
|
10706
|
+
enduserId: e.id,
|
|
10707
|
+
html: '',
|
|
10708
|
+
inbound: false,
|
|
10709
|
+
plaintext: '',
|
|
10710
|
+
public: false,
|
|
10711
|
+
ticketThreadId: thread.id,
|
|
10712
|
+
userId: sdk.userInfo.id,
|
|
10713
|
+
})
|
|
10714
|
+
const room = await sdk.api.chat_rooms.createOne({ enduserIds: [e.id], userIds: [], title: 'Test Chat Room' })
|
|
10715
|
+
|
|
10716
|
+
await async_test(
|
|
10717
|
+
"Inbox loads emails",
|
|
10718
|
+
() => sdk.api.endusers.load_inbox_data({ }),
|
|
10719
|
+
{ onResult: r => (
|
|
10720
|
+
r.chat_rooms.length === 1
|
|
10721
|
+
&& r.emails.length === 1
|
|
10722
|
+
&& r.sms_messages.length === 1
|
|
10723
|
+
&& r.group_mms_conversations.length === 1
|
|
10724
|
+
&& r.phone_calls.length === 1
|
|
10725
|
+
&& r.ticket_thread_comments.length === 1
|
|
10726
|
+
&& r.endusers.length === 1
|
|
10727
|
+
) }
|
|
10728
|
+
)
|
|
10729
|
+
|
|
10730
|
+
await async_test(
|
|
10731
|
+
"Inbox loads emails (filter by self when no threads are assigned)",
|
|
10732
|
+
() => sdk.api.endusers.load_inbox_data({ userId: sdk.userInfo.id }),
|
|
10733
|
+
{ onResult: r => (
|
|
10734
|
+
r.chat_rooms.length === 1
|
|
10735
|
+
&& r.emails.length === 1
|
|
10736
|
+
&& r.sms_messages.length === 1
|
|
10737
|
+
&& r.group_mms_conversations.length === 1
|
|
10738
|
+
&& r.phone_calls.length === 1
|
|
10739
|
+
&& r.ticket_thread_comments.length === 1
|
|
10740
|
+
&& r.endusers.length === 1
|
|
10741
|
+
) }
|
|
10742
|
+
)
|
|
10743
|
+
|
|
10744
|
+
await async_test(
|
|
10745
|
+
"Inbox loads emails (filter by other when no threads are assigned)",
|
|
10746
|
+
() => sdk.api.endusers.load_inbox_data({ userId: sdkNonAdmin.userInfo.id }),
|
|
10747
|
+
{ onResult: r => (
|
|
10748
|
+
r.chat_rooms.length === 1
|
|
10749
|
+
&& r.emails.length === 1
|
|
10750
|
+
&& r.sms_messages.length === 1
|
|
10751
|
+
&& r.group_mms_conversations.length === 1
|
|
10752
|
+
&& r.phone_calls.length === 1
|
|
10753
|
+
&& r.ticket_thread_comments.length === 1
|
|
10754
|
+
&& r.endusers.length === 1
|
|
10755
|
+
) }
|
|
10756
|
+
)
|
|
10757
|
+
|
|
10758
|
+
await async_test(
|
|
10759
|
+
'Non-admin cannot load inbox data without assignment',
|
|
10760
|
+
() => sdkNonAdmin.api.endusers.load_inbox_data({ }),
|
|
10761
|
+
{
|
|
10762
|
+
onResult: r => (
|
|
10763
|
+
r.chat_rooms.length === 0
|
|
10764
|
+
&& r.emails.length === 0
|
|
10765
|
+
&& r.sms_messages.length === 0
|
|
10766
|
+
&& r.group_mms_conversations.length === 0
|
|
10767
|
+
&& r.phone_calls.length === 0
|
|
10768
|
+
&& r.ticket_thread_comments.length === 0
|
|
10769
|
+
&& r.endusers.length === 0
|
|
10770
|
+
)
|
|
10771
|
+
}
|
|
10772
|
+
)
|
|
10773
|
+
|
|
10774
|
+
await async_test(
|
|
10775
|
+
'Non-admin cannot load inbox data without assignment (self as filter)',
|
|
10776
|
+
() => sdkNonAdmin.api.endusers.load_inbox_data({ userId: sdkNonAdmin.userInfo.id }),
|
|
10777
|
+
{
|
|
10778
|
+
onResult: r => (
|
|
10779
|
+
r.chat_rooms.length === 0
|
|
10780
|
+
&& r.emails.length === 0
|
|
10781
|
+
&& r.sms_messages.length === 0
|
|
10782
|
+
&& r.group_mms_conversations.length === 0
|
|
10783
|
+
&& r.phone_calls.length === 0
|
|
10784
|
+
&& r.ticket_thread_comments.length === 0
|
|
10785
|
+
&& r.endusers.length === 0
|
|
10786
|
+
)
|
|
10787
|
+
}
|
|
10788
|
+
)
|
|
10789
|
+
|
|
10790
|
+
await async_test(
|
|
10791
|
+
'Non-admin cannot load inbox data without assignment (other user as filter)',
|
|
10792
|
+
() => sdkNonAdmin.api.endusers.load_inbox_data({ userId: sdk.userInfo.id }),
|
|
10793
|
+
{
|
|
10794
|
+
onResult: r => (
|
|
10795
|
+
r.chat_rooms.length === 0
|
|
10796
|
+
&& r.emails.length === 0
|
|
10797
|
+
&& r.sms_messages.length === 0
|
|
10798
|
+
&& r.group_mms_conversations.length === 0
|
|
10799
|
+
&& r.phone_calls.length === 0
|
|
10800
|
+
&& r.ticket_thread_comments.length === 0
|
|
10801
|
+
&& r.endusers.length === 0
|
|
10802
|
+
)
|
|
10803
|
+
}
|
|
10804
|
+
)
|
|
10805
|
+
|
|
10806
|
+
// assign to Enduser
|
|
10807
|
+
await sdk.api.endusers.updateOne(e.id, { assignedTo: [sdkNonAdmin.userInfo.id] }, { replaceObjectFields: true })
|
|
10808
|
+
await async_test(
|
|
10809
|
+
'Non-admin can load inbox data with assignment',
|
|
10810
|
+
() => sdkNonAdmin.api.endusers.load_inbox_data({ }),
|
|
10811
|
+
{
|
|
10812
|
+
onResult: r => (
|
|
10813
|
+
r.chat_rooms.length === 1
|
|
10814
|
+
&& r.emails.length === 1
|
|
10815
|
+
&& r.sms_messages.length === 1
|
|
10816
|
+
&& r.group_mms_conversations.length === 1
|
|
10817
|
+
&& r.phone_calls.length === 1
|
|
10818
|
+
&& r.ticket_thread_comments.length === 1
|
|
10819
|
+
&& r.endusers.length === 1
|
|
10820
|
+
)
|
|
10821
|
+
}
|
|
10822
|
+
)
|
|
10823
|
+
await async_test(
|
|
10824
|
+
'Non-admin can load inbox data with assignment (self as filter)',
|
|
10825
|
+
() => sdkNonAdmin.api.endusers.load_inbox_data({ userId: sdkNonAdmin.userInfo.id }),
|
|
10826
|
+
{
|
|
10827
|
+
onResult: r => (
|
|
10828
|
+
r.chat_rooms.length === 1
|
|
10829
|
+
&& r.emails.length === 1
|
|
10830
|
+
&& r.sms_messages.length === 1
|
|
10831
|
+
&& r.group_mms_conversations.length === 1
|
|
10832
|
+
&& r.phone_calls.length === 1
|
|
10833
|
+
&& r.ticket_thread_comments.length === 1
|
|
10834
|
+
&& r.endusers.length === 1
|
|
10835
|
+
)
|
|
10836
|
+
}
|
|
10837
|
+
)
|
|
10838
|
+
await async_test(
|
|
10839
|
+
'Non-admin can load inbox data with assignment (other user as filter, not assigned)',
|
|
10840
|
+
() => sdkNonAdmin.api.endusers.load_inbox_data({ userId: sdk.userInfo.id }),
|
|
10841
|
+
{
|
|
10842
|
+
onResult: r => (
|
|
10843
|
+
r.chat_rooms.length === 0
|
|
10844
|
+
&& r.emails.length === 0
|
|
10845
|
+
&& r.sms_messages.length === 0
|
|
10846
|
+
&& r.group_mms_conversations.length === 0
|
|
10847
|
+
&& r.phone_calls.length === 0
|
|
10848
|
+
&& r.ticket_thread_comments.length === 0
|
|
10849
|
+
&& r.endusers.length === 0
|
|
10850
|
+
)
|
|
10851
|
+
}
|
|
10852
|
+
)
|
|
10853
|
+
await sdk.api.endusers.updateOne(e.id, { assignedTo: [sdk.userInfo.id] }, { }) // add other assignment
|
|
10854
|
+
await async_test(
|
|
10855
|
+
'Non-admin can load inbox data with assignment (other user as filter, assigned)',
|
|
10856
|
+
() => sdkNonAdmin.api.endusers.load_inbox_data({ userId: sdk.userInfo.id }),
|
|
10857
|
+
{
|
|
10858
|
+
onResult: r => (
|
|
10859
|
+
r.chat_rooms.length === 1
|
|
10860
|
+
&& r.emails.length === 1
|
|
10861
|
+
&& r.sms_messages.length === 1
|
|
10862
|
+
&& r.group_mms_conversations.length === 1
|
|
10863
|
+
&& r.phone_calls.length === 1
|
|
10864
|
+
&& r.ticket_thread_comments.length === 1
|
|
10865
|
+
&& r.endusers.length === 1
|
|
10866
|
+
)
|
|
10867
|
+
}
|
|
10868
|
+
)
|
|
10869
|
+
|
|
10870
|
+
|
|
10871
|
+
// assign admin to all threads
|
|
10872
|
+
await sdk.api.emails.updateOne(email.id, { assignedTo: [sdk.userInfo.id] }, { replaceObjectFields: true })
|
|
10873
|
+
await sdk.api.sms_messages.updateOne(sms.id, { assignedTo: [sdk.userInfo.id] }, { replaceObjectFields: true })
|
|
10874
|
+
await sdk.api.group_mms_conversations.updateOne(groupMMS.id, { assignedTo: [sdk.userInfo.id] }, { replaceObjectFields: true })
|
|
10875
|
+
await sdk.api.phone_calls.updateOne(call.id, { assignedTo: [sdk.userInfo.id] }, { replaceObjectFields: true })
|
|
10876
|
+
await sdk.api.ticket_threads.updateOne(thread.id, { assignedTo: [sdk.userInfo.id] }, { replaceObjectFields: true })
|
|
10877
|
+
await sdk.api.ticket_thread_comments.updateOne(comment.id, { assignedTo: [sdk.userInfo.id] }, { replaceObjectFields: true })
|
|
10878
|
+
await sdk.api.chat_rooms.updateOne(room.id, { assignedTo: [sdk.userInfo.id] }, { replaceObjectFields: true })
|
|
10879
|
+
|
|
10880
|
+
await async_test(
|
|
10881
|
+
'admin doesnt load inbox data with assignedTo as other filter',
|
|
10882
|
+
() => sdk.api.endusers.load_inbox_data({ userId: sdkNonAdmin.userInfo.id }),
|
|
10883
|
+
{
|
|
10884
|
+
onResult: r => (
|
|
10885
|
+
r.chat_rooms.length === 0
|
|
10886
|
+
&& r.emails.length === 0
|
|
10887
|
+
&& r.sms_messages.length === 0
|
|
10888
|
+
&& r.group_mms_conversations.length === 0
|
|
10889
|
+
&& r.phone_calls.length === 0
|
|
10890
|
+
&& r.ticket_thread_comments.length === 0
|
|
10891
|
+
&& r.endusers.length === 0
|
|
10892
|
+
)
|
|
10893
|
+
}
|
|
10894
|
+
)
|
|
10895
|
+
await async_test(
|
|
10896
|
+
'admin loads inbox data for other user as filter assignedTo',
|
|
10897
|
+
() => sdk.api.endusers.load_inbox_data({ userId: sdk.userInfo.id }),
|
|
10898
|
+
{
|
|
10899
|
+
onResult: r => (
|
|
10900
|
+
r.chat_rooms.length === 1
|
|
10901
|
+
&& r.emails.length === 1
|
|
10902
|
+
&& r.sms_messages.length === 1
|
|
10903
|
+
&& r.group_mms_conversations.length === 1
|
|
10904
|
+
&& r.phone_calls.length === 1
|
|
10905
|
+
&& r.ticket_thread_comments.length === 1
|
|
10906
|
+
&& r.endusers.length === 1
|
|
10907
|
+
)
|
|
10908
|
+
}
|
|
10909
|
+
)
|
|
10910
|
+
await async_test(
|
|
10911
|
+
'admin loads inbox data with no user',
|
|
10912
|
+
() => sdk.api.endusers.load_inbox_data({ }),
|
|
10913
|
+
{
|
|
10914
|
+
onResult: r => (
|
|
10915
|
+
r.chat_rooms.length === 1
|
|
10916
|
+
&& r.emails.length === 1
|
|
10917
|
+
&& r.sms_messages.length === 1
|
|
10918
|
+
&& r.group_mms_conversations.length === 1
|
|
10919
|
+
&& r.phone_calls.length === 1
|
|
10920
|
+
&& r.ticket_thread_comments.length === 1
|
|
10921
|
+
&& r.endusers.length === 1
|
|
10922
|
+
)
|
|
10923
|
+
}
|
|
10924
|
+
)
|
|
10925
|
+
|
|
10926
|
+
await async_test(
|
|
10927
|
+
'Non-admin cant load inbox data with assignedTo as other (self as filter)',
|
|
10928
|
+
() => sdkNonAdmin.api.endusers.load_inbox_data({ userId: sdkNonAdmin.userInfo.id }),
|
|
10929
|
+
{
|
|
10930
|
+
onResult: r => (
|
|
10931
|
+
r.chat_rooms.length === 0
|
|
10932
|
+
&& r.emails.length === 0
|
|
10933
|
+
&& r.sms_messages.length === 0
|
|
10934
|
+
&& r.group_mms_conversations.length === 0
|
|
10935
|
+
&& r.phone_calls.length === 0
|
|
10936
|
+
&& r.ticket_thread_comments.length === 0
|
|
10937
|
+
&& r.endusers.length === 0
|
|
10938
|
+
)
|
|
10939
|
+
}
|
|
10940
|
+
)
|
|
10941
|
+
await async_test(
|
|
10942
|
+
'Non-admin can load inbox data for other user as filter, assignedTo',
|
|
10943
|
+
() => sdkNonAdmin.api.endusers.load_inbox_data({ userId: sdk.userInfo.id }),
|
|
10944
|
+
{
|
|
10945
|
+
onResult: r => (
|
|
10946
|
+
r.chat_rooms.length === 1
|
|
10947
|
+
&& r.emails.length === 1
|
|
10948
|
+
&& r.sms_messages.length === 1
|
|
10949
|
+
&& r.group_mms_conversations.length === 1
|
|
10950
|
+
&& r.phone_calls.length === 1
|
|
10951
|
+
&& r.ticket_thread_comments.length === 1
|
|
10952
|
+
&& r.endusers.length === 1
|
|
10953
|
+
)
|
|
10954
|
+
}
|
|
10955
|
+
)
|
|
10956
|
+
await async_test(
|
|
10957
|
+
'Non-admin can load inbox data with no user',
|
|
10958
|
+
() => sdkNonAdmin.api.endusers.load_inbox_data({ }),
|
|
10959
|
+
{
|
|
10960
|
+
onResult: r => (
|
|
10961
|
+
r.chat_rooms.length === 1
|
|
10962
|
+
&& r.emails.length === 1
|
|
10963
|
+
&& r.sms_messages.length === 1
|
|
10964
|
+
&& r.group_mms_conversations.length === 1
|
|
10965
|
+
&& r.phone_calls.length === 1
|
|
10966
|
+
&& r.ticket_thread_comments.length === 1
|
|
10967
|
+
&& r.endusers.length === 1
|
|
10968
|
+
)
|
|
10969
|
+
}
|
|
10970
|
+
)
|
|
10971
|
+
|
|
10972
|
+
// assign other user to all threads
|
|
10973
|
+
await sdk.api.emails.updateOne(email.id, { assignedTo: [sdkNonAdmin.userInfo.id] })
|
|
10974
|
+
await sdk.api.sms_messages.updateOne(sms.id, { assignedTo: [sdkNonAdmin.userInfo.id] })
|
|
10975
|
+
await sdk.api.group_mms_conversations.updateOne(groupMMS.id, { assignedTo: [sdkNonAdmin.userInfo.id] })
|
|
10976
|
+
await sdk.api.phone_calls.updateOne(call.id, { assignedTo: [sdkNonAdmin.userInfo.id] })
|
|
10977
|
+
await sdk.api.ticket_threads.updateOne(thread.id, { assignedTo: [sdkNonAdmin.userInfo.id] })
|
|
10978
|
+
await sdk.api.ticket_thread_comments.updateOne(comment.id, { assignedTo: [sdkNonAdmin.userInfo.id] })
|
|
10979
|
+
await sdk.api.chat_rooms.updateOne(room.id, { assignedTo: [sdkNonAdmin.userInfo.id] })
|
|
10980
|
+
|
|
10981
|
+
await async_test(
|
|
10982
|
+
'[both assigned] admin does load inbox data with assignedTo as other filter',
|
|
10983
|
+
() => sdk.api.endusers.load_inbox_data({ userId: sdkNonAdmin.userInfo.id }),
|
|
10984
|
+
{
|
|
10985
|
+
onResult: r => (
|
|
10986
|
+
r.chat_rooms.length === 1
|
|
10987
|
+
&& r.emails.length === 1
|
|
10988
|
+
&& r.sms_messages.length === 1
|
|
10989
|
+
&& r.group_mms_conversations.length === 1
|
|
10990
|
+
&& r.phone_calls.length === 1
|
|
10991
|
+
&& r.ticket_thread_comments.length === 1
|
|
10992
|
+
&& r.endusers.length === 1
|
|
10993
|
+
)
|
|
10994
|
+
}
|
|
10995
|
+
)
|
|
10996
|
+
await async_test(
|
|
10997
|
+
'[both assigned] admin loads inbox data for other user as filter assignedTo',
|
|
10998
|
+
() => sdk.api.endusers.load_inbox_data({ userId: sdk.userInfo.id }),
|
|
10999
|
+
{
|
|
11000
|
+
onResult: r => (
|
|
11001
|
+
r.chat_rooms.length === 1
|
|
11002
|
+
&& r.emails.length === 1
|
|
11003
|
+
&& r.sms_messages.length === 1
|
|
11004
|
+
&& r.group_mms_conversations.length === 1
|
|
11005
|
+
&& r.phone_calls.length === 1
|
|
11006
|
+
&& r.ticket_thread_comments.length === 1
|
|
11007
|
+
&& r.endusers.length === 1
|
|
11008
|
+
)
|
|
11009
|
+
}
|
|
11010
|
+
)
|
|
11011
|
+
await async_test(
|
|
11012
|
+
'[both assigned] admin loads inbox data with no user',
|
|
11013
|
+
() => sdk.api.endusers.load_inbox_data({ }),
|
|
11014
|
+
{
|
|
11015
|
+
onResult: r => (
|
|
11016
|
+
r.chat_rooms.length === 1
|
|
11017
|
+
&& r.emails.length === 1
|
|
11018
|
+
&& r.sms_messages.length === 1
|
|
11019
|
+
&& r.group_mms_conversations.length === 1
|
|
11020
|
+
&& r.phone_calls.length === 1
|
|
11021
|
+
&& r.ticket_thread_comments.length === 1
|
|
11022
|
+
&& r.endusers.length === 1
|
|
11023
|
+
)
|
|
11024
|
+
}
|
|
11025
|
+
)
|
|
11026
|
+
|
|
11027
|
+
await async_test(
|
|
11028
|
+
'[both assigned] Non-admin can load inbox data with assignedTo as other (self as filter)',
|
|
11029
|
+
() => sdkNonAdmin.api.endusers.load_inbox_data({ userId: sdkNonAdmin.userInfo.id }),
|
|
11030
|
+
{
|
|
11031
|
+
onResult: r => (
|
|
11032
|
+
r.chat_rooms.length === 1
|
|
11033
|
+
&& r.emails.length === 1
|
|
11034
|
+
&& r.sms_messages.length === 1
|
|
11035
|
+
&& r.group_mms_conversations.length === 1
|
|
11036
|
+
&& r.phone_calls.length === 1
|
|
11037
|
+
&& r.ticket_thread_comments.length === 1
|
|
11038
|
+
&& r.endusers.length === 1
|
|
11039
|
+
)
|
|
11040
|
+
}
|
|
11041
|
+
)
|
|
11042
|
+
await async_test(
|
|
11043
|
+
'[both assigned] Non-admin can load inbox data for other user as filter, assignedTo',
|
|
11044
|
+
() => sdkNonAdmin.api.endusers.load_inbox_data({ userId: sdk.userInfo.id }),
|
|
11045
|
+
{
|
|
11046
|
+
onResult: r => (
|
|
11047
|
+
r.chat_rooms.length === 1
|
|
11048
|
+
&& r.emails.length === 1
|
|
11049
|
+
&& r.sms_messages.length === 1
|
|
11050
|
+
&& r.group_mms_conversations.length === 1
|
|
11051
|
+
&& r.phone_calls.length === 1
|
|
11052
|
+
&& r.ticket_thread_comments.length === 1
|
|
11053
|
+
&& r.endusers.length === 1
|
|
11054
|
+
)
|
|
11055
|
+
}
|
|
11056
|
+
)
|
|
11057
|
+
await async_test(
|
|
11058
|
+
'[both assigned] Non-admin can load inbox data with no user',
|
|
11059
|
+
() => sdkNonAdmin.api.endusers.load_inbox_data({ }),
|
|
11060
|
+
{
|
|
11061
|
+
onResult: r => (
|
|
11062
|
+
r.chat_rooms.length === 1
|
|
11063
|
+
&& r.emails.length === 1
|
|
11064
|
+
&& r.sms_messages.length === 1
|
|
11065
|
+
&& r.group_mms_conversations.length === 1
|
|
11066
|
+
&& r.phone_calls.length === 1
|
|
11067
|
+
&& r.ticket_thread_comments.length === 1
|
|
11068
|
+
&& r.endusers.length === 1
|
|
11069
|
+
)
|
|
11070
|
+
}
|
|
11071
|
+
)
|
|
11072
|
+
|
|
11073
|
+
const noAccessRole = await sdk.api.role_based_access_permissions.createOne({
|
|
11074
|
+
role: 'No Access',
|
|
11075
|
+
permissions: {
|
|
11076
|
+
emails: { read: null, create: null, update: null, delete: null },
|
|
11077
|
+
sms_messages: { read: null, create: null, update: null, delete: null },
|
|
11078
|
+
group_mms_conversations: { read: null, create: null, update: null, delete: null },
|
|
11079
|
+
phone_calls: { read: null, create: null, update: null, delete: null },
|
|
11080
|
+
ticket_threads: { read: null, create: null, update: null, delete: null },
|
|
11081
|
+
ticket_thread_comments: { read: null, create: null, update: null, delete: null },
|
|
11082
|
+
chat_rooms: { read: null, create: null, update: null, delete: null },
|
|
11083
|
+
// read must be default for endpoint to return non 403
|
|
11084
|
+
endusers: { read: 'Default', create: null, update: null, delete: null },
|
|
11085
|
+
},
|
|
11086
|
+
})
|
|
11087
|
+
|
|
11088
|
+
const roleTestUserEmail = 'inbox.role.test@tellescope.com'
|
|
11089
|
+
const roleTestUser = (
|
|
11090
|
+
await sdk.api.users.getOne({ email: roleTestUserEmail }).catch(() => null) // throws error on none found
|
|
11091
|
+
) || (
|
|
11092
|
+
await sdk.api.users.createOne({ email: roleTestUserEmail })
|
|
11093
|
+
)
|
|
11094
|
+
// ensure role is set, in case GET returned a user without a role or with a different role
|
|
11095
|
+
await sdk.api.users.updateOne(roleTestUser.id, { roles: [noAccessRole.role] }, { replaceObjectFields: true })
|
|
11096
|
+
|
|
11097
|
+
// add to care team to ensure this doesn't grant unexpected access
|
|
11098
|
+
await sdk.api.endusers.updateOne(e.id, { assignedTo: [roleTestUser.id] })
|
|
11099
|
+
await wait(undefined, 2000) // role change triggers a logout
|
|
11100
|
+
|
|
11101
|
+
const sdkNoAccess = new Session({
|
|
11102
|
+
host,
|
|
11103
|
+
authToken: (await sdk.api.users.generate_auth_token({ id: roleTestUser.id })).authToken,
|
|
11104
|
+
})
|
|
11105
|
+
await async_test('test_authenticated (no access)', sdkNoAccess.test_authenticated, { expectedResult: 'Authenticated!' })
|
|
11106
|
+
await async_test('verify no-read on direct API call', sdkNoAccess.api.emails.getSome, handleAnyError) // ensures role is set up correctly
|
|
11107
|
+
|
|
11108
|
+
await async_test(
|
|
11109
|
+
"No access reads nothing",
|
|
11110
|
+
() => sdkNoAccess.api.endusers.load_inbox_data({ }),
|
|
11111
|
+
{
|
|
11112
|
+
onResult: r => (
|
|
11113
|
+
r.chat_rooms.length === 0
|
|
11114
|
+
&& r.emails.length === 0
|
|
11115
|
+
&& r.sms_messages.length === 0
|
|
11116
|
+
&& r.group_mms_conversations.length === 0
|
|
11117
|
+
&& r.phone_calls.length === 0
|
|
11118
|
+
&& r.ticket_thread_comments.length === 0
|
|
11119
|
+
&& r.endusers.length === 0
|
|
11120
|
+
)
|
|
11121
|
+
}
|
|
11122
|
+
)
|
|
11123
|
+
await async_test(
|
|
11124
|
+
"No access reads nothing (for self)",
|
|
11125
|
+
() => sdkNoAccess.api.endusers.load_inbox_data({ userId: roleTestUser.id }),
|
|
11126
|
+
{
|
|
11127
|
+
onResult: r => (
|
|
11128
|
+
r.chat_rooms.length === 0
|
|
11129
|
+
&& r.emails.length === 0
|
|
11130
|
+
&& r.sms_messages.length === 0
|
|
11131
|
+
&& r.group_mms_conversations.length === 0
|
|
11132
|
+
&& r.phone_calls.length === 0
|
|
11133
|
+
&& r.ticket_thread_comments.length === 0
|
|
11134
|
+
&& r.endusers.length === 0
|
|
11135
|
+
)
|
|
11136
|
+
}
|
|
11137
|
+
)
|
|
11138
|
+
await async_test(
|
|
11139
|
+
"No access reads nothing (for assigned admin)",
|
|
11140
|
+
() => sdkNoAccess.api.endusers.load_inbox_data({ userId: sdk.userInfo.id }),
|
|
11141
|
+
{
|
|
11142
|
+
onResult: r => (
|
|
11143
|
+
r.chat_rooms.length === 0
|
|
11144
|
+
&& r.emails.length === 0
|
|
11145
|
+
&& r.sms_messages.length === 0
|
|
11146
|
+
&& r.group_mms_conversations.length === 0
|
|
11147
|
+
&& r.phone_calls.length === 0
|
|
11148
|
+
&& r.ticket_thread_comments.length === 0
|
|
11149
|
+
&& r.endusers.length === 0
|
|
11150
|
+
)
|
|
11151
|
+
}
|
|
11152
|
+
)
|
|
11153
|
+
|
|
11154
|
+
const defaultAccessRole = await sdk.api.role_based_access_permissions.createOne({
|
|
11155
|
+
role: 'Default Access',
|
|
11156
|
+
permissions: {
|
|
11157
|
+
emails: { read: 'Default', create: 'Default', update: 'Default', delete: 'Default' },
|
|
11158
|
+
sms_messages: { read: 'Default', create: 'Default', update: 'Default', delete: 'Default' },
|
|
11159
|
+
group_mms_conversations: { read: 'Default', create: 'Default', update: 'Default', delete: 'Default' },
|
|
11160
|
+
phone_calls: { read: 'Default', create: 'Default', update: 'Default', delete: 'Default' },
|
|
11161
|
+
ticket_threads: { read: 'Default', create: 'Default', update: 'Default', delete: 'Default' },
|
|
11162
|
+
ticket_thread_comments: { read: 'Default', create: 'Default', update: 'Default', delete: 'Default' },
|
|
11163
|
+
chat_rooms: { read: 'Default', create: 'Default', update: 'Default', delete: 'Default' },
|
|
11164
|
+
endusers: { read: 'Default', create: 'Default', update: 'Default', delete: 'Default' },
|
|
11165
|
+
},
|
|
11166
|
+
})
|
|
11167
|
+
await sdk.api.users.updateOne(roleTestUser.id, { roles: [defaultAccessRole.role] }, { replaceObjectFields: true })
|
|
11168
|
+
await wait(undefined, 2000) // role change triggers a logout
|
|
11169
|
+
const sdkDefaultAccess = new Session({
|
|
11170
|
+
host,
|
|
11171
|
+
authToken: (await sdk.api.users.generate_auth_token({ id: roleTestUser.id })).authToken,
|
|
11172
|
+
})
|
|
11173
|
+
|
|
11174
|
+
await async_test('test_authenticated (default access)', sdkDefaultAccess.test_authenticated, { expectedResult: 'Authenticated!' })
|
|
11175
|
+
|
|
11176
|
+
await async_test(
|
|
11177
|
+
"Default access reads nothing",
|
|
11178
|
+
() => sdkDefaultAccess.api.endusers.load_inbox_data({ }),
|
|
11179
|
+
{
|
|
11180
|
+
onResult: r => (
|
|
11181
|
+
r.chat_rooms.length === 0
|
|
11182
|
+
&& r.emails.length === 0
|
|
11183
|
+
&& r.sms_messages.length === 0
|
|
11184
|
+
&& r.group_mms_conversations.length === 0
|
|
11185
|
+
&& r.phone_calls.length === 0
|
|
11186
|
+
&& r.ticket_thread_comments.length === 0
|
|
11187
|
+
&& r.endusers.length === 0
|
|
11188
|
+
)
|
|
11189
|
+
}
|
|
11190
|
+
)
|
|
11191
|
+
await async_test(
|
|
11192
|
+
"Default access reads nothing (for self)",
|
|
11193
|
+
() => sdkDefaultAccess.api.endusers.load_inbox_data({ userId: roleTestUser.id }),
|
|
11194
|
+
{
|
|
11195
|
+
onResult: r => (
|
|
11196
|
+
r.chat_rooms.length === 0
|
|
11197
|
+
&& r.emails.length === 0
|
|
11198
|
+
&& r.sms_messages.length === 0
|
|
11199
|
+
&& r.group_mms_conversations.length === 0
|
|
11200
|
+
&& r.phone_calls.length === 0
|
|
11201
|
+
&& r.ticket_thread_comments.length === 0
|
|
11202
|
+
&& r.endusers.length === 0
|
|
11203
|
+
)
|
|
11204
|
+
}
|
|
11205
|
+
)
|
|
11206
|
+
await async_test(
|
|
11207
|
+
"Default access reads nothing (for assigned admin)",
|
|
11208
|
+
() => sdkDefaultAccess.api.endusers.load_inbox_data({ userId: sdk.userInfo.id }),
|
|
11209
|
+
{
|
|
11210
|
+
onResult: r => (
|
|
11211
|
+
r.chat_rooms.length === 0
|
|
11212
|
+
&& r.emails.length === 0
|
|
11213
|
+
&& r.sms_messages.length === 0
|
|
11214
|
+
&& r.group_mms_conversations.length === 0
|
|
11215
|
+
&& r.phone_calls.length === 0
|
|
11216
|
+
&& r.ticket_thread_comments.length === 0
|
|
11217
|
+
&& r.endusers.length === 0
|
|
11218
|
+
)
|
|
11219
|
+
}
|
|
11220
|
+
)
|
|
11221
|
+
|
|
11222
|
+
|
|
11223
|
+
// assign default user to the specific messages by setting userId, userIds, etc.
|
|
11224
|
+
await sdk.api.emails.updateOne(email.id, { assignedTo: [], userId: roleTestUser.id }, { replaceObjectFields: true })
|
|
11225
|
+
await sdk.api.sms_messages.updateOne(sms.id, { assignedTo: [], userId: roleTestUser.id }, { replaceObjectFields: true })
|
|
11226
|
+
await sdk.api.group_mms_conversations.updateOne(groupMMS.id, { assignedTo: [], userIds: [roleTestUser.id] }, { replaceObjectFields: true })
|
|
11227
|
+
await sdk.api.phone_calls.updateOne(call.id, { assignedTo: [], userId: roleTestUser.id }, { replaceObjectFields: true })
|
|
11228
|
+
await sdk.api.ticket_thread_comments.updateOne(comment.id, {assignedTo: [], userId: roleTestUser.id }, { replaceObjectFields: true })
|
|
11229
|
+
// need to replace assignedTo for userIds to take precedent
|
|
11230
|
+
await sdk.api.chat_rooms.updateOne(room.id, { assignedTo: [], userIds: [roleTestUser.id] }, { replaceObjectFields: true})
|
|
11231
|
+
|
|
11232
|
+
await async_test(
|
|
11233
|
+
"Default access reads stuff when assigned",
|
|
11234
|
+
() => sdkDefaultAccess.api.endusers.load_inbox_data({ }),
|
|
11235
|
+
{
|
|
11236
|
+
onResult: r => (
|
|
11237
|
+
r.chat_rooms.length === 1
|
|
11238
|
+
&& r.emails.length === 1
|
|
11239
|
+
&& r.sms_messages.length === 1
|
|
11240
|
+
&& r.group_mms_conversations.length === 1
|
|
11241
|
+
&& r.phone_calls.length === 1
|
|
11242
|
+
&& r.ticket_thread_comments.length === 1
|
|
11243
|
+
&& r.endusers.length === 1
|
|
11244
|
+
)
|
|
11245
|
+
}
|
|
11246
|
+
)
|
|
11247
|
+
await async_test(
|
|
11248
|
+
"Default access reads stuff when assigned (for self)",
|
|
11249
|
+
() => sdkDefaultAccess.api.endusers.load_inbox_data({ userId: roleTestUser.id }),
|
|
11250
|
+
{
|
|
11251
|
+
onResult: r => (
|
|
11252
|
+
r.chat_rooms.length === 1
|
|
11253
|
+
&& r.emails.length === 1
|
|
11254
|
+
&& r.sms_messages.length === 1
|
|
11255
|
+
&& r.group_mms_conversations.length === 1
|
|
11256
|
+
&& r.phone_calls.length === 1
|
|
11257
|
+
&& r.ticket_thread_comments.length === 1
|
|
11258
|
+
&& r.endusers.length === 1
|
|
11259
|
+
)
|
|
11260
|
+
}
|
|
11261
|
+
)
|
|
11262
|
+
|
|
11263
|
+
|
|
11264
|
+
await Promise.all([
|
|
11265
|
+
sdk.api.endusers.deleteOne(e.id),
|
|
11266
|
+
sdk.api.chat_rooms.deleteOne(room.id),
|
|
11267
|
+
sdk.api.role_based_access_permissions.deleteOne(noAccessRole.id),
|
|
11268
|
+
sdk.api.role_based_access_permissions.deleteOne(defaultAccessRole.id),
|
|
11269
|
+
sdk.api.users.deleteOne(roleTestUser.id),
|
|
11270
|
+
])
|
|
11271
|
+
}
|
|
11272
|
+
|
|
10570
11273
|
(async () => {
|
|
10571
11274
|
log_header("API")
|
|
10572
11275
|
|
|
@@ -10680,13 +11383,15 @@ const replace_enduser_template_values_tests = async () => {
|
|
|
10680
11383
|
await replace_enduser_template_values_tests()
|
|
10681
11384
|
await mfa_tests()
|
|
10682
11385
|
await setup_tests()
|
|
11386
|
+
await formsort_tests()
|
|
11387
|
+
await inbox_loading_tests()
|
|
10683
11388
|
await multi_tenant_tests() // should come right after setup tests
|
|
10684
11389
|
await sync_tests_with_access_tags() // should come directly after setup to avoid extra sync values
|
|
10685
11390
|
await sync_tests() // should come directly after setup to avoid extra sync values
|
|
11391
|
+
await get_templated_message_tests()
|
|
10686
11392
|
await updatedAt_tests()
|
|
10687
11393
|
await automation_trigger_tests()
|
|
10688
11394
|
await file_source_tests()
|
|
10689
|
-
await get_templated_message_tests()
|
|
10690
11395
|
await enduser_access_tags_tests()
|
|
10691
11396
|
await enduserAccessTests()
|
|
10692
11397
|
await test_form_response_search()
|
|
@@ -10698,7 +11403,6 @@ const replace_enduser_template_values_tests = async () => {
|
|
|
10698
11403
|
await calendar_event_care_team_tests()
|
|
10699
11404
|
await merge_enduser_tests()
|
|
10700
11405
|
await input_modifier_tests()
|
|
10701
|
-
await formsort_tests()
|
|
10702
11406
|
await switch_to_related_contacts_tests()
|
|
10703
11407
|
await redaction_tests()
|
|
10704
11408
|
await self_serve_appointment_booking_tests()
|