@tellescope/sdk 1.185.2 → 1.187.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/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +305 -55
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +305 -55
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/tests/tests.ts +219 -3
- package/test_generated.pdf +0 -0
package/src/tests/tests.ts
CHANGED
|
@@ -223,6 +223,8 @@ const setup_tests = async () => {
|
|
|
223
223
|
// ensure that going to "Non-Admin" triggers a role change
|
|
224
224
|
await sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: ['Test'] }, { replaceObjectFields: true })
|
|
225
225
|
|
|
226
|
+
await wait(undefined, 1000) // wait for role change to propagate so authenticate does fail next
|
|
227
|
+
|
|
226
228
|
await sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)
|
|
227
229
|
await async_test('non admin authenticated', sdkNonAdmin.test_authenticated, { expectedResult: 'Authenticated!' })
|
|
228
230
|
|
|
@@ -1276,6 +1278,28 @@ const chat_room_tests = async () => {
|
|
|
1276
1278
|
() => enduserSDK.api.chat_rooms.display_info({ id: room.id }),
|
|
1277
1279
|
{ onResult: r => r.id === room.id && verifyRoomDisplayInfo(r.display_info) }
|
|
1278
1280
|
)
|
|
1281
|
+
await async_test(
|
|
1282
|
+
"non admin can't get room without enduser",
|
|
1283
|
+
() => sdkNonAdmin.api.chat_rooms.getOne({ id: room.id }),
|
|
1284
|
+
handleAnyError
|
|
1285
|
+
)
|
|
1286
|
+
await async_test(
|
|
1287
|
+
"non admin can't get chats from room without enduser",
|
|
1288
|
+
() => sdkNonAdmin.api.chats.getSome({ filter: { roomId: room.id } }),
|
|
1289
|
+
handleAnyError
|
|
1290
|
+
)
|
|
1291
|
+
await sdk.api.endusers.updateOne(enduser.id, { assignedTo: [sdkNonAdmin.userInfo.id] })
|
|
1292
|
+
await async_test(
|
|
1293
|
+
"non admin can get room with enduser",
|
|
1294
|
+
() => sdkNonAdmin.api.chat_rooms.getOne(room.id),
|
|
1295
|
+
passOnAnyResult
|
|
1296
|
+
)
|
|
1297
|
+
await async_test(
|
|
1298
|
+
"non admin can get chats from room with enduser",
|
|
1299
|
+
() => sdkNonAdmin.api.chats.getSome({ filter: { roomId: room.id } }),
|
|
1300
|
+
passOnAnyResult
|
|
1301
|
+
)
|
|
1302
|
+
|
|
1279
1303
|
await sdk.api.chat_rooms.deleteOne(room.id)
|
|
1280
1304
|
|
|
1281
1305
|
|
|
@@ -3281,10 +3305,190 @@ const formSubmittedTriggerTests = async () => {
|
|
|
3281
3305
|
])
|
|
3282
3306
|
}
|
|
3283
3307
|
|
|
3308
|
+
const order_created_tests = async () => {
|
|
3309
|
+
log_header("Automation Trigger Tests (Order Created)")
|
|
3310
|
+
|
|
3311
|
+
const t1 = await sdk.api.automation_triggers.createOne({
|
|
3312
|
+
event: { type: 'Order Created', info: {} },
|
|
3313
|
+
action: { type: 'Add Tags', info: { tags: ['No conditions'] }},
|
|
3314
|
+
status: 'Active',
|
|
3315
|
+
title: "No conditions"
|
|
3316
|
+
})
|
|
3317
|
+
const t2 = await sdk.api.automation_triggers.createOne({
|
|
3318
|
+
event: { type: 'Order Created', info: { titles: ['Title'] } },
|
|
3319
|
+
action: { type: 'Add Tags', info: { tags: ['Title'] }},
|
|
3320
|
+
status: 'Active',
|
|
3321
|
+
title: "Title Condition"
|
|
3322
|
+
})
|
|
3323
|
+
const t3 = await sdk.api.automation_triggers.createOne({
|
|
3324
|
+
event: { type: 'Order Created', info: { fills: ['Fill'] } },
|
|
3325
|
+
action: { type: 'Add Tags', info: { tags: ['Fill'] }},
|
|
3326
|
+
status: 'Active',
|
|
3327
|
+
title: "Fill Condition"
|
|
3328
|
+
})
|
|
3329
|
+
const t4 = await sdk.api.automation_triggers.createOne({
|
|
3330
|
+
event: { type: 'Order Created', info: { partialFrequency: 'freq' } },
|
|
3331
|
+
action: { type: 'Add Tags', info: { tags: ['Frequency'] }},
|
|
3332
|
+
status: 'Active',
|
|
3333
|
+
title: "Frequency Condition"
|
|
3334
|
+
})
|
|
3335
|
+
|
|
3336
|
+
const e = await sdk.api.endusers.createOne({})
|
|
3337
|
+
|
|
3338
|
+
await sdk.api.enduser_orders.createOne({ status: 'test', source: 'test', title: 'nomatch', fill: 'nomatch', frequency: 'nomatch', externalId: '1', enduserId: e.id })
|
|
3339
|
+
await wait(undefined, 500) // allow triggers to happen
|
|
3340
|
+
await async_test(
|
|
3341
|
+
"First tag is added",
|
|
3342
|
+
() => sdk.api.endusers.getOne(e.id),
|
|
3343
|
+
{ onResult: e => !!(
|
|
3344
|
+
e.tags?.length === 1
|
|
3345
|
+
&& e.tags?.includes('No conditions')
|
|
3346
|
+
&& !e.tags?.includes('Title')
|
|
3347
|
+
&& !e.tags?.includes('Fill')
|
|
3348
|
+
&& !e.tags?.includes('Frequency')
|
|
3349
|
+
) }
|
|
3350
|
+
)
|
|
3351
|
+
|
|
3352
|
+
await sdk.api.enduser_orders.createOne({ status: 'test', source: 'test', externalId: '2', enduserId: e.id, title: "Title" })
|
|
3353
|
+
await wait(undefined, 500) // allow triggers to happen
|
|
3354
|
+
await async_test(
|
|
3355
|
+
"Second tag is added",
|
|
3356
|
+
() => sdk.api.endusers.getOne(e.id),
|
|
3357
|
+
{ onResult: e => !!(
|
|
3358
|
+
e.tags?.length === 2
|
|
3359
|
+
&& e.tags?.includes('No conditions')
|
|
3360
|
+
&& e.tags?.includes('Title')
|
|
3361
|
+
&& !e.tags?.includes('Fill')
|
|
3362
|
+
&& !e.tags?.includes('Frequency')
|
|
3363
|
+
) }
|
|
3364
|
+
)
|
|
3365
|
+
|
|
3366
|
+
await sdk.api.enduser_orders.createOne({ status: 'test', source: 'test', externalId: '3', enduserId: e.id, title: "Title", fill: "Fill" })
|
|
3367
|
+
await wait(undefined, 500) // allow triggers to happen
|
|
3368
|
+
await async_test(
|
|
3369
|
+
"Third tag is added",
|
|
3370
|
+
() => sdk.api.endusers.getOne(e.id),
|
|
3371
|
+
{ onResult: e => !!(
|
|
3372
|
+
e.tags?.length === 3
|
|
3373
|
+
&& e.tags?.includes('No conditions')
|
|
3374
|
+
&& e.tags?.includes('Title')
|
|
3375
|
+
&& e.tags?.includes('Fill')
|
|
3376
|
+
&& !e.tags?.includes('Frequency')
|
|
3377
|
+
) }
|
|
3378
|
+
)
|
|
3379
|
+
|
|
3380
|
+
await sdk.api.enduser_orders.createOne({ status: 'test', source: 'test', externalId: '4', enduserId: e.id, title: "Title", fill: "Fill", frequency: '1029freq--29' })
|
|
3381
|
+
await wait(undefined, 500) // allow triggers to happen
|
|
3382
|
+
await async_test(
|
|
3383
|
+
"Fourth tag is added",
|
|
3384
|
+
() => sdk.api.endusers.getOne(e.id),
|
|
3385
|
+
{ onResult: e => !!(
|
|
3386
|
+
e.tags?.length === 4
|
|
3387
|
+
&& e.tags?.includes('No conditions')
|
|
3388
|
+
&& e.tags?.includes('Title')
|
|
3389
|
+
&& e.tags?.includes('Fill')
|
|
3390
|
+
&& e.tags?.includes('Frequency')
|
|
3391
|
+
) }
|
|
3392
|
+
)
|
|
3393
|
+
|
|
3394
|
+
await Promise.all([
|
|
3395
|
+
sdk.api.automation_triggers.deleteOne(t1.id),
|
|
3396
|
+
sdk.api.automation_triggers.deleteOne(t2.id),
|
|
3397
|
+
sdk.api.automation_triggers.deleteOne(t3.id),
|
|
3398
|
+
sdk.api.automation_triggers.deleteOne(t4.id),
|
|
3399
|
+
sdk.api.endusers.deleteOne(e.id),
|
|
3400
|
+
])
|
|
3401
|
+
}
|
|
3402
|
+
|
|
3403
|
+
const tag_added_tests = async () => {
|
|
3404
|
+
log_header("Automation Trigger Tests (Tag Added)")
|
|
3405
|
+
|
|
3406
|
+
const t1 = await sdk.api.automation_triggers.createOne({
|
|
3407
|
+
event: { type: 'Tag Added', info: { tag: "1" } },
|
|
3408
|
+
action: { type: 'Add Tags', info: { tags: ['1 Added'] }},
|
|
3409
|
+
status: 'Active',
|
|
3410
|
+
title: "No conditions"
|
|
3411
|
+
})
|
|
3412
|
+
const t2 = await sdk.api.automation_triggers.createOne({
|
|
3413
|
+
event: { type: 'Tag Added', info: { tag: "2" } },
|
|
3414
|
+
action: { type: 'Add Tags', info: { tags: ['2 Added'] }},
|
|
3415
|
+
status: 'Active',
|
|
3416
|
+
title: "Title Condition"
|
|
3417
|
+
})
|
|
3418
|
+
const t3 = await sdk.api.automation_triggers.createOne({
|
|
3419
|
+
event: { type: 'Tag Added', info: { tag: "3" } },
|
|
3420
|
+
action: { type: 'Add Tags', info: { tags: ['3 Added'] }},
|
|
3421
|
+
status: 'Active',
|
|
3422
|
+
title: "Fill Condition"
|
|
3423
|
+
})
|
|
3424
|
+
|
|
3425
|
+
const e = await sdk.api.endusers.createOne({})
|
|
3426
|
+
|
|
3427
|
+
await sdk.api.endusers.updateOne(e.id, { fname: 'no tags added'})
|
|
3428
|
+
await wait(undefined, 500) // allow triggers to happen
|
|
3429
|
+
await async_test(
|
|
3430
|
+
"No tags added",
|
|
3431
|
+
() => sdk.api.endusers.getOne(e.id),
|
|
3432
|
+
{ onResult: e => !e.tags?.length }
|
|
3433
|
+
)
|
|
3434
|
+
|
|
3435
|
+
await sdk.api.endusers.updateOne(e.id, { tags: ['1'] })
|
|
3436
|
+
await wait(undefined, 500) // allow triggers to happen
|
|
3437
|
+
await async_test(
|
|
3438
|
+
"Tag 1 added",
|
|
3439
|
+
() => sdk.api.endusers.getOne(e.id),
|
|
3440
|
+
{ onResult: e => !!(
|
|
3441
|
+
e.tags?.length === 2
|
|
3442
|
+
&& e.tags.includes('1')
|
|
3443
|
+
&& e.tags.includes('1 Added')
|
|
3444
|
+
) }
|
|
3445
|
+
)
|
|
3446
|
+
|
|
3447
|
+
await sdk.api.endusers.updateOne(e.id, { tags: ['4'] })
|
|
3448
|
+
await wait(undefined, 500) // allow triggers to happen
|
|
3449
|
+
await async_test(
|
|
3450
|
+
'Unrecognized tag added',
|
|
3451
|
+
() => sdk.api.endusers.getOne(e.id),
|
|
3452
|
+
{ onResult: e => !!(
|
|
3453
|
+
e.tags?.length === 3
|
|
3454
|
+
&& e.tags.includes('1')
|
|
3455
|
+
&& e.tags.includes('1 Added')
|
|
3456
|
+
&& e.tags.includes('4')
|
|
3457
|
+
)}
|
|
3458
|
+
)
|
|
3459
|
+
|
|
3460
|
+
await sdk.api.endusers.updateOne(e.id, { tags: ['2', '3'] })
|
|
3461
|
+
await wait(undefined, 500) // allow triggers to happen
|
|
3462
|
+
await async_test(
|
|
3463
|
+
"Tag 2 and 3 added",
|
|
3464
|
+
() => sdk.api.endusers.getOne(e.id),
|
|
3465
|
+
{ onResult: e => !!(
|
|
3466
|
+
e.tags?.length === 7
|
|
3467
|
+
&& e.tags.includes('1')
|
|
3468
|
+
&& e.tags.includes('1 Added')
|
|
3469
|
+
&& e.tags.includes('4')
|
|
3470
|
+
&& e.tags.includes('2')
|
|
3471
|
+
&& e.tags.includes('3')
|
|
3472
|
+
&& e.tags.includes('2 Added')
|
|
3473
|
+
&& e.tags.includes('3 Added')
|
|
3474
|
+
)}
|
|
3475
|
+
)
|
|
3476
|
+
|
|
3477
|
+
|
|
3478
|
+
await Promise.all([
|
|
3479
|
+
sdk.api.automation_triggers.deleteOne(t1.id),
|
|
3480
|
+
sdk.api.automation_triggers.deleteOne(t2.id),
|
|
3481
|
+
sdk.api.automation_triggers.deleteOne(t3.id),
|
|
3482
|
+
sdk.api.endusers.deleteOne(e.id),
|
|
3483
|
+
])
|
|
3484
|
+
}
|
|
3485
|
+
|
|
3284
3486
|
const automation_trigger_tests = async () => {
|
|
3285
3487
|
log_header("Automation Trigger Tests")
|
|
3286
3488
|
|
|
3287
|
-
await
|
|
3489
|
+
await tag_added_tests()
|
|
3490
|
+
await order_created_tests()
|
|
3491
|
+
await formSubmittedTriggerTests()
|
|
3288
3492
|
}
|
|
3289
3493
|
|
|
3290
3494
|
const form_response_tests = async () => {
|
|
@@ -3363,6 +3567,18 @@ const form_response_tests = async () => {
|
|
|
3363
3567
|
'response recorded'
|
|
3364
3568
|
)
|
|
3365
3569
|
|
|
3570
|
+
await async_test(
|
|
3571
|
+
"Can set lockedAt field on form response",
|
|
3572
|
+
() => sdk.api.form_responses.updateOne(recordedResponse.id, { lockedAt: new Date() }),
|
|
3573
|
+
{ onResult: r => !!r.lockedAt }
|
|
3574
|
+
)
|
|
3575
|
+
|
|
3576
|
+
await async_test(
|
|
3577
|
+
"Can unset lockedAt",
|
|
3578
|
+
() => sdk.api.form_responses.updateOne(recordedResponse.id, { lockedAt: '' }),
|
|
3579
|
+
{ onResult: r => !r.lockedAt }
|
|
3580
|
+
)
|
|
3581
|
+
|
|
3366
3582
|
await sdk.api.endusers.deleteOne(enduser.id)
|
|
3367
3583
|
await sdk.api.forms.deleteOne(form.id)
|
|
3368
3584
|
}
|
|
@@ -5118,7 +5334,7 @@ const wait_for_trigger_tests = async () => {
|
|
|
5118
5334
|
|
|
5119
5335
|
await sdk.api.endusers.updateOne(eTrigger.id, { fields: { Test: 'Trigger' } })
|
|
5120
5336
|
await sdk.api.endusers.updateOne(eNoTrigger.id, { fields: { Test: 'Trigger' } })
|
|
5121
|
-
await wait(undefined,
|
|
5337
|
+
await wait(undefined, 8000)
|
|
5122
5338
|
|
|
5123
5339
|
// TODO - Test a delayed action which comes after the triggered action
|
|
5124
5340
|
|
|
@@ -9462,6 +9678,7 @@ const test_form_response_search = async () => {
|
|
|
9462
9678
|
await setup_tests()
|
|
9463
9679
|
await multi_tenant_tests() // should come right after setup tests
|
|
9464
9680
|
await sync_tests() // should come directly after setup to avoid extra sync values
|
|
9681
|
+
await enduser_access_tags_tests()
|
|
9465
9682
|
await enduserAccessTests()
|
|
9466
9683
|
await test_form_response_search()
|
|
9467
9684
|
await date_parsing_tests()
|
|
@@ -9490,7 +9707,6 @@ const test_form_response_search = async () => {
|
|
|
9490
9707
|
// await test_send_with_template()
|
|
9491
9708
|
await bulk_read_tests()
|
|
9492
9709
|
await ticket_reminder_tests()
|
|
9493
|
-
await enduser_access_tags_tests()
|
|
9494
9710
|
await marketing_email_unsubscribe_tests()
|
|
9495
9711
|
await unique_strings_tests()
|
|
9496
9712
|
await alternate_phones_tests()
|
package/test_generated.pdf
CHANGED
|
Binary file
|