@tellescope/sdk 1.80.4 → 1.82.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 +6 -0
- package/lib/cjs/sdk.d.ts.map +1 -1
- package/lib/cjs/sdk.js +3 -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 +595 -72
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/sdk.d.ts +6 -0
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/sdk.js +3 -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 +595 -72
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/src/sdk.ts +16 -0
- package/src/tests/tests.ts +486 -6
- package/test_generated.pdf +0 -0
package/src/tests/tests.ts
CHANGED
|
@@ -9,6 +9,8 @@ import {
|
|
|
9
9
|
ClientModelForName_required,
|
|
10
10
|
UserDisplayInfo,
|
|
11
11
|
Ticket,
|
|
12
|
+
VitalConfiguration,
|
|
13
|
+
EnduserObservation,
|
|
12
14
|
} from "@tellescope/types-client"
|
|
13
15
|
import {
|
|
14
16
|
CompoundFilter,
|
|
@@ -5363,7 +5365,7 @@ const nextReminderInMS_tests = async () => {
|
|
|
5363
5365
|
])
|
|
5364
5366
|
}
|
|
5365
5367
|
|
|
5366
|
-
const pollForResults = async <T>(f: () => Promise<T>, evaluate: (r: T) => boolean, intervalInMS=500, iterations=20) => {
|
|
5368
|
+
const pollForResults = async <T>(f: () => Promise<T>, evaluate: (r: T) => boolean, intervalInMS=500, iterations=20, shouldError=false) => {
|
|
5367
5369
|
let lastResult = undefined as any
|
|
5368
5370
|
for (let i = 0; i < iterations; i++) {
|
|
5369
5371
|
await wait(undefined, intervalInMS)
|
|
@@ -5372,6 +5374,8 @@ const pollForResults = async <T>(f: () => Promise<T>, evaluate: (r: T) => boolea
|
|
|
5372
5374
|
if (evaluate(result)) return result
|
|
5373
5375
|
}
|
|
5374
5376
|
|
|
5377
|
+
if (shouldError) return lastResult
|
|
5378
|
+
|
|
5375
5379
|
console.log(lastResult)
|
|
5376
5380
|
throw new Error("failed pollForResults")
|
|
5377
5381
|
}
|
|
@@ -7000,7 +7004,7 @@ const sync_tests = async () => {
|
|
|
7000
7004
|
await async_test(
|
|
7001
7005
|
"Other organization",
|
|
7002
7006
|
() => sdkOther.sync({ from }),
|
|
7003
|
-
{ onResult: ({ results }) => results.length === 0 },
|
|
7007
|
+
{ onResult: ({ results }) => results.filter(e => e.modelName === 'endusers' && e.data !== 'deleted').length === 0 },
|
|
7004
7008
|
)
|
|
7005
7009
|
|
|
7006
7010
|
await sdk.api.endusers.updateOne(e.id, { fname: "UPDATE_TEST"})
|
|
@@ -7028,7 +7032,7 @@ const sync_tests = async () => {
|
|
|
7028
7032
|
await async_test(
|
|
7029
7033
|
"Other organization",
|
|
7030
7034
|
() => sdkOther.sync({ from }),
|
|
7031
|
-
{ onResult: ({ results }) => results.length === 0 },
|
|
7035
|
+
{ onResult: ({ results }) => results.filter(e => e.modelName === 'endusers' && e.data !== 'deleted').length === 0 },
|
|
7032
7036
|
)
|
|
7033
7037
|
|
|
7034
7038
|
const t = await sdk.api.tickets.createOne({ title: 'access test' })
|
|
@@ -7106,7 +7110,7 @@ const sync_tests = async () => {
|
|
|
7106
7110
|
await async_test(
|
|
7107
7111
|
"Other organization",
|
|
7108
7112
|
() => sdkOther.sync({ from }),
|
|
7109
|
-
{ onResult: ({ results }) => results.length === 0 },
|
|
7113
|
+
{ onResult: ({ results }) => results.filter(e => e.modelName === 'endusers' && e.data !== 'deleted').length === 0 },
|
|
7110
7114
|
)
|
|
7111
7115
|
|
|
7112
7116
|
// bulk create test coverage
|
|
@@ -7136,7 +7140,7 @@ const sync_tests = async () => {
|
|
|
7136
7140
|
await async_test(
|
|
7137
7141
|
"Other organization",
|
|
7138
7142
|
() => sdkOther.sync({ from }),
|
|
7139
|
-
{ onResult: ({ results }) => results.length === 0 },
|
|
7143
|
+
{ onResult: ({ results }) => results.filter(e => e.modelName === 'endusers' && e.data !== 'deleted').length === 0 },
|
|
7140
7144
|
)
|
|
7141
7145
|
|
|
7142
7146
|
await sdk.api.endusers.deleteOne(e2.id)
|
|
@@ -7164,7 +7168,7 @@ const sync_tests = async () => {
|
|
|
7164
7168
|
await async_test(
|
|
7165
7169
|
"Other organization",
|
|
7166
7170
|
() => sdkOther.sync({ from }),
|
|
7167
|
-
{ onResult: ({ results }) => results.length === 0 },
|
|
7171
|
+
{ onResult: ({ results }) => results.filter(e => e.modelName === 'endusers' && e.data !== 'deleted').length === 0 },
|
|
7168
7172
|
)
|
|
7169
7173
|
}
|
|
7170
7174
|
|
|
@@ -7218,6 +7222,481 @@ const close_reasons_no_duplicates_tests = async () => {
|
|
|
7218
7222
|
])
|
|
7219
7223
|
}
|
|
7220
7224
|
|
|
7225
|
+
const vital_trigger_tests = async () => {
|
|
7226
|
+
log_header("Vital Update Trigger")
|
|
7227
|
+
|
|
7228
|
+
const runTriggerTest = async ({
|
|
7229
|
+
configurations: _configurations,
|
|
7230
|
+
triggers: _triggers,
|
|
7231
|
+
shouldTrigger,
|
|
7232
|
+
vitals,
|
|
7233
|
+
title,
|
|
7234
|
+
} : {
|
|
7235
|
+
configurations: Pick<VitalConfiguration, 'unit' | 'ranges'>[]
|
|
7236
|
+
triggers: { configurationIndexes: number[], classifications: string[] }[],
|
|
7237
|
+
vitals: (Pick<EnduserObservation, 'measurement'> & Pick<Partial<EnduserObservation>, | 'timestamp'>)[],
|
|
7238
|
+
shouldTrigger: boolean,
|
|
7239
|
+
title: string,
|
|
7240
|
+
}) => {
|
|
7241
|
+
const e = await sdk.api.endusers.createOne({ })
|
|
7242
|
+
const configurations = (
|
|
7243
|
+
await sdk.api.vital_configurations.createSome(_configurations.map((c, i) => ({
|
|
7244
|
+
title: `configuration ${i}`,
|
|
7245
|
+
...c,
|
|
7246
|
+
})))
|
|
7247
|
+
).created
|
|
7248
|
+
|
|
7249
|
+
const triggers = (
|
|
7250
|
+
await sdk.api.automation_triggers.createSome(_triggers.map((t, i) => ({
|
|
7251
|
+
title: `trigger ${i}`,
|
|
7252
|
+
status: 'Active',
|
|
7253
|
+
event: {
|
|
7254
|
+
type: "Vital Update",
|
|
7255
|
+
info: {
|
|
7256
|
+
classifications: t.classifications,
|
|
7257
|
+
configurationIds: configurations.filter((_, i) => t.configurationIndexes.includes(i)).map(c => c.id),
|
|
7258
|
+
}
|
|
7259
|
+
},
|
|
7260
|
+
action: {
|
|
7261
|
+
type: 'Add Tags',
|
|
7262
|
+
info: { tags: ['Triggered'] },
|
|
7263
|
+
},
|
|
7264
|
+
})))
|
|
7265
|
+
).created
|
|
7266
|
+
|
|
7267
|
+
await sdk.api.enduser_observations.createSome(vitals.map(v => ({
|
|
7268
|
+
...v,
|
|
7269
|
+
category: 'vital-signs',
|
|
7270
|
+
enduserId: e.id,
|
|
7271
|
+
status: 'registered',
|
|
7272
|
+
})))
|
|
7273
|
+
|
|
7274
|
+
await async_test(
|
|
7275
|
+
title,
|
|
7276
|
+
() => pollForResults(
|
|
7277
|
+
() => sdk.api.endusers.getOne(e.id),
|
|
7278
|
+
e => !!e.tags?.includes("Triggered"),
|
|
7279
|
+
50,
|
|
7280
|
+
10,
|
|
7281
|
+
!shouldTrigger
|
|
7282
|
+
),
|
|
7283
|
+
passOnAnyResult,
|
|
7284
|
+
)
|
|
7285
|
+
|
|
7286
|
+
await Promise.all([
|
|
7287
|
+
sdk.api.endusers.deleteOne(e.id),
|
|
7288
|
+
...configurations.map(c => sdk.api.vital_configurations.deleteOne(c.id)),
|
|
7289
|
+
...triggers.map(t => sdk.api.automation_triggers.deleteOne(t.id)),
|
|
7290
|
+
])
|
|
7291
|
+
}
|
|
7292
|
+
|
|
7293
|
+
const timestamp_for_day_offset = (day: number) => new Date(Date.now() - 1000 * 60 * 60 * 24 * day)
|
|
7294
|
+
|
|
7295
|
+
await runTriggerTest({
|
|
7296
|
+
title: "Basic Passing Test (Less Than Sucess)",
|
|
7297
|
+
shouldTrigger: true,
|
|
7298
|
+
configurations: [{
|
|
7299
|
+
unit: 'LB',
|
|
7300
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 2 }, trendIntervalInMS: 0 }, ],
|
|
7301
|
+
}],
|
|
7302
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7303
|
+
vitals: [{
|
|
7304
|
+
measurement: { unit: 'LB', value: 1 },
|
|
7305
|
+
timestamp: new Date(),
|
|
7306
|
+
}]
|
|
7307
|
+
})
|
|
7308
|
+
await runTriggerTest({
|
|
7309
|
+
title: "Less Than Fail",
|
|
7310
|
+
shouldTrigger: false,
|
|
7311
|
+
configurations: [{
|
|
7312
|
+
unit: 'LB',
|
|
7313
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 1 }, trendIntervalInMS: 0 }, ],
|
|
7314
|
+
}],
|
|
7315
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7316
|
+
vitals: [{
|
|
7317
|
+
measurement: { unit: 'LB', value: 1 },
|
|
7318
|
+
timestamp: new Date(),
|
|
7319
|
+
}]
|
|
7320
|
+
})
|
|
7321
|
+
await runTriggerTest({
|
|
7322
|
+
title: "Greater Than Success",
|
|
7323
|
+
shouldTrigger: true,
|
|
7324
|
+
configurations: [{
|
|
7325
|
+
unit: 'LB',
|
|
7326
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Greater Than', value: 0 }, trendIntervalInMS: 0 }, ],
|
|
7327
|
+
}],
|
|
7328
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7329
|
+
vitals: [{
|
|
7330
|
+
measurement: { unit: 'LB', value: 1 },
|
|
7331
|
+
timestamp: new Date(),
|
|
7332
|
+
}]
|
|
7333
|
+
})
|
|
7334
|
+
await runTriggerTest({
|
|
7335
|
+
title: "Greater Than Fail",
|
|
7336
|
+
shouldTrigger: false,
|
|
7337
|
+
configurations: [{
|
|
7338
|
+
unit: 'LB',
|
|
7339
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Greater Than', value: 0 }, trendIntervalInMS: 0 }, ],
|
|
7340
|
+
}],
|
|
7341
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7342
|
+
vitals: [{
|
|
7343
|
+
measurement: { unit: 'LB', value: 0 },
|
|
7344
|
+
timestamp: new Date(),
|
|
7345
|
+
}]
|
|
7346
|
+
})
|
|
7347
|
+
await runTriggerTest({
|
|
7348
|
+
title: "Between Low Bound",
|
|
7349
|
+
shouldTrigger: true,
|
|
7350
|
+
configurations: [{
|
|
7351
|
+
unit: 'LB',
|
|
7352
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Between', value: { lower: 0, upper: 1 } }, trendIntervalInMS: 0 }, ],
|
|
7353
|
+
}],
|
|
7354
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7355
|
+
vitals: [{
|
|
7356
|
+
measurement: { unit: 'LB', value: 0 },
|
|
7357
|
+
timestamp: new Date(),
|
|
7358
|
+
}]
|
|
7359
|
+
})
|
|
7360
|
+
await runTriggerTest({
|
|
7361
|
+
title: "Between Upper Bound",
|
|
7362
|
+
shouldTrigger: true,
|
|
7363
|
+
configurations: [{
|
|
7364
|
+
unit: 'LB',
|
|
7365
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Between', value: { lower: 0, upper: 1 } }, trendIntervalInMS: 0 }, ],
|
|
7366
|
+
}],
|
|
7367
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7368
|
+
vitals: [{
|
|
7369
|
+
measurement: { unit: 'LB', value: 1 },
|
|
7370
|
+
timestamp: new Date(),
|
|
7371
|
+
}]
|
|
7372
|
+
})
|
|
7373
|
+
await runTriggerTest({
|
|
7374
|
+
title: "Between Middle",
|
|
7375
|
+
shouldTrigger: true,
|
|
7376
|
+
configurations: [{
|
|
7377
|
+
unit: 'LB',
|
|
7378
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Between', value: { lower: 0, upper: 2 } }, trendIntervalInMS: 0 }, ],
|
|
7379
|
+
}],
|
|
7380
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7381
|
+
vitals: [{
|
|
7382
|
+
measurement: { unit: 'LB', value: 1 },
|
|
7383
|
+
timestamp: new Date(),
|
|
7384
|
+
}]
|
|
7385
|
+
})
|
|
7386
|
+
await runTriggerTest({
|
|
7387
|
+
title: "Between Below Low Bound",
|
|
7388
|
+
shouldTrigger: false,
|
|
7389
|
+
configurations: [{
|
|
7390
|
+
unit: 'LB',
|
|
7391
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Between', value: { lower: 0, upper: 1 } }, trendIntervalInMS: 0 }, ],
|
|
7392
|
+
}],
|
|
7393
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7394
|
+
vitals: [{
|
|
7395
|
+
measurement: { unit: 'LB', value: -1 },
|
|
7396
|
+
timestamp: new Date(),
|
|
7397
|
+
}]
|
|
7398
|
+
})
|
|
7399
|
+
await runTriggerTest({
|
|
7400
|
+
title: "Between Above Upper Bound",
|
|
7401
|
+
shouldTrigger: false,
|
|
7402
|
+
configurations: [{
|
|
7403
|
+
unit: 'LB',
|
|
7404
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Between', value: { lower: 0, upper: 1 } }, trendIntervalInMS: 0 }, ],
|
|
7405
|
+
}],
|
|
7406
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7407
|
+
vitals: [{
|
|
7408
|
+
measurement: { unit: 'LB', value: 2 },
|
|
7409
|
+
timestamp: new Date(),
|
|
7410
|
+
}]
|
|
7411
|
+
})
|
|
7412
|
+
|
|
7413
|
+
await runTriggerTest({
|
|
7414
|
+
title: "Mismatch Unit",
|
|
7415
|
+
shouldTrigger: false,
|
|
7416
|
+
configurations: [{
|
|
7417
|
+
unit: 'DIFFERENT',
|
|
7418
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 200 }, trendIntervalInMS: 0 }, ],
|
|
7419
|
+
}],
|
|
7420
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7421
|
+
vitals: [{
|
|
7422
|
+
measurement: { unit: 'LB', value: 1 },
|
|
7423
|
+
timestamp: new Date(),
|
|
7424
|
+
}]
|
|
7425
|
+
})
|
|
7426
|
+
await runTriggerTest({
|
|
7427
|
+
title: "Mismatch Classification",
|
|
7428
|
+
shouldTrigger: false,
|
|
7429
|
+
configurations: [{
|
|
7430
|
+
unit: 'LB',
|
|
7431
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 200 }, trendIntervalInMS: 0 }, ],
|
|
7432
|
+
}],
|
|
7433
|
+
triggers: [{ classifications: ['High'], configurationIndexes: [0] }],
|
|
7434
|
+
vitals: [{
|
|
7435
|
+
measurement: { unit: 'LB', value: 1 },
|
|
7436
|
+
timestamp: new Date(),
|
|
7437
|
+
}]
|
|
7438
|
+
})
|
|
7439
|
+
await runTriggerTest({
|
|
7440
|
+
title: "Multiple Configurations (Classifications)",
|
|
7441
|
+
shouldTrigger: true,
|
|
7442
|
+
configurations: [{
|
|
7443
|
+
unit: 'LB',
|
|
7444
|
+
ranges: [
|
|
7445
|
+
{ classification: 'Target', comparison: { type: 'Less Than', value: 200 }, trendIntervalInMS: 0 },
|
|
7446
|
+
{ classification: 'High', comparison: { type: 'Less Than', value: 100 }, trendIntervalInMS: 0 },
|
|
7447
|
+
],
|
|
7448
|
+
}],
|
|
7449
|
+
triggers: [{ classifications: ['High'], configurationIndexes: [0,1] }],
|
|
7450
|
+
vitals: [{
|
|
7451
|
+
measurement: { unit: 'LB', value: 1 },
|
|
7452
|
+
timestamp: new Date(),
|
|
7453
|
+
}]
|
|
7454
|
+
})
|
|
7455
|
+
await runTriggerTest({
|
|
7456
|
+
title: "Multiple Configurations (Comparisons)",
|
|
7457
|
+
shouldTrigger: true,
|
|
7458
|
+
configurations: [{
|
|
7459
|
+
unit: 'LB',
|
|
7460
|
+
ranges: [
|
|
7461
|
+
{ classification: 'Target', comparison: { type: 'Less Than', value: 0 }, trendIntervalInMS: 0 },
|
|
7462
|
+
{ classification: 'High', comparison: { type: 'Less Than', value: 100 }, trendIntervalInMS: 0 },
|
|
7463
|
+
],
|
|
7464
|
+
}],
|
|
7465
|
+
triggers: [{ classifications: ['High'], configurationIndexes: [0,1] }],
|
|
7466
|
+
vitals: [{
|
|
7467
|
+
measurement: { unit: 'LB', value: 1 },
|
|
7468
|
+
timestamp: new Date(),
|
|
7469
|
+
}]
|
|
7470
|
+
})
|
|
7471
|
+
|
|
7472
|
+
await runTriggerTest({
|
|
7473
|
+
title: "Multiple vitals, 0 passes",
|
|
7474
|
+
shouldTrigger: false,
|
|
7475
|
+
configurations: [{
|
|
7476
|
+
unit: 'LB',
|
|
7477
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 200 }, trendIntervalInMS: 0 }, ],
|
|
7478
|
+
}],
|
|
7479
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7480
|
+
vitals: [
|
|
7481
|
+
{ measurement: { unit: 'LB', value: 500 }, timestamp: new Date() },
|
|
7482
|
+
{ measurement: { unit: 'LB', value: 1000 }, timestamp: new Date(Date.now() - 100) },
|
|
7483
|
+
{ measurement: { unit: 'LB', value: 250 }, timestamp: new Date(Date.now() - 250) },
|
|
7484
|
+
]
|
|
7485
|
+
})
|
|
7486
|
+
await runTriggerTest({
|
|
7487
|
+
title: "Multiple vitals, 1 passes",
|
|
7488
|
+
shouldTrigger: true,
|
|
7489
|
+
configurations: [{
|
|
7490
|
+
unit: 'LB',
|
|
7491
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 200 }, trendIntervalInMS: 0 }, ],
|
|
7492
|
+
}],
|
|
7493
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7494
|
+
vitals: [
|
|
7495
|
+
{ measurement: { unit: 'LB', value: 500 }, timestamp: new Date() },
|
|
7496
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date(Date.now() - 100) },
|
|
7497
|
+
{ measurement: { unit: 'LB', value: 250 }, timestamp: new Date(Date.now() - 250) },
|
|
7498
|
+
]
|
|
7499
|
+
})
|
|
7500
|
+
await runTriggerTest({
|
|
7501
|
+
title: "Multiple vitals, multiple pass",
|
|
7502
|
+
shouldTrigger: true,
|
|
7503
|
+
configurations: [{
|
|
7504
|
+
unit: 'LB',
|
|
7505
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 200 }, trendIntervalInMS: 0 }, ],
|
|
7506
|
+
}],
|
|
7507
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7508
|
+
vitals: [
|
|
7509
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date() },
|
|
7510
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date(Date.now() - 100) },
|
|
7511
|
+
{ measurement: { unit: 'LB', value: 3 }, timestamp: new Date(Date.now() - 250) },
|
|
7512
|
+
]
|
|
7513
|
+
})
|
|
7514
|
+
|
|
7515
|
+
// trend tests
|
|
7516
|
+
await runTriggerTest({
|
|
7517
|
+
title: "Singleton trend should not work",
|
|
7518
|
+
shouldTrigger: false,
|
|
7519
|
+
configurations: [{
|
|
7520
|
+
unit: 'LB',
|
|
7521
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 200 }, trendIntervalInMS: 1000 }, ],
|
|
7522
|
+
}],
|
|
7523
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7524
|
+
vitals: [{
|
|
7525
|
+
measurement: { unit: 'LB', value: 1 },
|
|
7526
|
+
timestamp: new Date(),
|
|
7527
|
+
}]
|
|
7528
|
+
})
|
|
7529
|
+
await runTriggerTest({
|
|
7530
|
+
title: "2-point trend passing",
|
|
7531
|
+
shouldTrigger: true,
|
|
7532
|
+
configurations: [{
|
|
7533
|
+
unit: 'LB',
|
|
7534
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 1 }, trendIntervalInMS: 1000 }, ],
|
|
7535
|
+
}],
|
|
7536
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7537
|
+
vitals: [
|
|
7538
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date() },
|
|
7539
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date(new Date().getTime() - 999) },
|
|
7540
|
+
]
|
|
7541
|
+
})
|
|
7542
|
+
await runTriggerTest({
|
|
7543
|
+
title: "2-point trend failing for difference too small",
|
|
7544
|
+
shouldTrigger: true,
|
|
7545
|
+
configurations: [{
|
|
7546
|
+
unit: 'LB',
|
|
7547
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 1 }, trendIntervalInMS: 1000 }, ],
|
|
7548
|
+
}],
|
|
7549
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7550
|
+
vitals: [
|
|
7551
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date() },
|
|
7552
|
+
{ measurement: { unit: 'LB', value: 0 }, timestamp: new Date(new Date().getTime() - 999) },
|
|
7553
|
+
]
|
|
7554
|
+
})
|
|
7555
|
+
await runTriggerTest({
|
|
7556
|
+
title: "2-point trend failing for point out of time range",
|
|
7557
|
+
shouldTrigger: false,
|
|
7558
|
+
configurations: [{
|
|
7559
|
+
unit: 'LB',
|
|
7560
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 5 }, trendIntervalInMS: 1000 }, ],
|
|
7561
|
+
}],
|
|
7562
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7563
|
+
vitals: [
|
|
7564
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date() },
|
|
7565
|
+
{ measurement: { unit: 'LB', value: 0 }, timestamp: new Date(new Date().getTime() - 1001) },
|
|
7566
|
+
]
|
|
7567
|
+
})
|
|
7568
|
+
await runTriggerTest({
|
|
7569
|
+
title: "3-point trend passing (1 point of out range)",
|
|
7570
|
+
shouldTrigger: true,
|
|
7571
|
+
configurations: [{
|
|
7572
|
+
unit: 'LB',
|
|
7573
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 2 }, trendIntervalInMS: 1000 }, ],
|
|
7574
|
+
}],
|
|
7575
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7576
|
+
vitals: [
|
|
7577
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date() },
|
|
7578
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date(new Date().getTime() - 100) },
|
|
7579
|
+
{ measurement: { unit: 'LB', value: 0 }, timestamp: new Date(new Date().getTime() - 1001) },
|
|
7580
|
+
]
|
|
7581
|
+
})
|
|
7582
|
+
await runTriggerTest({
|
|
7583
|
+
title: "3-point trend passing (1 point wrong unit)",
|
|
7584
|
+
shouldTrigger: true,
|
|
7585
|
+
configurations: [{
|
|
7586
|
+
unit: 'LB',
|
|
7587
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 2 }, trendIntervalInMS: 1000 }, ],
|
|
7588
|
+
}],
|
|
7589
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7590
|
+
vitals: [
|
|
7591
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date() },
|
|
7592
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date(new Date().getTime() - 100) },
|
|
7593
|
+
{ measurement: { unit: 'OTHER', value: 0 }, timestamp: new Date(new Date().getTime() - 200) },
|
|
7594
|
+
]
|
|
7595
|
+
})
|
|
7596
|
+
await runTriggerTest({
|
|
7597
|
+
title: "3-point trend failing (1 point of out range)",
|
|
7598
|
+
shouldTrigger: false,
|
|
7599
|
+
configurations: [{
|
|
7600
|
+
unit: 'LB',
|
|
7601
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 2 }, trendIntervalInMS: 1000 }, ],
|
|
7602
|
+
}],
|
|
7603
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7604
|
+
vitals: [
|
|
7605
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date() },
|
|
7606
|
+
{ measurement: { unit: 'LB', value: 0 }, timestamp: new Date(new Date().getTime() - 100) },
|
|
7607
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date(new Date().getTime() - 1001) },
|
|
7608
|
+
]
|
|
7609
|
+
})
|
|
7610
|
+
await runTriggerTest({
|
|
7611
|
+
title: "3-point trend failing (1 point wrong unit)",
|
|
7612
|
+
shouldTrigger: false,
|
|
7613
|
+
configurations: [{
|
|
7614
|
+
unit: 'LB',
|
|
7615
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Less Than', value: 2 }, trendIntervalInMS: 1000 }, ],
|
|
7616
|
+
}],
|
|
7617
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7618
|
+
vitals: [
|
|
7619
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date() },
|
|
7620
|
+
{ measurement: { unit: 'LB', value: 0 }, timestamp: new Date(new Date().getTime() - 100) },
|
|
7621
|
+
{ measurement: { unit: 'OTHER', value: 1 }, timestamp: new Date(new Date().getTime() - 200) },
|
|
7622
|
+
]
|
|
7623
|
+
})
|
|
7624
|
+
await runTriggerTest({
|
|
7625
|
+
title: "multiple trend passing",
|
|
7626
|
+
shouldTrigger: true,
|
|
7627
|
+
configurations: [{
|
|
7628
|
+
unit: 'LB',
|
|
7629
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Greater Than', value: 1 }, trendIntervalInMS: 1000 }, ],
|
|
7630
|
+
}],
|
|
7631
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7632
|
+
vitals: [
|
|
7633
|
+
{ measurement: { unit: 'LB', value: 3 }, timestamp: new Date() },
|
|
7634
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date(new Date().getTime() - 100) },
|
|
7635
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date(new Date().getTime() - 200) },
|
|
7636
|
+
]
|
|
7637
|
+
})
|
|
7638
|
+
await runTriggerTest({
|
|
7639
|
+
title: "multiple trend failing (not enough)",
|
|
7640
|
+
shouldTrigger: false,
|
|
7641
|
+
configurations: [{
|
|
7642
|
+
unit: 'LB',
|
|
7643
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Greater Than', value: 1 }, trendIntervalInMS: 1000 }, ],
|
|
7644
|
+
}],
|
|
7645
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7646
|
+
vitals: [
|
|
7647
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date() },
|
|
7648
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date(new Date().getTime() - 100) },
|
|
7649
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date(new Date().getTime() - 200) },
|
|
7650
|
+
]
|
|
7651
|
+
})
|
|
7652
|
+
await runTriggerTest({
|
|
7653
|
+
title: "multiple trend failing (wrong order)",
|
|
7654
|
+
shouldTrigger: false,
|
|
7655
|
+
configurations: [{
|
|
7656
|
+
unit: 'LB',
|
|
7657
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Greater Than', value: 1 }, trendIntervalInMS: 1000 }, ],
|
|
7658
|
+
}],
|
|
7659
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7660
|
+
vitals: [
|
|
7661
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date() },
|
|
7662
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date(new Date().getTime() - 100) },
|
|
7663
|
+
{ measurement: { unit: 'LB', value: 3 }, timestamp: new Date(new Date().getTime() - 200) },
|
|
7664
|
+
]
|
|
7665
|
+
})
|
|
7666
|
+
await runTriggerTest({
|
|
7667
|
+
title: "multiple trend failing (not enough, and wrong order)",
|
|
7668
|
+
shouldTrigger: false,
|
|
7669
|
+
configurations: [{
|
|
7670
|
+
unit: 'LB',
|
|
7671
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Greater Than', value: 1 }, trendIntervalInMS: 1000 }, ],
|
|
7672
|
+
}],
|
|
7673
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7674
|
+
vitals: [
|
|
7675
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date() },
|
|
7676
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date(new Date().getTime() - 100) },
|
|
7677
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date(new Date().getTime() - 200) },
|
|
7678
|
+
]
|
|
7679
|
+
})
|
|
7680
|
+
await runTriggerTest({
|
|
7681
|
+
title: "multiple trend failing (lots)",
|
|
7682
|
+
shouldTrigger: false,
|
|
7683
|
+
configurations: [{
|
|
7684
|
+
unit: 'LB',
|
|
7685
|
+
ranges: [{ classification: 'Target', comparison: { type: 'Greater Than', value: 1 }, trendIntervalInMS: 1000 }, ],
|
|
7686
|
+
}],
|
|
7687
|
+
triggers: [{ classifications: ['Target'], configurationIndexes: [0] }],
|
|
7688
|
+
vitals: [
|
|
7689
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date() },
|
|
7690
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date(new Date().getTime() - 100) },
|
|
7691
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date(new Date().getTime() - 200) },
|
|
7692
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date(new Date().getTime() - 300) },
|
|
7693
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date(new Date().getTime() - 400) },
|
|
7694
|
+
{ measurement: { unit: 'LB', value: 2 }, timestamp: new Date(new Date().getTime() - 500) },
|
|
7695
|
+
{ measurement: { unit: 'LB', value: 1 }, timestamp: new Date(new Date().getTime() - 600) },
|
|
7696
|
+
]
|
|
7697
|
+
})
|
|
7698
|
+
}
|
|
7699
|
+
|
|
7221
7700
|
(async () => {
|
|
7222
7701
|
log_header("API")
|
|
7223
7702
|
|
|
@@ -7269,6 +7748,7 @@ const close_reasons_no_duplicates_tests = async () => {
|
|
|
7269
7748
|
await setup_tests()
|
|
7270
7749
|
await multi_tenant_tests() // should come right after setup tests
|
|
7271
7750
|
await sync_tests() // should come directly after setup to avoid extra sync values
|
|
7751
|
+
await vital_trigger_tests()
|
|
7272
7752
|
await ticket_queue_tests()
|
|
7273
7753
|
await close_reasons_no_duplicates_tests()
|
|
7274
7754
|
await register_as_enduser_tests()
|
package/test_generated.pdf
CHANGED
|
Binary file
|