@queue-it/fastly 3.6.0 → 4.4.3

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.
Files changed (39) hide show
  1. package/README.md +156 -58
  2. package/package.json +23 -16
  3. package/src/contextProvider.ts +175 -0
  4. package/src/fastlyCryptoProvider.ts +8 -0
  5. package/src/helper.ts +11 -0
  6. package/{assembly/sdk → src}/helpers/crypto.ts +338 -340
  7. package/src/index.ts +3 -0
  8. package/src/integrationConfigProvider.ts +199 -0
  9. package/src/requestResponseHandler.ts +200 -0
  10. package/README-INTERNAL.md +0 -21
  11. package/asconfig.json +0 -17
  12. package/assembly/__tests__/CustomerIntegrationDecodingHandler.spec.ts +0 -1086
  13. package/assembly/__tests__/IntegrationConfigHelpersTest.spec.ts +0 -574
  14. package/assembly/__tests__/KnownUserTest.spec.ts +0 -1894
  15. package/assembly/__tests__/Mocks.ts +0 -321
  16. package/assembly/__tests__/QueueParameterHelper.spec.ts +0 -59
  17. package/assembly/__tests__/UserInQueueService.spec.ts +0 -418
  18. package/assembly/__tests__/UserInQueueStateCookieRepository.spec.ts +0 -337
  19. package/assembly/__tests__/as-pect.config.js +0 -57
  20. package/assembly/__tests__/as-pect.d.ts +0 -1
  21. package/assembly/contextProvider.ts +0 -123
  22. package/assembly/helper.ts +0 -23
  23. package/assembly/index.ts +0 -10
  24. package/assembly/integrationConfigProvider.ts +0 -32
  25. package/assembly/requestResponseHandler.ts +0 -92
  26. package/assembly/sdk/HttpContextProvider.ts +0 -24
  27. package/assembly/sdk/IntegrationConfig/CustomerIntegrationDecodingHandler.ts +0 -198
  28. package/assembly/sdk/IntegrationConfig/IntegrationConfigHelpers.ts +0 -232
  29. package/assembly/sdk/IntegrationConfig/IntegrationConfigModel.ts +0 -93
  30. package/assembly/sdk/KnownUser.ts +0 -396
  31. package/assembly/sdk/Models.ts +0 -105
  32. package/assembly/sdk/QueueITHelpers.ts +0 -263
  33. package/assembly/sdk/UserInQueueService.ts +0 -245
  34. package/assembly/sdk/UserInQueueStateCookieRepository.ts +0 -189
  35. package/assembly/sdk/helpers/Date.ts +0 -194
  36. package/assembly/sdk/helpers/Uri.ts +0 -308
  37. package/assembly/tsconfig.json +0 -6
  38. package/index.js +0 -5
  39. package/pipelines/ci.yaml +0 -28
