@tellescope/sdk 1.63.0 → 1.64.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.
@@ -1205,6 +1205,11 @@ 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
+ `[bulk] get-chat-room (join successful)`,
1210
+ () => sdkNonAdmin.bulk_load({ load: [{ model: 'chat_rooms' }] }),
1211
+ { onResult: r => r.results?.[0]?.records?.find(r => r.id === emptyRoom.id )}
1212
+ )
1208
1213
 
1209
1214
  await enduserSDK.logout()
1210
1215
  const loggedOutEnduser = await sdk.api.endusers.getOne(enduser.id)
@@ -3018,6 +3023,21 @@ const role_based_access_tests = async () => {
3018
3023
  `non-admin for enduser ticket bad`,
3019
3024
  () => sdkNonAdmin.api.tickets.getOne(adminTicket.id), handleAnyError,
3020
3025
  )
3026
+ await async_test(
3027
+ `[bulkd] Admin / creator can access enduser without being assigned`,
3028
+ () => sdk.bulk_load({ load: [{ model: 'endusers' }] }),
3029
+ { onResult: r => r.results[0]?.records !== undefined && r.results[0].records?.find(r => r.id === e.id) }
3030
+ )
3031
+ await async_test(
3032
+ `[bulk] Unassigned non-admin can't access enduser without being assigned`,
3033
+ () => sdkNonAdmin.bulk_load({ load: [{ model: 'endusers' }] }),
3034
+ { onResult: r => r.results[0]?.records !== undefined && !r.results[0].records?.find(r => r.id === e.id) }
3035
+ )
3036
+ await async_test(
3037
+ `non-admin for enduser ticket bad`,
3038
+ () => sdkNonAdmin.bulk_load({ load: [{ model: 'tickets' }] }),
3039
+ { onResult: r => r.results[0]?.records !== undefined && !r.results[0].records?.find(r => r.id === adminTicket.id) }
3040
+ )
3021
3041
 
3022
3042
  await async_test(
3023
3043
  `Non-admin for own ticket`, () => sdkNonAdmin.api.tickets.getOne(ticketCreatedByNonAdmin.id), passOnAnyResult
@@ -3025,9 +3045,19 @@ const role_based_access_tests = async () => {
3025
3045
  await async_test(
3026
3046
  `Non-admin for tickets`, () => sdkNonAdmin.api.tickets.getSome(), { onResult: ts => ts.length === 1 }
3027
3047
  )
3048
+ await async_test(
3049
+ `[bulk] Non-admin for tickets`,
3050
+ () => sdkNonAdmin.bulk_load({ load: [{ model: 'tickets' }] }),
3051
+ { onResult: r => r.results?.[0]?.records?.length === 1 }
3052
+ )
3028
3053
  await async_test(
3029
3054
  `non-admin for email bad`, () => sdkNonAdmin.api.emails.getOne(email.id), handleAnyError,
3030
3055
  )
3056
+ await async_test(
3057
+ `[bulk] non-admin for email bad`,
3058
+ () => sdkNonAdmin.bulk_load({ load: [{ model: 'emails' }] }),
3059
+ { onResult: r => r.results?.[0]?.records?.length === 0 }
3060
+ )
3031
3061
  await async_test(
3032
3062
  `non-admin for sms bad`, () => sdkNonAdmin.api.sms_messages.getOne(sms.id), handleAnyError,
3033
3063
  )
@@ -3037,15 +3067,35 @@ const role_based_access_tests = async () => {
3037
3067
  await async_test(
3038
3068
  `non-admin for calendar bad`, () => sdkNonAdmin.api.calendar_events.getOne(calendarEvent.id), handleAnyError,
3039
3069
  )
3070
+ await async_test(
3071
+ `[bulk] non-admin for calendar bad`,
3072
+ () => sdkNonAdmin.bulk_load({ load: [{ model: 'calendar_events' }] }),
3073
+ { onResult: r => r.results?.[0]?.records?.length === 0 }
3074
+ )
3040
3075
  await async_test(
3041
3076
  `non-admin for chat room bad`, () => sdkNonAdmin.api.chat_rooms.getOne(chatRoom.id), handleAnyError,
3042
3077
  )
3078
+ await async_test(
3079
+ `[bulk] non-admin for chat room bad`,
3080
+ () => sdkNonAdmin.bulk_load({ load: [{ model: 'chat_rooms' }] }),
3081
+ { onResult: r => r.results?.[0]?.records?.length === 0 }
3082
+ )
3043
3083
  await async_test(
3044
3084
  `non-admin for chat message bad`, () => sdkNonAdmin.api.chats.getOne(chatMessage.id), handleAnyError,
3045
3085
  )
3086
+ await async_test(
3087
+ `[bulk] non-admin for chat message bad`,
3088
+ () => sdkNonAdmin.bulk_load({ load: [{ model: 'chats' }] }),
3089
+ handleAnyError // throws error in this case in enforceForeignAccessConstraints because there are no accessible chats
3090
+ )
3046
3091
  await async_test(
3047
3092
  `Non-admin for chats`, () => sdkNonAdmin.api.chats.getSome({ filter: { roomId: chatRoom.id } }), handleAnyError,
3048
3093
  )
3094
+ await async_test(
3095
+ `Non-admin for tickets with enduserId in filter`,
3096
+ () => sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: e.id } }),
3097
+ { onResult: r => !r.find(t => t.id === adminTicket.id)}
3098
+ )
3049
3099
 
