@tellescope/sdk 1.63.1 → 1.64.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.
- package/lib/cjs/sdk.d.ts +16 -1
- package/lib/cjs/sdk.d.ts.map +1 -1
- package/lib/cjs/sdk.js +11 -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 +105 -48
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/enduser.d.ts +1 -0
- package/lib/esm/enduser.d.ts.map +1 -1
- package/lib/esm/sdk.d.ts +17 -1
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/sdk.js +11 -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 +105 -48
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/sdk.ts +13 -0
- package/src/tests/tests.ts +99 -11
- package/test_generated.pdf +0 -0
package/src/tests/tests.ts
CHANGED
|
@@ -1205,6 +1205,21 @@ const chat_room_tests = async () => {
|
|
|
1205
1205
|
() => sdk2.api.chat_rooms.getOne(emptyRoom.id),
|
|
1206
1206
|
{ onResult: r => r.id === emptyRoom.id }
|
|
1207
1207
|
)
|
|
1208
|
+
await async_test(
|
|
1209
|
+
`create-chat (join successful)`,
|
|
1210
|
+
() => sdk2.api.chats.createOne({ roomId: emptyRoom.id, message: 'test' }),
|
|
1211
|
+
passOnAnyResult
|
|
1212
|
+
)
|
|
1213
|
+
await async_test(
|
|
1214
|
+
`get-chat (join successful)`,
|
|
1215
|
+
() => sdk2.api.chats.getSome({ filter: { roomId: emptyRoom.id } }),
|
|
1216
|
+
{ onResult: r => r.length > 0 }
|
|
1217
|
+
)
|
|
1218
|
+
await async_test(
|
|
1219
|
+
`[bulk] get-chat-room (join successful)`,
|
|
1220
|
+
() => sdk2.bulk_load({ load: [{ model: 'chat_rooms' }] }),
|
|
1221
|
+
{ onResult: r => r.results?.[0]?.records?.find(r => r.id === emptyRoom.id )}
|
|
1222
|
+
)
|
|
1208
1223
|
|
|
1209
1224
|
await enduserSDK.logout()
|
|
1210
1225
|
const loggedOutEnduser = await sdk.api.endusers.getOne(enduser.id)
|
|
@@ -3018,6 +3033,21 @@ const role_based_access_tests = async () => {
|
|
|
3018
3033
|
`non-admin for enduser ticket bad`,
|
|
3019
3034
|
() => sdkNonAdmin.api.tickets.getOne(adminTicket.id), handleAnyError,
|
|
3020
3035
|
)
|
|
3036
|
+
await async_test(
|
|
3037
|
+
`[bulkd] Admin / creator can access enduser without being assigned`,
|
|
3038
|
+
() => sdk.bulk_load({ load: [{ model: 'endusers' }] }),
|
|
3039
|
+
{ onResult: r => r.results[0]?.records !== undefined && r.results[0].records?.find(r => r.id === e.id) }
|
|
3040
|
+
)
|
|
3041
|
+
await async_test(
|
|
3042
|
+
`[bulk] Unassigned non-admin can't access enduser without being assigned`,
|
|
3043
|
+
() => sdkNonAdmin.bulk_load({ load: [{ model: 'endusers' }] }),
|
|
3044
|
+
{ onResult: r => r.results[0]?.records !== undefined && !r.results[0].records?.find(r => r.id === e.id) }
|
|
3045
|
+
)
|
|
3046
|
+
await async_test(
|
|
3047
|
+
`non-admin for enduser ticket bad`,
|
|
3048
|
+
() => sdkNonAdmin.bulk_load({ load: [{ model: 'tickets' }] }),
|
|
3049
|
+
{ onResult: r => r.results[0]?.records !== undefined && !r.results[0].records?.find(r => r.id === adminTicket.id) }
|
|
3050
|
+
)
|
|
3021
3051
|
|
|
3022
3052
|
await async_test(
|
|
3023
3053
|
`Non-admin for own ticket`, () => sdkNonAdmin.api.tickets.getOne(ticketCreatedByNonAdmin.id), passOnAnyResult
|
|
@@ -3025,9 +3055,19 @@ const role_based_access_tests = async () => {
|
|
|
3025
3055
|
await async_test(
|
|
3026
3056
|
`Non-admin for tickets`, () => sdkNonAdmin.api.tickets.getSome(), { onResult: ts => ts.length === 1 }
|
|
3027
3057
|
)
|
|
3058
|
+
await async_test(
|
|
3059
|
+
`[bulk] Non-admin for tickets`,
|
|
3060
|
+
() => sdkNonAdmin.bulk_load({ load: [{ model: 'tickets' }] }),
|
|
3061
|
+
{ onResult: r => r.results?.[0]?.records?.length === 1 }
|
|
3062
|
+
)
|
|
3028
3063
|
await async_test(
|
|
3029
3064
|
`non-admin for email bad`, () => sdkNonAdmin.api.emails.getOne(email.id), handleAnyError,
|
|
3030
3065
|
)
|
|
3066
|
+
await async_test(
|
|
3067
|
+
`[bulk] non-admin for email bad`,
|
|
3068
|
+
() => sdkNonAdmin.bulk_load({ load: [{ model: 'emails' }] }),
|
|
3069
|
+
{ onResult: r => r.results?.[0]?.records?.length === 0 }
|
|
3070
|
+
)
|
|
3031
3071
|
await async_test(
|
|
3032
3072
|
`non-admin for sms bad`, () => sdkNonAdmin.api.sms_messages.getOne(sms.id), handleAnyError,
|
|
3033
3073
|
)
|
|
@@ -3037,15 +3077,35 @@ const role_based_access_tests = async () => {
|
|
|
3037
3077
|
await async_test(
|
|
3038
3078
|
`non-admin for calendar bad`, () => sdkNonAdmin.api.calendar_events.getOne(calendarEvent.id), handleAnyError,
|
|
3039
3079
|
)
|
|
3080
|
+
await async_test(
|
|
3081
|
+
`[bulk] non-admin for calendar bad`,
|
|
3082
|
+
() => sdkNonAdmin.bulk_load({ load: [{ model: 'calendar_events' }] }),
|
|
3083
|
+
{ onResult: r => r.results?.[0]?.records?.length === 0 }
|
|
3084
|
+
)
|
|
3040
3085
|
await async_test(
|
|
3041
3086
|
`non-admin for chat room bad`, () => sdkNonAdmin.api.chat_rooms.getOne(chatRoom.id), handleAnyError,
|
|
3042
3087
|
)
|
|
3088
|
+
await async_test(
|
|
3089
|
+
`[bulk] non-admin for chat room bad`,
|
|
3090
|
+
() => sdkNonAdmin.bulk_load({ load: [{ model: 'chat_rooms' }] }),
|
|
3091
|
+
{ onResult: r => r.results?.[0]?.records?.length === 0 }
|
|
3092
|
+
)
|
|
3043
3093
|
await async_test(
|
|
3044
3094
|
`non-admin for chat message bad`, () => sdkNonAdmin.api.chats.getOne(chatMessage.id), handleAnyError,
|
|
3045
3095
|
)
|
|
3096
|
+
await async_test(
|
|
3097
|
+
`[bulk] non-admin for chat message bad`,
|
|
3098
|
+
() => sdkNonAdmin.bulk_load({ load: [{ model: 'chats' }] }),
|
|
3099
|
+
handleAnyError // throws error in this case in enforceForeignAccessConstraints because there are no accessible chats
|
|
3100
|
+
)
|
|
3046
3101
|
await async_test(
|
|
3047
3102
|
`Non-admin for chats`, () => sdkNonAdmin.api.chats.getSome({ filter: { roomId: chatRoom.id } }), handleAnyError,
|
|
3048
3103
|
)
|
|
3104
|
+
await async_test(
|
|
3105
|
+
`Non-admin for tickets with enduserId in filter`,
|
|
3106
|
+
() => sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: e.id } }),
|
|
3107
|
+
{ onResult: r => !r.find(t => t.id === adminTicket.id)}
|
|
3108
|
+
)
|
|
3049
3109
|
|
|
3050
3110
|
// unassigned update / delete coverage
|
|
3051
3111
|
await async_test(
|
|
@@ -3070,6 +3130,11 @@ const role_based_access_tests = async () => {
|
|
|
3070
3130
|
await async_test(
|
|
3071
3131
|
`non-admin for enduser ticket`, () => sdkNonAdmin.api.tickets.getOne(adminTicket.id), passOnAnyResult,
|
|
3072
3132
|
)
|
|
3133
|
+
await async_test(
|
|
3134
|
+
`[bulk] non-admin for enduser ticket`,
|
|
3135
|
+
() => sdkNonAdmin.bulk_load({ load: [{ model: 'tickets' }] }),
|
|
3136
|
+
{ onResult: r => r.results?.[0]?.records?.find(r => r.id === adminTicket.id )}
|
|
3137
|
+
)
|
|
3073
3138
|
|
|
3074
3139
|
await async_test(
|
|
3075
3140
|
`Non-admin for tickets`, () => sdkNonAdmin.api.tickets.getSome(), { onResult: ts => ts.length === 2 }
|
|
@@ -3077,18 +3142,38 @@ const role_based_access_tests = async () => {
|
|
|
3077
3142
|
await async_test(
|
|
3078
3143
|
`non-admin for email`, () => sdkNonAdmin.api.emails.getOne(email.id), passOnAnyResult,
|
|
3079
3144
|
)
|
|
3145
|
+
await async_test(
|
|
3146
|
+
`[bulk] non-admin for email`,
|
|
3147
|
+
() => sdkNonAdmin.bulk_load({ load: [{ model: 'emails' }] }),
|
|
3148
|
+
{ onResult: r => r.results?.[0]?.records?.find(r => r.id === email.id )}
|
|
3149
|
+
)
|
|
3080
3150
|
await async_test(
|
|
3081
3151
|
`non-admin for sms`, () => sdkNonAdmin.api.sms_messages.getOne(sms.id), passOnAnyResult,
|
|
3082
3152
|
)
|
|
3083
3153
|
await async_test(
|
|
3084
3154
|
`non-admin for calendar`, () => sdkNonAdmin.api.calendar_events.getOne(calendarEvent.id), passOnAnyResult,
|
|
3085
3155
|
)
|
|
3156
|
+
await async_test(
|
|
3157
|
+
`[bulk] non-admin for calendar`,
|
|
3158
|
+
() => sdkNonAdmin.bulk_load({ load: [{ model: 'calendar_events' }] }),
|
|
3159
|
+
{ onResult: r => r.results?.[0]?.records?.find(r => r.id === calendarEvent.id )}
|
|
3160
|
+
)
|
|
3086
3161
|
await async_test(
|
|
3087
3162
|
`non-admin for chat room`, () => sdkNonAdmin.api.chat_rooms.getOne(chatRoom.id), passOnAnyResult,
|
|
3088
3163
|
)
|
|
3164
|
+
await async_test(
|
|
3165
|
+
`[bulk] non-admin for chat room`,
|
|
3166
|
+
() => sdkNonAdmin.bulk_load({ load: [{ model: 'chat_rooms' }] }),
|
|
3167
|
+
{ onResult: r => r.results?.[0]?.records?.find(r => r.id === chatRoom.id )}
|
|
3168
|
+
)
|
|
3089
3169
|
await async_test(
|
|
3090
3170
|
`non-admin for chat message`, () => sdkNonAdmin.api.chats.getOne(chatMessage.id), passOnAnyResult,
|
|
3091
3171
|
)
|
|
3172
|
+
await async_test(
|
|
3173
|
+
`[bulk] non-admin for chat message`,
|
|
3174
|
+
() => sdkNonAdmin.bulk_load({ load: [{ model: 'chats' }] }),
|
|
3175
|
+
{ onResult: r => r.results?.[0]?.records?.find(r => r.id === chatMessage.id )}
|
|
3176
|
+
)
|
|
3092
3177
|
await async_test(
|
|
3093
3178
|
`Non-admin for chats`, () => sdkNonAdmin.api.chats.getSome({ filter: { roomId: chatRoom.id } }),
|
|
3094
3179
|
{ onResult: cs => cs.length === 2 },
|
|
@@ -4198,7 +4283,7 @@ const wait_for_trigger_tests = async () => {
|
|
|
4198
4283
|
})
|
|
4199
4284
|
|
|
4200
4285
|
await sdk.api.endusers.add_to_journey({ enduserIds: [eTrigger.id], journeyId: journey.id })
|
|
4201
|
-
await wait(undefined,
|
|
4286
|
+
await wait(undefined, 8000)
|
|
4202
4287
|
|
|
4203
4288
|
await async_test(
|
|
4204
4289
|
"Journey started",
|
|
@@ -4208,7 +4293,7 @@ const wait_for_trigger_tests = async () => {
|
|
|
4208
4293
|
|
|
4209
4294
|
await sdk.api.endusers.updateOne(eTrigger.id, { fields: { Test: 'Trigger' } })
|
|
4210
4295
|
await sdk.api.endusers.updateOne(eNoTrigger.id, { fields: { Test: 'Trigger' } })
|
|
4211
|
-
await wait(undefined,
|
|
4296
|
+
await wait(undefined, 3000)
|
|
4212
4297
|
|
|
4213
4298
|
// TODO - Test a delayed action which comes after the triggered action
|
|
4214
4299
|
|
|
@@ -4379,37 +4464,38 @@ const remove_from_journey_on_incoming_comms_tests = async () => {
|
|
|
4379
4464
|
|
|
4380
4465
|
await sdk.api.endusers.updateOne(e1.id, { journeys: { [jRemove.id]: '', [jDontRemove.id]: '' } })
|
|
4381
4466
|
await sdk.api.endusers.updateOne(e2.id, { journeys: { [jRemove.id]: '', [jDontRemove.id]: '' } })
|
|
4382
|
-
await wait(undefined,
|
|
4467
|
+
await wait(undefined, 100)
|
|
4383
4468
|
|
|
4384
4469
|
const room = await sdk.api.chat_rooms.createOne({ })
|
|
4385
4470
|
await sdk.api.chats.createOne({ roomId: room.id, senderId: e1.id, message: 'cancel' })
|
|
4386
|
-
await wait(undefined,
|
|
4471
|
+
await wait(undefined, 100)
|
|
4387
4472
|
|
|
4473
|
+
console.log(jRemove.id, removeStep2.id, e1.id)
|
|
4388
4474
|
await async_test(
|
|
4389
4475
|
"Appropriate Automated Actions are cancelled on incoming message",
|
|
4390
4476
|
() => sdk.api.automated_actions.getSome(),
|
|
4391
4477
|
{ onResult: actions => (
|
|
4392
4478
|
!!actions.find(a =>
|
|
4393
4479
|
a.journeyId === jRemove.id
|
|
4394
|
-
&& a.automationStepId ===
|
|
4480
|
+
&& a.automationStepId === removeStep1.id
|
|
4395
4481
|
&& a.enduserId === e1.id
|
|
4396
4482
|
&& a.status === 'cancelled'
|
|
4397
4483
|
)
|
|
4398
4484
|
&& !!actions.find(a =>
|
|
4399
4485
|
a.journeyId === jRemove.id
|
|
4400
|
-
&& a.automationStepId ===
|
|
4486
|
+
&& a.automationStepId === removeStep1.id
|
|
4401
4487
|
&& a.enduserId === e2.id
|
|
4402
4488
|
&& a.status === 'active'
|
|
4403
4489
|
)
|
|
4404
4490
|
&& !!actions.find(a =>
|
|
4405
4491
|
a.journeyId === jDontRemove.id
|
|
4406
|
-
&& a.automationStepId ===
|
|
4492
|
+
&& a.automationStepId === dontRemoveStep1.id
|
|
4407
4493
|
&& a.enduserId === e1.id
|
|
4408
4494
|
&& a.status === 'active'
|
|
4409
4495
|
)
|
|
4410
4496
|
&& !!actions.find(a =>
|
|
4411
4497
|
a.journeyId === jDontRemove.id
|
|
4412
|
-
&& a.automationStepId ===
|
|
4498
|
+
&& a.automationStepId === dontRemoveStep1.id
|
|
4413
4499
|
&& a.enduserId === e2.id
|
|
4414
4500
|
&& a.status === 'active'
|
|
4415
4501
|
)
|
|
@@ -4424,7 +4510,7 @@ const remove_from_journey_on_incoming_comms_tests = async () => {
|
|
|
4424
4510
|
{ onResult: actions => (
|
|
4425
4511
|
!!actions.find(a =>
|
|
4426
4512
|
a.journeyId === jRemove.id
|
|
4427
|
-
&& a.automationStepId ===
|
|
4513
|
+
&& a.automationStepId === removeStep1.id
|
|
4428
4514
|
&& a.enduserId === e2.id
|
|
4429
4515
|
&& a.status === 'cancelled'
|
|
4430
4516
|
)
|
|
@@ -4587,6 +4673,8 @@ const TRACK_OPEN_IMAGE = Buffer.from(
|
|
|
4587
4673
|
sdkSubSub.authenticate(subSubUserEmail, password),
|
|
4588
4674
|
sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword),
|
|
4589
4675
|
])
|
|
4676
|
+
|
|
4677
|
+
// console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
|
|
4590
4678
|
|
|
4591
4679
|
await async_test(
|
|
4592
4680
|
"count exists",
|
|
@@ -4603,12 +4691,12 @@ const TRACK_OPEN_IMAGE = Buffer.from(
|
|
|
4603
4691
|
|
|
4604
4692
|
await mfa_tests()
|
|
4605
4693
|
await setup_tests()
|
|
4694
|
+
await wait_for_trigger_tests()
|
|
4695
|
+
await role_based_access_tests()
|
|
4606
4696
|
await multi_tenant_tests() // should come right after setup tests
|
|
4607
4697
|
await pdf_generation()
|
|
4608
4698
|
await remove_from_journey_on_incoming_comms_tests()
|
|
4609
4699
|
await rate_limit_tests()
|
|
4610
|
-
await role_based_access_tests()
|
|
4611
|
-
await wait_for_trigger_tests()
|
|
4612
4700
|
await merge_enduser_tests()
|
|
4613
4701
|
await self_serve_appointment_booking_tests()
|
|
4614
4702
|
await auto_reply_tests()
|
package/test_generated.pdf
CHANGED
|
Binary file
|