@@ -1,1086 +0,0 @@
1
- import {JSONDecoder} from "assemblyscript-json";
2
- import {CustomerIntegrationDecodingHandler} from "../sdk/IntegrationConfig/CustomerIntegrationDecodingHandler";
3
- import * as IntegrationModels from "../sdk/IntegrationConfig/IntegrationConfigModel";
4
-
5
- describe('CustomerIntegrationDecodingHandler', () => {
6
-
7
- it('should deserialize', () => {
8
- const integrationConfigString = `{
9
- "Description":"tst",
10
- "Integrations":[
11
- {
12
- "Name":"mojitest",
13
- "ActionType":"Queue",
14
- "EventId":"event1",
15
- "CookieDomain":"",
16
- "LayoutName":null,
17
- "Culture":"",
18
- "ExtendCookieValidity":true,
19
- "CookieValidityMinute":20,
20
- "Triggers":[
21
- {
22
- "TriggerParts":[
23
- {
24
- "Operator":"Contains",
25
- "ValueToCompare":"mojitest",
26
- "ValuesToCompare":null,
27
- "UrlPart":"PageUrl",
28
- "CookieName":null,
29
- "HttpHeaderName":null,
30
- "ValidatorType":"UrlValidator",
31
- "IsNegative":false,
32
- "IsIgnoreCase":true
33
- }
34
- ],
35
- "LogicalOperator":"And"
36
- }
37
- ],
38
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
39
- "RedirectLogic":"AllowTParameter",
40
- "ForcedTargetUrl":""
41
- },
42
- {
43
- "Name":"all pages",
44
- "ActionType":"Queue",
45
- "EventId":"disabled",
46
- "CookieDomain":"",
47
- "LayoutName":null,
48
- "Culture":"",
49
- "ExtendCookieValidity":true,
50
- "CookieValidityMinute":20,
51
- "Triggers":[
52
- {
53
- "TriggerParts":[
54
- {
55
- "Operator":"Contains",
56
- "ValueToCompare":"test02082018",
57
- "ValuesToCompare":null,
58
- "UrlPart":"PageUrl",
59
- "CookieName":null,
60
- "HttpHeaderName":null,
61
- "ValidatorType":"UrlValidator",
62
- "IsNegative":false,
63
- "IsIgnoreCase":true
64
- }
65
- ],
66
- "LogicalOperator":"And"
67
- }
68
- ],
69
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
70
- "RedirectLogic":"AllowTParameter",
71
- "ForcedTargetUrl":""
72
- },
73
- {
74
- "Name":"event1 ignore action (default)",
75
- "ActionType":"Ignore",
76
- "EventId":null,
77
- "CookieDomain":null,
78
- "LayoutName":null,
79
- "Culture":null,
80
- "ExtendCookieValidity":null,
81
- "CookieValidityMinute":0,
82
- "Triggers":[
83
- {
84
- "TriggerParts":[
85
- {
86
- "Operator":"Contains",
87
- "ValueToCompare":"ignore-queue-event1-nodomain",
88
- "ValuesToCompare":null,
89
- "UrlPart":"PageUrl",
90
- "CookieName":null,
91
- "HttpHeaderName":null,
92
- "ValidatorType":"UrlValidator",
93
- "IsNegative":false,
94
- "IsIgnoreCase":true
95
- },
96
- {
97
- "Operator":"ContainsAny",
98
- "ValueToCompare":"",
99
- "ValuesToCompare":[
100
- "ignore-this-queue-event1-nodomain",
101
- "ignore-that-queue-event1-nodomain"
102
- ],
103
- "UrlPart":"PageUrl",
104
- "CookieName":null,
105
- "HttpHeaderName":null,
106
- "ValidatorType":"UrlValidator",
107
- "IsNegative":false,
108
- "IsIgnoreCase":true
109
- },
110
- {
111
- "Operator":"Contains",
112
- "ValueToCompare":"*",
113
- "ValuesToCompare":null,
114
- "UrlPart":null,
115
- "CookieName":"ignore-queue-event1",
116
- "HttpHeaderName":null,
117
- "ValidatorType":"CookieValidator",
118
- "IsNegative":false,
119
- "IsIgnoreCase":true
120
- },
121
- {
122
- "Operator":"Contains",
123
- "ValueToCompare":"ignore-queue-event1",
124
- "ValuesToCompare":null,
125
- "UrlPart":null,
126
- "CookieName":null,
127
- "HttpHeaderName":null,
128
- "ValidatorType":"RequestBodyValidator",
129
- "IsNegative":false,
130
- "IsIgnoreCase":true
131
- }
132
- ],
133
- "LogicalOperator":"Or"
134
- }
135
- ],
136
- "QueueDomain":null,
137
- "RedirectLogic":null,
138
- "ForcedTargetUrl":null
139
- },
140
- {
141
- "Name":"event1 queue action (default)",
142
- "ActionType":"Queue",
143
- "EventId":"event1",
144
- "CookieDomain":"",
145
- "LayoutName":"White Space",
146
- "Culture":"",
147
- "ExtendCookieValidity":true,
148
- "CookieValidityMinute":20,
149
- "Triggers":[
150
- {
151
- "TriggerParts":[
152
- {
153
- "Operator":"Contains",
154
- "ValueToCompare":"queue-event1-nodomain",
155
- "ValuesToCompare":null,
156
- "UrlPart":"PageUrl",
157
- "CookieName":null,
158
- "HttpHeaderName":null,
159
- "ValidatorType":"UrlValidator",
160
- "IsNegative":false,
161
- "IsIgnoreCase":true
162
- },
163
- {
164
- "Operator":"Contains",
165
- "ValueToCompare":"bot",
166
- "ValuesToCompare":null,
167
- "UrlPart":null,
168
- "CookieName":"Akamai-bot",
169
- "HttpHeaderName":null,
170
- "ValidatorType":"CookieValidator",
171
- "IsNegative":true,
172
- "IsIgnoreCase":true
173
- },
174
- {
175
- "Operator":"Contains",
176
- "ValueToCompare":"bot",
177
- "ValuesToCompare":null,
178
- "UrlPart":null,
179
- "CookieName":null,
180
- "HttpHeaderName":null,
181
- "ValidatorType":"UserAgentValidator",
182
- "IsNegative":true,
183
- "IsIgnoreCase":true
184
- },
185
- {
186
- "Operator":"Contains",
187
- "ValueToCompare":"bot",
188
- "ValuesToCompare":null,
189
- "UrlPart":null,
190
- "CookieName":null,
191
- "HttpHeaderName":"Akamai-bot",
192
- "ValidatorType":"HttpHeaderValidator",
193
- "IsNegative":true,
194
- "IsIgnoreCase":true
195
- }
196
- ],
197
- "LogicalOperator":"And"
198
- }
199
- ],
200
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
201
- "RedirectLogic":"AllowTParameter",
202
- "ForcedTargetUrl":""
203
- },
204
- {
205
- "Name":"event1 cancel action (default)",
206
- "ActionType":"Cancel",
207
- "EventId":"event1",
208
- "CookieDomain":"",
209
- "LayoutName":null,
210
- "Culture":null,
211
- "ExtendCookieValidity":null,
212
- "CookieValidityMinute":0,
213
- "Triggers":[
214
- {
215
- "TriggerParts":[
216
- {
217
- "Operator":"Contains",
218
- "ValueToCompare":"cancel-event1-nodomain",
219
- "ValuesToCompare":null,
220
- "UrlPart":"PageUrl",
221
- "CookieName":null,
222
- "HttpHeaderName":null,
223
- "ValidatorType":"UrlValidator",
224
- "IsNegative":false,
225
- "IsIgnoreCase":true
226
- }
227
- ],
228
- "LogicalOperator":"And"
229
- }
230
- ],
231
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
232
- "RedirectLogic":null,
233
- "ForcedTargetUrl":null
234
- },
235
- {
236
- "Name":"event1 ignore action (ticketania)",
237
- "ActionType":"Ignore",
238
- "EventId":null,
239
- "CookieDomain":null,
240
- "LayoutName":null,
241
- "Culture":null,
242
- "ExtendCookieValidity":null,
243
- "CookieValidityMinute":0,
244
- "Triggers":[
245
- {
246
- "TriggerParts":[
247
- {
248
- "Operator":"Contains",
249
- "ValueToCompare":"ignore-queue-event1",
250
- "ValuesToCompare":null,
251
- "UrlPart":"PageUrl",
252
- "CookieName":null,
253
- "HttpHeaderName":null,
254
- "ValidatorType":"UrlValidator",
255
- "IsNegative":false,
256
- "IsIgnoreCase":true
257
- },
258
- {
259
- "Operator":"ContainsAny",
260
- "ValueToCompare":"",
261
- "ValuesToCompare":[
262
- "ignore-that-queue-event1",
263
- "ignore-this-queue-event1"
264
- ],
265
- "UrlPart":"PageUrl",
266
- "CookieName":null,
267
- "HttpHeaderName":null,
268
- "ValidatorType":"UrlValidator",
269
- "IsNegative":false,
270
- "IsIgnoreCase":true
271
- }
272
- ],
273
- "LogicalOperator":"Or"
274
- }
275
- ],
276
- "QueueDomain":null,
277
- "RedirectLogic":null,
278
- "ForcedTargetUrl":null
279
- },
280
- {
281
- "Name":"event1 queue action (ticketania)",
282
- "ActionType":"Queue",
283
- "EventId":"event1",
284
- "CookieDomain":".ticketania.com",
285
- "LayoutName":"White Space",
286
- "Culture":"",
287
- "ExtendCookieValidity":true,
288
- "CookieValidityMinute":20,
289
- "Triggers":[
290
- {
291
- "TriggerParts":[
292
- {
293
- "Operator":"Contains",
294
- "ValueToCompare":"queue-event1",
295
- "ValuesToCompare":null,
296
- "UrlPart":"PageUrl",
297
- "CookieName":null,
298
- "HttpHeaderName":null,
299
- "ValidatorType":"UrlValidator",
300
- "IsNegative":false,
301
- "IsIgnoreCase":true
302
- },
303
- {
304
- "Operator":"Contains",
305
- "ValueToCompare":"bot",
306
- "ValuesToCompare":null,
307
- "UrlPart":null,
308
- "CookieName":"Akamai-bot",
309
- "HttpHeaderName":null,
310
- "ValidatorType":"CookieValidator",
311
- "IsNegative":true,
312
- "IsIgnoreCase":true
313
- },
314
- {
315
- "Operator":"Contains",
316
- "ValueToCompare":"bot",
317
- "ValuesToCompare":null,
318
- "UrlPart":null,
319
- "CookieName":null,
320
- "HttpHeaderName":null,
321
- "ValidatorType":"UserAgentValidator",
322
- "IsNegative":true,
323
- "IsIgnoreCase":true
324
- },
325
- {
326
- "Operator":"Contains",
327
- "ValueToCompare":"bot",
328
- "ValuesToCompare":null,
329
- "UrlPart":null,
330
- "CookieName":null,
331
- "HttpHeaderName":"Akamai-bot",
332
- "ValidatorType":"HttpHeaderValidator",
333
- "IsNegative":true,
334
- "IsIgnoreCase":true
335
- },
336
- {
337
- "Operator":"Contains",
338
- "ValueToCompare":"ticketania",
339
- "ValuesToCompare":null,
340
- "UrlPart":"HostName",
341
- "CookieName":null,
342
- "HttpHeaderName":null,
343
- "ValidatorType":"UrlValidator",
344
- "IsNegative":false,
345
- "IsIgnoreCase":true
346
- }
347
- ],
348
- "LogicalOperator":"And"
349
- }
350
- ],
351
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
352
- "RedirectLogic":"AllowTParameter",
353
- "ForcedTargetUrl":""
354
- },
355
- {
356
- "Name":"event1 queue action (cloudflare)",
357
- "ActionType":"Queue",
358
- "EventId":"event1",
359
- "CookieDomain":".cloudflare-queue-it.com",
360
- "LayoutName":"White Space",
361
- "Culture":"",
362
- "ExtendCookieValidity":true,
363
- "CookieValidityMinute":20,
364
- "Triggers":[
365
- {
366
- "TriggerParts":[
367
- {
368
- "Operator":"Contains",
369
- "ValueToCompare":"queue-event1",
370
- "ValuesToCompare":null,
371
- "UrlPart":"PageUrl",
372
- "CookieName":null,
373
- "HttpHeaderName":null,
374
- "ValidatorType":"UrlValidator",
375
- "IsNegative":false,
376
- "IsIgnoreCase":true
377
- },
378
- {
379
- "Operator":"Contains",
380
- "ValueToCompare":"bot",
381
- "ValuesToCompare":null,
382
- "UrlPart":null,
383
- "CookieName":"Akamai-bot",
384
- "HttpHeaderName":null,
385
- "ValidatorType":"CookieValidator",
386
- "IsNegative":true,
387
- "IsIgnoreCase":true
388
- },
389
- {
390
- "Operator":"Contains",
391
- "ValueToCompare":"bot",
392
- "ValuesToCompare":null,
393
- "UrlPart":null,
394
- "CookieName":null,
395
- "HttpHeaderName":null,
396
- "ValidatorType":"UserAgentValidator",
397
- "IsNegative":true,
398
- "IsIgnoreCase":true
399
- },
400
- {
401
- "Operator":"Contains",
402
- "ValueToCompare":"bot",
403
- "ValuesToCompare":null,
404
- "UrlPart":null,
405
- "CookieName":null,
406
- "HttpHeaderName":"Akamai-bot",
407
- "ValidatorType":"HttpHeaderValidator",
408
- "IsNegative":true,
409
- "IsIgnoreCase":true
410
- },
411
- {
412
- "Operator":"Contains",
413
- "ValueToCompare":"cloudflare-queue-it.com",
414
- "ValuesToCompare":null,
415
- "UrlPart":"HostName",
416
- "CookieName":null,
417
- "HttpHeaderName":null,
418
- "ValidatorType":"UrlValidator",
419
- "IsNegative":false,
420
- "IsIgnoreCase":true
421
- }
422
- ],
423
- "LogicalOperator":"And"
424
- }
425
- ],
426
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
427
- "RedirectLogic":"AllowTParameter",
428
- "ForcedTargetUrl":""
429
- },
430
- {
431
- "Name":"event1 queue action (akamai)",
432
- "ActionType":"Queue",
433
- "EventId":"event1",
434
- "CookieDomain":".hypequeue.com",
435
- "LayoutName":"White Space",
436
- "Culture":"",
437
- "ExtendCookieValidity":true,
438
- "CookieValidityMinute":20,
439
- "Triggers":[
440
- {
441
- "TriggerParts":[
442
- {
443
- "Operator":"Contains",
444
- "ValueToCompare":"queue-event1-nodomain",
445
- "ValuesToCompare":null,
446
- "UrlPart":"PageUrl",
447
- "CookieName":null,
448
- "HttpHeaderName":null,
449
- "ValidatorType":"UrlValidator",
450
- "IsNegative":false,
451
- "IsIgnoreCase":true
452
- }
453
- ],
454
- "LogicalOperator":"And"
455
- },
456
- {
457
- "TriggerParts":[
458
- {
459
- "Operator":"Contains",
460
- "ValueToCompare":"queue-event1",
461
- "ValuesToCompare":null,
462
- "UrlPart":"PageUrl",
463
- "CookieName":null,
464
- "HttpHeaderName":null,
465
- "ValidatorType":"UrlValidator",
466
- "IsNegative":false,
467
- "IsIgnoreCase":true
468
- },
469
- {
470
- "Operator":"Equals",
471
- "ValueToCompare":"bot",
472
- "ValuesToCompare":null,
473
- "UrlPart":null,
474
- "CookieName":"Akamai-bot",
475
- "HttpHeaderName":null,
476
- "ValidatorType":"CookieValidator",
477
- "IsNegative":true,
478
- "IsIgnoreCase":true
479
- },
480
- {
481
- "Operator":"Contains",
482
- "ValueToCompare":"bot",
483
- "ValuesToCompare":null,
484
- "UrlPart":null,
485
- "CookieName":null,
486
- "HttpHeaderName":null,
487
- "ValidatorType":"UserAgentValidator",
488
- "IsNegative":true,
489
- "IsIgnoreCase":true
490
- },
491
- {
492
- "Operator":"Contains",
493
- "ValueToCompare":"bot",
494
- "ValuesToCompare":null,
495
- "UrlPart":null,
496
- "CookieName":null,
497
- "HttpHeaderName":"Akamai-bot",
498
- "ValidatorType":"HttpHeaderValidator",
499
- "IsNegative":true,
500
- "IsIgnoreCase":true
501
- },
502
- {
503
- "Operator":"Contains",
504
- "ValueToCompare":"hypequeue.com",
505
- "ValuesToCompare":null,
506
- "UrlPart":"HostName",
507
- "CookieName":null,
508
- "HttpHeaderName":null,
509
- "ValidatorType":"UrlValidator",
510
- "IsNegative":false,
511
- "IsIgnoreCase":true
512
- }
513
- ],
514
- "LogicalOperator":"And"
515
- }
516
- ],
517
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
518
- "RedirectLogic":"AllowTParameter",
519
- "ForcedTargetUrl":""
520
- },
521
- {
522
- "Name":"event1 cancel action (ticketania)",
523
- "ActionType":"Cancel",
524
- "EventId":"event1",
525
- "CookieDomain":".ticketania.com",
526
- "LayoutName":null,
527
- "Culture":null,
528
- "ExtendCookieValidity":null,
529
- "CookieValidityMinute":0,
530
- "Triggers":[
531
- {
532
- "TriggerParts":[
533
- {
534
- "Operator":"Contains",
535
- "ValueToCompare":"cancel-event1",
536
- "ValuesToCompare":null,
537
- "UrlPart":"PageUrl",
538
- "CookieName":null,
539
- "HttpHeaderName":null,
540
- "ValidatorType":"UrlValidator",
541
- "IsNegative":false,
542
- "IsIgnoreCase":true
543
- },
544
- {
545
- "Operator":"Contains",
546
- "ValueToCompare":"ticketania",
547
- "ValuesToCompare":null,
548
- "UrlPart":"HostName",
549
- "CookieName":null,
550
- "HttpHeaderName":null,
551
- "ValidatorType":"UrlValidator",
552
- "IsNegative":false,
553
- "IsIgnoreCase":true
554
- }
555
- ],
556
- "LogicalOperator":"And"
557
- }
558
- ],
559
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
560
- "RedirectLogic":null,
561
- "ForcedTargetUrl":null
562
- },
563
- {
564
- "Name":"event1 cancel action (cloudflare)",
565
- "ActionType":"Cancel",
566
- "EventId":"event1",
567
- "CookieDomain":".cloudflare-queue-it.com",
568
- "LayoutName":null,
569
- "Culture":null,
570
- "ExtendCookieValidity":null,
571
- "CookieValidityMinute":0,
572
- "Triggers":[
573
- {
574
- "TriggerParts":[
575
- {
576
- "Operator":"Contains",
577
- "ValueToCompare":"cancel-event1",
578
- "ValuesToCompare":null,
579
- "UrlPart":"PageUrl",
580
- "CookieName":null,
581
- "HttpHeaderName":null,
582
- "ValidatorType":"UrlValidator",
583
- "IsNegative":false,
584
- "IsIgnoreCase":true
585
- },
586
- {
587
- "Operator":"Contains",
588
- "ValueToCompare":"cloudflare-queue-it.com",
589
- "ValuesToCompare":null,
590
- "UrlPart":"HostName",
591
- "CookieName":null,
592
- "HttpHeaderName":null,
593
- "ValidatorType":"UrlValidator",
594
- "IsNegative":false,
595
- "IsIgnoreCase":true
596
- }
597
- ],
598
- "LogicalOperator":"And"
599
- }
600
- ],
601
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
602
- "RedirectLogic":null,
603
- "ForcedTargetUrl":null
604
- },
605
- {
606
- "Name":"event1 cancel action (akamai)",
607
- "ActionType":"Cancel",
608
- "EventId":"event1",
609
- "CookieDomain":".hypequeue.com",
610
- "LayoutName":null,
611
- "Culture":null,
612
- "ExtendCookieValidity":null,
613
- "CookieValidityMinute":0,
614
- "Triggers":[
615
- {
616
- "TriggerParts":[
617
- {
618
- "Operator":"Contains",
619
- "ValueToCompare":"cancel-event1",
620
- "ValuesToCompare":null,
621
- "UrlPart":"PageUrl",
622
- "CookieName":null,
623
- "HttpHeaderName":null,
624
- "ValidatorType":"UrlValidator",
625
- "IsNegative":false,
626
- "IsIgnoreCase":true
627
- },
628
- {
629
- "Operator":"Contains",
630
- "ValueToCompare":"hypequeue.com",
631
- "ValuesToCompare":null,
632
- "UrlPart":"HostName",
633
- "CookieName":null,
634
- "HttpHeaderName":null,
635
- "ValidatorType":"UrlValidator",
636
- "IsNegative":false,
637
- "IsIgnoreCase":true
638
- }
639
- ],
640
- "LogicalOperator":"And"
641
- }
642
- ],
643
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
644
- "RedirectLogic":null,
645
- "ForcedTargetUrl":null
646
- },
647
- {
648
- "Name":"future queue action (default)",
649
- "ActionType":"Queue",
650
- "EventId":"future",
651
- "CookieDomain":"",
652
- "LayoutName":null,
653
- "Culture":"",
654
- "ExtendCookieValidity":true,
655
- "CookieValidityMinute":20,
656
- "Triggers":[
657
- {
658
- "TriggerParts":[
659
- {
660
- "Operator":"Contains",
661
- "ValueToCompare":"idle-future-nodomain",
662
- "ValuesToCompare":null,
663
- "UrlPart":"PageUrl",
664
- "CookieName":null,
665
- "HttpHeaderName":null,
666
- "ValidatorType":"UrlValidator",
667
- "IsNegative":false,
668
- "IsIgnoreCase":true
669
- }
670
- ],
671
- "LogicalOperator":"And"
672
- }
673
- ],
674
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
675
- "RedirectLogic":"AllowTParameter",
676
- "ForcedTargetUrl":""
677
- },
678
- {
679
- "Name":"future queue action (ticketania)",
680
- "ActionType":"Queue",
681
- "EventId":"future",
682
- "CookieDomain":".ticketania.com",
683
- "LayoutName":null,
684
- "Culture":"",
685
- "ExtendCookieValidity":true,
686
- "CookieValidityMinute":20,
687
- "Triggers":[
688
- {
689
- "TriggerParts":[
690
- {
691
- "Operator":"Contains",
692
- "ValueToCompare":"idle-future",
693
- "ValuesToCompare":null,
694
- "UrlPart":"PageUrl",
695
- "CookieName":null,
696
- "HttpHeaderName":null,
697
- "ValidatorType":"UrlValidator",
698
- "IsNegative":false,
699
- "IsIgnoreCase":true
700
- },
701
- {
702
- "Operator":"Contains",
703
- "ValueToCompare":"ticketania",
704
- "ValuesToCompare":null,
705
- "UrlPart":"HostName",
706
- "CookieName":null,
707
- "HttpHeaderName":null,
708
- "ValidatorType":"UrlValidator",
709
- "IsNegative":false,
710
- "IsIgnoreCase":true
711
- }
712
- ],
713
- "LogicalOperator":"And"
714
- }
715
- ],
716
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
717
- "RedirectLogic":"AllowTParameter",
718
- "ForcedTargetUrl":""
719
- },
720
- {
721
- "Name":"future queue action (cloudflare)",
722
- "ActionType":"Queue",
723
- "EventId":"future",
724
- "CookieDomain":".cloudflare-queue-it.com",
725
- "LayoutName":null,
726
- "Culture":"",
727
- "ExtendCookieValidity":true,
728
- "CookieValidityMinute":20,
729
- "Triggers":[
730
- {
731
- "TriggerParts":[
732
- {
733
- "Operator":"Contains",
734
- "ValueToCompare":"idle-future",
735
- "ValuesToCompare":null,
736
- "UrlPart":"PageUrl",
737
- "CookieName":null,
738
- "HttpHeaderName":null,
739
- "ValidatorType":"UrlValidator",
740
- "IsNegative":false,
741
- "IsIgnoreCase":true
742
- },
743
- {
744
- "Operator":"Contains",
745
- "ValueToCompare":"cloudflare-queue-it.com",
746
- "ValuesToCompare":null,
747
- "UrlPart":"HostName",
748
- "CookieName":null,
749
- "HttpHeaderName":null,
750
- "ValidatorType":"UrlValidator",
751
- "IsNegative":false,
752
- "IsIgnoreCase":true
753
- }
754
- ],
755
- "LogicalOperator":"And"
756
- }
757
- ],
758
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
759
- "RedirectLogic":"AllowTParameter",
760
- "ForcedTargetUrl":""
761
- },
762
- {
763
- "Name":"future queue action (akamai)",
764
- "ActionType":"Queue",
765
- "EventId":"future",
766
- "CookieDomain":".hypequeue.com",
767
- "LayoutName":null,
768
- "Culture":"",
769
- "ExtendCookieValidity":true,
770
- "CookieValidityMinute":20,
771
- "Triggers":[
772
- {
773
- "TriggerParts":[
774
- {
775
- "Operator":"Contains",
776
- "ValueToCompare":"idle-future",
777
- "ValuesToCompare":null,
778
- "UrlPart":"PageUrl",
779
- "CookieName":null,
780
- "HttpHeaderName":null,
781
- "ValidatorType":"UrlValidator",
782
- "IsNegative":false,
783
- "IsIgnoreCase":true
784
- },
785
- {
786
- "Operator":"Contains",
787
- "ValueToCompare":"hypequeue.com",
788
- "ValuesToCompare":null,
789
- "UrlPart":"HostName",
790
- "CookieName":null,
791
- "HttpHeaderName":null,
792
- "ValidatorType":"UrlValidator",
793
- "IsNegative":false,
794
- "IsIgnoreCase":true
795
- }
796
- ],
797
- "LogicalOperator":"And"
798
- }
799
- ],
800
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
801
- "RedirectLogic":"AllowTParameter",
802
- "ForcedTargetUrl":""
803
- },
804
- {
805
- "Name":"disabled queue action (default)",
806
- "ActionType":"Queue",
807
- "EventId":"disabled",
808
- "CookieDomain":"",
809
- "LayoutName":null,
810
- "Culture":"",
811
- "ExtendCookieValidity":true,
812
- "CookieValidityMinute":20,
813
- "Triggers":[
814
- {
815
- "TriggerParts":[
816
- {
817
- "Operator":"Contains",
818
- "ValueToCompare":"queue-disabled-nodomain",
819
- "ValuesToCompare":null,
820
- "UrlPart":"PageUrl",
821
- "CookieName":null,
822
- "HttpHeaderName":null,
823
- "ValidatorType":"UrlValidator",
824
- "IsNegative":false,
825
- "IsIgnoreCase":true
826
- }
827
- ],
828
- "LogicalOperator":"And"
829
- }
830
- ],
831
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
832
- "RedirectLogic":"AllowTParameter",
833
- "ForcedTargetUrl":""
834
- },
835
- {
836
- "Name":"disabled [not extend cookie] queue action (default)",
837
- "ActionType":"Queue",
838
- "EventId":"disabled",
839
- "CookieDomain":"",
840
- "LayoutName":null,
841
- "Culture":"",
842
- "ExtendCookieValidity":false,
843
- "CookieValidityMinute":20,
844
- "Triggers":[
845
- {
846
- "TriggerParts":[
847
- {
848
- "Operator":"Contains",
849
- "ValueToCompare":"queue-disabled-notextendcookie-nodomain",
850
- "ValuesToCompare":null,
851
- "UrlPart":"PageUrl",
852
- "CookieName":null,
853
- "HttpHeaderName":null,
854
- "ValidatorType":"UrlValidator",
855
- "IsNegative":false,
856
- "IsIgnoreCase":true
857
- }
858
- ],
859
- "LogicalOperator":"And"
860
- }
861
- ],
862
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
863
- "RedirectLogic":"AllowTParameter",
864
- "ForcedTargetUrl":""
865
- },
866
- {
867
- "Name":"disabled queue action (ticketania)",
868
- "ActionType":"Queue",
869
- "EventId":"disabled",
870
- "CookieDomain":".ticketania.com",
871
- "LayoutName":null,
872
- "Culture":"",
873
- "ExtendCookieValidity":true,
874
- "CookieValidityMinute":20,
875
- "Triggers":[
876
- {
877
- "TriggerParts":[
878
- {
879
- "Operator":"Contains",
880
- "ValueToCompare":"queue-disabled",
881
- "ValuesToCompare":null,
882
- "UrlPart":"PageUrl",
883
- "CookieName":null,
884
- "HttpHeaderName":null,
885
- "ValidatorType":"UrlValidator",
886
- "IsNegative":false,
887
- "IsIgnoreCase":true
888
- },
889
- {
890
- "Operator":"Contains",
891
- "ValueToCompare":"ticketania",
892
- "ValuesToCompare":null,
893
- "UrlPart":"HostName",
894
- "CookieName":null,
895
- "HttpHeaderName":null,
896
- "ValidatorType":"UrlValidator",
897
- "IsNegative":false,
898
- "IsIgnoreCase":true
899
- }
900
- ],
901
- "LogicalOperator":"And"
902
- }
903
- ],
904
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
905
- "RedirectLogic":"AllowTParameter",
906
- "ForcedTargetUrl":""
907
- },
908
- {
909
- "Name":"disabled queue action (cloudflare)",
910
- "ActionType":"Queue",
911
- "EventId":"disabled",
912
- "CookieDomain":".cloudflare-queue-it.com",
913
- "LayoutName":null,
914
- "Culture":"",
915
- "ExtendCookieValidity":true,
916
- "CookieValidityMinute":20,
917
- "Triggers":[
918
- {
919
- "TriggerParts":[
920
- {
921
- "Operator":"Contains",
922
- "ValueToCompare":"queue-disabled",
923
- "ValuesToCompare":null,
924
- "UrlPart":"PageUrl",
925
- "CookieName":null,
926
- "HttpHeaderName":null,
927
- "ValidatorType":"UrlValidator",
928
- "IsNegative":false,
929
- "IsIgnoreCase":true
930
- },
931
- {
932
- "Operator":"Contains",
933
- "ValueToCompare":"cloudflare-queue-it.com",
934
- "ValuesToCompare":null,
935
- "UrlPart":"HostName",
936
- "CookieName":null,
937
- "HttpHeaderName":null,
938
- "ValidatorType":"UrlValidator",
939
- "IsNegative":false,
940
- "IsIgnoreCase":true
941
- }
942
- ],
943
- "LogicalOperator":"And"
944
- }
945
- ],
946
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
947
- "RedirectLogic":"AllowTParameter",
948
- "ForcedTargetUrl":""
949
- },
950
- {
951
- "Name":"disabled queue action (akamai)",
952
- "ActionType":"Queue",
953
- "EventId":"disabled",
954
- "CookieDomain":".hypequeue.com",
955
- "LayoutName":null,
956
- "Culture":"",
957
- "ExtendCookieValidity":true,
958
- "CookieValidityMinute":20,
959
- "Triggers":[
960
- {
961
- "TriggerParts":[
962
- {
963
- "Operator":"Contains",
964
- "ValueToCompare":"queue-disabled",
965
- "ValuesToCompare":null,
966
- "UrlPart":"PageUrl",
967
- "CookieName":null,
968
- "HttpHeaderName":null,
969
- "ValidatorType":"UrlValidator",
970
- "IsNegative":false,
971
- "IsIgnoreCase":true
972
- },
973
- {
974
- "Operator":"Contains",
975
- "ValueToCompare":"hypequeue.com",
976
- "ValuesToCompare":null,
977
- "UrlPart":"HostName",
978
- "CookieName":null,
979
- "HttpHeaderName":null,
980
- "ValidatorType":"UrlValidator",
981
- "IsNegative":false,
982
- "IsIgnoreCase":true
983
- }
984
- ],
985
- "LogicalOperator":"And"
986
- }
987
- ],
988
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
989
- "RedirectLogic":"AllowTParameter",
990
- "ForcedTargetUrl":""
991
- },
992
- {
993
- "Name":"safetynet queue action (default)",
994
- "ActionType":"Queue",
995
- "EventId":"safetynet",
996
- "CookieDomain":"",
997
- "LayoutName":null,
998
- "Culture":"",
999
- "ExtendCookieValidity":true,
1000
- "CookieValidityMinute":20,
1001
- "Triggers":[
1002
- {
1003
- "TriggerParts":[
1004
- {
1005
- "Operator":"Contains",
1006
- "ValueToCompare":"queue-safetynet-nodomain",
1007
- "ValuesToCompare":null,
1008
- "UrlPart":"PageUrl",
1009
- "CookieName":null,
1010
- "HttpHeaderName":null,
1011
- "ValidatorType":"UrlValidator",
1012
- "IsNegative":false,
1013
- "IsIgnoreCase":true
1014
- }
1015
- ],
1016
- "LogicalOperator":"And"
1017
- }
1018
- ],
1019
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
1020
- "RedirectLogic":"AllowTParameter",
1021
- "ForcedTargetUrl":""
1022
- },
1023
- {
1024
- "Name":"test02082018",
1025
- "ActionType":"Queue",
1026
- "EventId":"test02082018",
1027
- "CookieDomain":"",
1028
- "LayoutName":null,
1029
- "Culture":"",
1030
- "ExtendCookieValidity":false,
1031
- "CookieValidityMinute":20,
1032
- "Triggers":[
1033
- {
1034
- "TriggerParts":[
1035
- {
1036
- "Operator":"Contains",
1037
- "ValueToCompare":"test02082018",
1038
- "ValuesToCompare":null,
1039
- "UrlPart":"PageUrl",
1040
- "CookieName":null,
1041
- "HttpHeaderName":null,
1042
- "ValidatorType":"UrlValidator",
1043
- "IsNegative":false,
1044
- "IsIgnoreCase":true
1045
- }
1046
- ],
1047
- "LogicalOperator":"And"
1048
- }
1049
- ],
1050
- "QueueDomain":"queueitknownusertst.test.queue-it.net",
1051
- "RedirectLogic":"AllowTParameter",
1052
- "ForcedTargetUrl":""
1053
- }
1054
- ],
1055
- "CustomerId":"queueitknownusertst",
1056
- "AccountId":"queueit-mosa",
1057
- "Version":55,
1058
- "PublishDate":"2021-05-25T08:43:43.3277603Z",
1059
- "ConfigDataVersion":"1.0.0.3"
1060
- }`;
1061
- const handler = new CustomerIntegrationDecodingHandler();
1062
- const customerIntegrationDecodingHandler = new JSONDecoder<CustomerIntegrationDecodingHandler>(handler);
1063
-
1064
- customerIntegrationDecodingHandler.deserialize(Uint8Array.wrap(String.UTF8.encode(integrationConfigString)));
1065
- const customerIntegrationInfo: IntegrationModels.CustomerIntegration = handler.value();
1066
-
1067
- expect(customerIntegrationInfo.Version).toBe(55);
1068
- expect(customerIntegrationInfo.Description).toBe("tst", 'Description should be deserialized');
1069
- expect(customerIntegrationInfo.Integrations.length).toBe(23);
1070
- expect(customerIntegrationInfo.Integrations[0].Name).toBe("mojitest");
1071
- expect(customerIntegrationInfo.Integrations[1].Name).toBe("all pages");
1072
- let triggerModel = customerIntegrationInfo.Integrations[0].Triggers[0];
1073
- expect(triggerModel.LogicalOperator).toBe("And");
1074
- expect(triggerModel.TriggerParts[0].ValueToCompare).toBe("mojitest");
1075
- expect(triggerModel.TriggerParts[0].IsNegative).toBe(false);
1076
- expect(triggerModel.TriggerParts[0].IsIgnoreCase).toBe(true);
1077
-
1078
- triggerModel = customerIntegrationInfo.Integrations[1].Triggers[0];
1079
- expect(triggerModel.TriggerParts[0].ValueToCompare).toBe('test02082018');
1080
-
1081
- triggerModel = customerIntegrationInfo.Integrations[2].Triggers[0];
1082
- expect(triggerModel.TriggerParts[1].ValuesToCompare.length).toBe(2);
1083
- expect(triggerModel.TriggerParts[1].ValuesToCompare[0]).toBe('ignore-this-queue-event1-nodomain');
1084
- expect(triggerModel.TriggerParts[1].ValuesToCompare[1]).toBe('ignore-that-queue-event1-nodomain');
1085
- });
1086
- })