3050
3100
  // unassigned update / delete coverage
3051
3101
  await async_test(
@@ -3070,6 +3120,11 @@ const role_based_access_tests = async () => {
3070
3120
  await async_test(
3071
3121
  `non-admin for enduser ticket`, () => sdkNonAdmin.api.tickets.getOne(adminTicket.id), passOnAnyResult,
3072
3122
  )
3123
+ await async_test(
3124
+ `[bulk] non-admin for enduser ticket`,
3125
+ () => sdkNonAdmin.bulk_load({ load: [{ model: 'tickets' }] }),
3126
+ { onResult: r => r.results?.[0]?.records?.find(r => r.id === adminTicket.id )}
3127
+ )
3073
3128
 
3074
3129
  await async_test(
3075
3130
  `Non-admin for tickets`, () => sdkNonAdmin.api.tickets.getSome(), { onResult: ts => ts.length === 2 }
@@ -3077,18 +3132,38 @@ const role_based_access_tests = async () => {
3077
3132
  await async_test(
3078
3133
  `non-admin for email`, () => sdkNonAdmin.api.emails.getOne(email.id), passOnAnyResult,
3079
3134
  )
3135
+ await async_test(
3136
+ `[bulk] non-admin for email`,
3137
+ () => sdkNonAdmin.bulk_load({ load: [{ model: 'emails' }] }),
3138
+ { onResult: r => r.results?.[0]?.records?.find(r => r.id === email.id )}
3139
+ )
3080
3140
  await async_test(
3081
3141
  `non-admin for sms`, () => sdkNonAdmin.api.sms_messages.getOne(sms.id), passOnAnyResult,
3082
3142
  )
3083
3143
  await async_test(
3084
3144
  `non-admin for calendar`, () => sdkNonAdmin.api.calendar_events.getOne(calendarEvent.id), passOnAnyResult,
3085
3145
  )
3146
+ await async_test(
3147
+ `[bulk] non-admin for calendar`,
3148
+ () => sdkNonAdmin.bulk_load({ load: [{ model: 'calendar_events' }] }),
3149
+ { onResult: r => r.results?.[0]?.records?.find(r => r.id === calendarEvent.id )}
3150
+ )
3086
3151
  await async_test(
3087
3152
  `non-admin for chat room`, () => sdkNonAdmin.api.chat_rooms.getOne(chatRoom.id), passOnAnyResult,
3088
3153
  )
3154
+ await async_test(
3155
+ `[bulk] non-admin for chat room`,
3156
+ () => sdkNonAdmin.bulk_load({ load: [{ model: 'chat_rooms' }] }),
3157
+ { onResult: r => r.results?.[0]?.records?.find(r => r.id === chatRoom.id )}
3158
+ )
3089
3159
  await async_test(
3090
3160
  `non-admin for chat message`, () => sdkNonAdmin.api.chats.getOne(chatMessage.id), passOnAnyResult,
3091
3161
  )
3162
+ await async_test(
3163
+ `[bulk] non-admin for chat message`,
3164
+ () => sdkNonAdmin.bulk_load({ load: [{ model: 'chats' }] }),
3165
+ { onResult: r => r.results?.[0]?.records?.find(r => r.id === chatMessage.id )}
3166
+ )
3092
3167
  await async_test(
3093
3168
  `Non-admin for chats`, () => sdkNonAdmin.api.chats.getSome({ filter: { roomId: chatRoom.id } }),
3094
3169
  { onResult: cs => cs.length === 2 },
@@ -4198,7 +4273,7 @@ const wait_for_trigger_tests = async () => {
4198
4273
  })
4199
4274
 
4200
4275
  await sdk.api.endusers.add_to_journey({ enduserIds: [eTrigger.id], journeyId: journey.id })
4201
- await wait(undefined, 2222)
4276
+ await wait(undefined, 3000)
4202
4277
 
4203
4278
  await async_test(
4204
4279
  "Journey started",
@@ -4587,7 +4662,9 @@ const TRACK_OPEN_IMAGE = Buffer.from(
4587
4662
  sdkSubSub.authenticate(subSubUserEmail, password),
4588
4663
  sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword),
4589
4664
  ])
4590
-
4665
+
4666
+ // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
4667
+
4591
4668
  await async_test(
4592
4669
  "count exists",
4593
4670
  // @ts-ignore
@@ -4603,11 +4680,11 @@ const TRACK_OPEN_IMAGE = Buffer.from(
4603
4680
 
4604
4681
  await mfa_tests()
4605
4682
  await setup_tests()
4683
+ await role_based_access_tests()
4606
4684
  await multi_tenant_tests() // should come right after setup tests
4607
4685
  await pdf_generation()
4608
4686
  await remove_from_journey_on_incoming_comms_tests()
4609
4687
  await rate_limit_tests()
4610
- await role_based_access_tests()
4611
4688
  await wait_for_trigger_tests()
4612
4689
  await merge_enduser_tests()
4613
4690
  await self_serve_appointment_booking_tests()
Binary file