@budibase/worker 2.3.14-alpha.0 → 2.3.15
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/coverage/clover.xml +369 -384
- package/coverage/coverage-final.json +18 -18
- package/coverage/lcov-report/index.html +56 -56
- package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/global/configs.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/global/email.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/global/events.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/global/index.html +21 -21
- package/coverage/lcov-report/src/api/controllers/global/license.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/global/roles.ts.html +15 -15
- package/coverage/lcov-report/src/api/controllers/global/self.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/global/users.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/global/workspaces.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/environment.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/status.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +1 -1
- package/coverage/lcov-report/src/api/index.html +1 -1
- package/coverage/lcov-report/src/api/index.ts.html +6 -6
- package/coverage/lcov-report/src/api/routes/global/auth.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/configs.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/email.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/events.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/license.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/roles.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/self.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/templates.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/users.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/workspaces.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/index.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/environment.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/restore.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/status.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/tenants.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/validation/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/validation/index.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/validation/users.ts.html +1 -1
- package/coverage/lcov-report/src/constants/index.html +1 -1
- package/coverage/lcov-report/src/constants/index.ts.html +1 -1
- package/coverage/lcov-report/src/constants/templates/index.html +11 -11
- package/coverage/lcov-report/src/constants/templates/index.ts.html +10 -10
- package/coverage/lcov-report/src/db/index.html +15 -15
- package/coverage/lcov-report/src/db/index.ts.html +10 -10
- package/coverage/lcov-report/src/environment.ts.html +8 -8
- package/coverage/lcov-report/src/index.html +5 -5
- package/coverage/lcov-report/src/index.ts.html +1 -1
- package/coverage/lcov-report/src/middleware/cloudRestricted.ts.html +1 -1
- package/coverage/lcov-report/src/middleware/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
- package/coverage/lcov-report/src/migrations/index.html +1 -1
- package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/accounts/index.html +1 -1
- package/coverage/lcov-report/src/sdk/accounts/index.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/index.html +1 -1
- package/coverage/lcov-report/src/sdk/index.ts.html +2 -2
- package/coverage/lcov-report/src/sdk/users/events.ts.html +29 -29
- package/coverage/lcov-report/src/sdk/users/index.html +15 -15
- package/coverage/lcov-report/src/sdk/users/index.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/users/users.ts.html +65 -62
- package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +61 -151
- package/coverage/lcov-report/src/tests/api/accounts.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/auth.ts.html +8 -20
- package/coverage/lcov-report/src/tests/api/base.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/configs.ts.html +3 -3
- package/coverage/lcov-report/src/tests/api/email.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/environment.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/groups.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/index.html +5 -5
- package/coverage/lcov-report/src/tests/api/index.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/license.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/migrations.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/restore.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/roles.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/self.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/status.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/templates.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/tenants.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/users.ts.html +3 -3
- package/coverage/lcov-report/src/tests/controllers.ts.html +2 -2
- package/coverage/lcov-report/src/tests/index.html +18 -18
- package/coverage/lcov-report/src/tests/index.ts.html +2 -2
- package/coverage/lcov-report/src/tests/mocks/email.ts.html +1 -1
- package/coverage/lcov-report/src/tests/mocks/index.html +1 -1
- package/coverage/lcov-report/src/tests/mocks/index.ts.html +1 -1
- package/coverage/lcov-report/src/tests/structures/configs.ts.html +1 -1
- package/coverage/lcov-report/src/tests/structures/groups.ts.html +1 -1
- package/coverage/lcov-report/src/tests/structures/index.html +9 -9
- package/coverage/lcov-report/src/tests/structures/index.ts.html +14 -8
- package/coverage/lcov-report/src/tests/structures/users.ts.html +5 -5
- package/coverage/lcov-report/src/utilities/appService.ts.html +7 -7
- package/coverage/lcov-report/src/utilities/email.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/fileSystem.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/index.html +1 -1
- package/coverage/lcov-report/src/utilities/index.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/redis.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/templates.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/users.ts.html +6 -6
- package/coverage/lcov.info +607 -629
- package/jest.config.ts +2 -3
- package/package.json +6 -7
- package/src/api/routes/global/tests/auth.spec.ts +22 -30
- package/src/api/routes/global/tests/configs.spec.ts +94 -114
- package/src/api/routes/global/tests/roles.spec.ts +14 -19
- package/src/api/routes/global/tests/users.spec.ts +34 -33
- package/src/sdk/users/users.ts +1 -0
- package/src/tests/TestConfiguration.ts +11 -41
- package/src/tests/api/auth.ts +3 -7
- package/src/tests/api/configs.ts +2 -2
- package/src/tests/api/users.ts +2 -2
- package/src/tests/jestSetup.ts +2 -9
- package/src/tests/structures/index.ts +2 -0
- package/__mocks__/node-fetch.ts +0 -23
- package/jest-testcontainers-config.js +0 -8
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">90.
|
|
26
|
+
<span class="strong">90.35% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>103/114</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">62.5% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>10/16</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">86.48% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>32/37</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">90.09% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>100/111</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -393,37 +393,7 @@
|
|
|
393
393
|
<a name='L328'></a><a href='#L328'>328</a>
|
|
394
394
|
<a name='L329'></a><a href='#L329'>329</a>
|
|
395
395
|
<a name='L330'></a><a href='#L330'>330</a>
|
|
396
|
-
<a name='L331'></a><a href='#L331'>331</a>
|
|
397
|
-
<a name='L332'></a><a href='#L332'>332</a>
|
|
398
|
-
<a name='L333'></a><a href='#L333'>333</a>
|
|
399
|
-
<a name='L334'></a><a href='#L334'>334</a>
|
|
400
|
-
<a name='L335'></a><a href='#L335'>335</a>
|
|
401
|
-
<a name='L336'></a><a href='#L336'>336</a>
|
|
402
|
-
<a name='L337'></a><a href='#L337'>337</a>
|
|
403
|
-
<a name='L338'></a><a href='#L338'>338</a>
|
|
404
|
-
<a name='L339'></a><a href='#L339'>339</a>
|
|
405
|
-
<a name='L340'></a><a href='#L340'>340</a>
|
|
406
|
-
<a name='L341'></a><a href='#L341'>341</a>
|
|
407
|
-
<a name='L342'></a><a href='#L342'>342</a>
|
|
408
|
-
<a name='L343'></a><a href='#L343'>343</a>
|
|
409
|
-
<a name='L344'></a><a href='#L344'>344</a>
|
|
410
|
-
<a name='L345'></a><a href='#L345'>345</a>
|
|
411
|
-
<a name='L346'></a><a href='#L346'>346</a>
|
|
412
|
-
<a name='L347'></a><a href='#L347'>347</a>
|
|
413
|
-
<a name='L348'></a><a href='#L348'>348</a>
|
|
414
|
-
<a name='L349'></a><a href='#L349'>349</a>
|
|
415
|
-
<a name='L350'></a><a href='#L350'>350</a>
|
|
416
|
-
<a name='L351'></a><a href='#L351'>351</a>
|
|
417
|
-
<a name='L352'></a><a href='#L352'>352</a>
|
|
418
|
-
<a name='L353'></a><a href='#L353'>353</a>
|
|
419
|
-
<a name='L354'></a><a href='#L354'>354</a>
|
|
420
|
-
<a name='L355'></a><a href='#L355'>355</a>
|
|
421
|
-
<a name='L356'></a><a href='#L356'>356</a>
|
|
422
|
-
<a name='L357'></a><a href='#L357'>357</a>
|
|
423
|
-
<a name='L358'></a><a href='#L358'>358</a>
|
|
424
|
-
<a name='L359'></a><a href='#L359'>359</a>
|
|
425
|
-
<a name='L360'></a><a href='#L360'>360</a>
|
|
426
|
-
<a name='L361'></a><a href='#L361'>361</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
|
|
396
|
+
<a name='L331'></a><a href='#L331'>331</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
|
|
427
397
|
<span class="cline-any cline-neutral"> </span>
|
|
428
398
|
<span class="cline-any cline-neutral"> </span>
|
|
429
399
|
<span class="cline-any cline-yes">18x</span>
|
|
@@ -445,12 +415,10 @@
|
|
|
445
415
|
<span class="cline-any cline-neutral"> </span>
|
|
446
416
|
<span class="cline-any cline-neutral"> </span>
|
|
447
417
|
<span class="cline-any cline-neutral"> </span>
|
|
448
|
-
<span class="cline-any cline-neutral"> </span>
|
|
449
418
|
<span class="cline-any cline-yes">18x</span>
|
|
450
419
|
<span class="cline-any cline-yes">18x</span>
|
|
451
420
|
<span class="cline-any cline-neutral"> </span>
|
|
452
421
|
<span class="cline-any cline-yes">18x</span>
|
|
453
|
-
<span class="cline-any cline-yes">18x</span>
|
|
454
422
|
<span class="cline-any cline-neutral"> </span>
|
|
455
423
|
<span class="cline-any cline-yes">18x</span>
|
|
456
424
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -462,27 +430,7 @@
|
|
|
462
430
|
<span class="cline-any cline-neutral"> </span>
|
|
463
431
|
<span class="cline-any cline-neutral"> </span>
|
|
464
432
|
<span class="cline-any cline-neutral"> </span>
|
|
465
|
-
<span class="cline-any cline-yes">32x</span>
|
|
466
|
-
<span class="cline-any cline-yes">32x</span>
|
|
467
|
-
<span class="cline-any cline-yes">32x</span>
|
|
468
|
-
<span class="cline-any cline-yes">31x</span>
|
|
469
|
-
<span class="cline-any cline-neutral"> </span>
|
|
470
|
-
<span class="cline-any cline-yes">1x</span>
|
|
471
|
-
<span class="cline-any cline-yes">1x</span>
|
|
472
|
-
<span class="cline-any cline-no"> </span>
|
|
473
|
-
<span class="cline-any cline-no"> </span>
|
|
474
|
-
<span class="cline-any cline-neutral"> </span>
|
|
475
|
-
<span class="cline-any cline-yes">1x</span>
|
|
476
|
-
<span class="cline-any cline-neutral"> </span>
|
|
477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
478
|
-
<span class="cline-any cline-neutral"> </span>
|
|
479
|
-
<span class="cline-any cline-neutral"> </span>
|
|
480
|
-
<span class="cline-any cline-neutral"> </span>
|
|
481
|
-
<span class="cline-any cline-neutral"> </span>
|
|
482
|
-
<span class="cline-any cline-neutral"> </span>
|
|
483
|
-
<span class="cline-any cline-neutral"> </span>
|
|
484
433
|
<span class="cline-any cline-neutral"> </span>
|
|
485
|
-
<span class="cline-any cline-yes">18x</span>
|
|
486
434
|
<span class="cline-any cline-neutral"> </span>
|
|
487
435
|
<span class="cline-any cline-neutral"> </span>
|
|
488
436
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -535,44 +483,36 @@
|
|
|
535
483
|
<span class="cline-any cline-neutral"> </span>
|
|
536
484
|
<span class="cline-any cline-neutral"> </span>
|
|
537
485
|
<span class="cline-any cline-neutral"> </span>
|
|
538
|
-
<span class="cline-any cline-yes">
|
|
486
|
+
<span class="cline-any cline-yes">158x</span>
|
|
539
487
|
<span class="cline-any cline-neutral"> </span>
|
|
540
|
-
<span class="cline-any cline-yes">
|
|
541
|
-
<span class="cline-any cline-yes">
|
|
542
|
-
<span class="cline-any cline-yes">
|
|
543
|
-
<span class="cline-any cline-yes">
|
|
544
|
-
<span class="cline-any cline-yes">
|
|
488
|
+
<span class="cline-any cline-yes">158x</span>
|
|
489
|
+
<span class="cline-any cline-yes">158x</span>
|
|
490
|
+
<span class="cline-any cline-yes">158x</span>
|
|
491
|
+
<span class="cline-any cline-yes">158x</span>
|
|
492
|
+
<span class="cline-any cline-yes">158x</span>
|
|
545
493
|
<span class="cline-any cline-neutral"> </span>
|
|
546
494
|
<span class="cline-any cline-neutral"> </span>
|
|
547
|
-
<span class="cline-any cline-yes">
|
|
548
|
-
<span class="cline-any cline-yes">
|
|
495
|
+
<span class="cline-any cline-yes">158x</span>
|
|
496
|
+
<span class="cline-any cline-yes">16x</span>
|
|
549
497
|
<span class="cline-any cline-neutral"> </span>
|
|
550
|
-
<span class="cline-any cline-yes">
|
|
498
|
+
<span class="cline-any cline-yes">158x</span>
|
|
551
499
|
<span class="cline-any cline-yes">72x</span>
|
|
552
500
|
<span class="cline-any cline-neutral"> </span>
|
|
553
|
-
<span class="cline-any cline-yes">
|
|
554
|
-
<span class="cline-any cline-yes">
|
|
555
|
-
<span class="cline-any cline-neutral"> </span>
|
|
556
|
-
<span class="cline-any cline-yes">168x</span>
|
|
557
|
-
<span class="cline-any cline-neutral"> </span>
|
|
501
|
+
<span class="cline-any cline-yes">158x</span>
|
|
502
|
+
<span class="cline-any cline-yes">158x</span>
|
|
558
503
|
<span class="cline-any cline-neutral"> </span>
|
|
504
|
+
<span class="cline-any cline-yes">142x</span>
|
|
559
505
|
<span class="cline-any cline-neutral"> </span>
|
|
560
506
|
<span class="cline-any cline-neutral"> </span>
|
|
561
507
|
<span class="cline-any cline-neutral"> </span>
|
|
562
|
-
<span class="cline-any cline-yes">31x</span>
|
|
563
|
-
<span class="cline-any cline-yes">31x</span>
|
|
564
508
|
<span class="cline-any cline-neutral"> </span>
|
|
565
509
|
<span class="cline-any cline-neutral"> </span>
|
|
566
|
-
<span class="cline-any cline-yes">
|
|
567
|
-
<span class="cline-any cline-yes">
|
|
568
|
-
<span class="cline-any cline-neutral"> </span>
|
|
569
|
-
<span class="cline-any cline-yes">31x</span>
|
|
570
|
-
<span class="cline-any cline-yes">31x</span>
|
|
571
|
-
<span class="cline-any cline-yes">31x</span>
|
|
572
|
-
<span class="cline-any cline-neutral"> </span>
|
|
510
|
+
<span class="cline-any cline-yes">18x</span>
|
|
511
|
+
<span class="cline-any cline-yes">18x</span>
|
|
573
512
|
<span class="cline-any cline-neutral"> </span>
|
|
574
|
-
<span class="cline-any cline-
|
|
575
|
-
<span class="cline-any cline-
|
|
513
|
+
<span class="cline-any cline-yes">18x</span>
|
|
514
|
+
<span class="cline-any cline-yes">18x</span>
|
|
515
|
+
<span class="cline-any cline-yes">18x</span>
|
|
576
516
|
<span class="cline-any cline-neutral"> </span>
|
|
577
517
|
<span class="cline-any cline-neutral"> </span>
|
|
578
518
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -588,8 +528,6 @@
|
|
|
588
528
|
<span class="cline-any cline-neutral"> </span>
|
|
589
529
|
<span class="cline-any cline-yes">6x</span>
|
|
590
530
|
<span class="cline-any cline-neutral"> </span>
|
|
591
|
-
<span class="cline-any cline-yes">6x</span>
|
|
592
|
-
<span class="cline-any cline-neutral"> </span>
|
|
593
531
|
<span class="cline-any cline-neutral"> </span>
|
|
594
532
|
<span class="cline-any cline-yes">6x</span>
|
|
595
533
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -606,10 +544,10 @@
|
|
|
606
544
|
<span class="cline-any cline-neutral"> </span>
|
|
607
545
|
<span class="cline-any cline-neutral"> </span>
|
|
608
546
|
<span class="cline-any cline-neutral"> </span>
|
|
609
|
-
<span class="cline-any cline-yes">
|
|
610
|
-
<span class="cline-any cline-yes">
|
|
547
|
+
<span class="cline-any cline-yes">475x</span>
|
|
548
|
+
<span class="cline-any cline-yes">475x</span>
|
|
611
549
|
<span class="cline-any cline-neutral"> </span>
|
|
612
|
-
<span class="cline-any cline-yes">
|
|
550
|
+
<span class="cline-any cline-yes">407x</span>
|
|
613
551
|
<span class="cline-any cline-neutral"> </span>
|
|
614
552
|
<span class="cline-any cline-neutral"> </span>
|
|
615
553
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -622,7 +560,7 @@
|
|
|
622
560
|
<span class="cline-any cline-neutral"> </span>
|
|
623
561
|
<span class="cline-any cline-neutral"> </span>
|
|
624
562
|
<span class="cline-any cline-neutral"> </span>
|
|
625
|
-
<span class="cline-any cline-yes">
|
|
563
|
+
<span class="cline-any cline-yes">48x</span>
|
|
626
564
|
<span class="cline-any cline-neutral"> </span>
|
|
627
565
|
<span class="cline-any cline-neutral"> </span>
|
|
628
566
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -630,7 +568,7 @@
|
|
|
630
568
|
<span class="cline-any cline-neutral"> </span>
|
|
631
569
|
<span class="cline-any cline-neutral"> </span>
|
|
632
570
|
<span class="cline-any cline-neutral"> </span>
|
|
633
|
-
<span class="cline-any cline-yes">
|
|
571
|
+
<span class="cline-any cline-yes">48x</span>
|
|
634
572
|
<span class="cline-any cline-neutral"> </span>
|
|
635
573
|
<span class="cline-any cline-neutral"> </span>
|
|
636
574
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -659,9 +597,9 @@
|
|
|
659
597
|
<span class="cline-any cline-neutral"> </span>
|
|
660
598
|
<span class="cline-any cline-yes">78x</span>
|
|
661
599
|
<span class="cline-any cline-yes">78x</span>
|
|
662
|
-
<span class="cline-any cline-yes">
|
|
663
|
-
<span class="cline-any cline-
|
|
664
|
-
<span class="cline-any cline-
|
|
600
|
+
<span class="cline-any cline-yes">78x</span>
|
|
601
|
+
<span class="cline-any cline-no"> </span>
|
|
602
|
+
<span class="cline-any cline-no"> </span>
|
|
665
603
|
<span class="cline-any cline-neutral"> </span>
|
|
666
604
|
<span class="cline-any cline-no"> </span>
|
|
667
605
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -678,32 +616,34 @@
|
|
|
678
616
|
<span class="cline-any cline-neutral"> </span>
|
|
679
617
|
<span class="cline-any cline-neutral"> </span>
|
|
680
618
|
<span class="cline-any cline-neutral"> </span>
|
|
681
|
-
<span class="cline-any cline-yes">
|
|
619
|
+
<span class="cline-any cline-yes">18x</span>
|
|
682
620
|
<span class="cline-any cline-neutral"> </span>
|
|
683
621
|
<span class="cline-any cline-neutral"> </span>
|
|
684
|
-
<span class="cline-any cline-yes">32x</span>
|
|
685
622
|
<span class="cline-any cline-neutral"> </span>
|
|
623
|
+
<span class="cline-any cline-yes">18x</span>
|
|
686
624
|
<span class="cline-any cline-neutral"> </span>
|
|
687
625
|
<span class="cline-any cline-neutral"> </span>
|
|
688
|
-
<span class="cline-any cline-
|
|
626
|
+
<span class="cline-any cline-neutral"> </span>
|
|
627
|
+
<span class="cline-any cline-yes">18x</span>
|
|
628
|
+
<span class="cline-any cline-neutral"> </span>
|
|
689
629
|
<span class="cline-any cline-neutral"> </span>
|
|
690
630
|
<span class="cline-any cline-neutral"> </span>
|
|
691
|
-
<span class="cline-any cline-yes">
|
|
631
|
+
<span class="cline-any cline-yes">18x</span>
|
|
692
632
|
<span class="cline-any cline-neutral"> </span>
|
|
693
633
|
<span class="cline-any cline-neutral"> </span>
|
|
694
634
|
<span class="cline-any cline-neutral"> </span>
|
|
695
|
-
<span class="cline-any cline-yes">
|
|
696
|
-
<span class="cline-any cline-yes">
|
|
635
|
+
<span class="cline-any cline-yes">74x</span>
|
|
636
|
+
<span class="cline-any cline-yes">74x</span>
|
|
697
637
|
<span class="cline-any cline-neutral"> </span>
|
|
698
638
|
<span class="cline-any cline-neutral"> </span>
|
|
699
639
|
<span class="cline-any cline-neutral"> </span>
|
|
700
640
|
<span class="cline-any cline-neutral"> </span>
|
|
701
|
-
<span class="cline-any cline-yes">
|
|
702
|
-
<span class="cline-any cline-yes">
|
|
641
|
+
<span class="cline-any cline-yes">64x</span>
|
|
642
|
+
<span class="cline-any cline-yes">17x</span>
|
|
703
643
|
<span class="cline-any cline-neutral"> </span>
|
|
704
|
-
<span class="cline-any cline-yes">
|
|
705
|
-
<span class="cline-any cline-yes">
|
|
706
|
-
<span class="cline-any cline-yes">
|
|
644
|
+
<span class="cline-any cline-yes">64x</span>
|
|
645
|
+
<span class="cline-any cline-yes">64x</span>
|
|
646
|
+
<span class="cline-any cline-yes">64x</span>
|
|
707
647
|
<span class="cline-any cline-neutral"> </span>
|
|
708
648
|
<span class="cline-any cline-neutral"> </span>
|
|
709
649
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -805,44 +745,22 @@ import {
|
|
|
805
745
|
auth,
|
|
806
746
|
constants,
|
|
807
747
|
env as coreEnv,
|
|
808
|
-
DEFAULT_TENANT_ID,
|
|
809
748
|
} from "@budibase/backend-core"
|
|
810
|
-
import structures, { TENANT_ID, CSRF_TOKEN } from "./structures"
|
|
749
|
+
import structures, { TENANT_ID, TENANT_1, CSRF_TOKEN } from "./structures"
|
|
811
750
|
import { CreateUserResponse, User, AuthToken } from "@budibase/types"
|
|
812
751
|
import API from "./api"
|
|
813
|
-
import sdk from "../sdk"
|
|
814
752
|
|
|
815
753
|
enum Mode {
|
|
816
754
|
CLOUD = "cloud",
|
|
817
755
|
SELF = "self",
|
|
818
756
|
}
|
|
819
757
|
|
|
820
|
-
async function retry<T extends (...arg0: any[]) => any>(
|
|
821
|
-
fn: T,
|
|
822
|
-
maxTry: number = 5,
|
|
823
|
-
retryCount = 1
|
|
824
|
-
): Promise<Awaited<ReturnType<T>>> {
|
|
825
|
-
const currRetry = typeof retryCount === "number" ? retryCount : <span class="branch-1 cbranch-no" title="branch not covered" >1</span>
|
|
826
|
-
try {
|
|
827
|
-
const result = await fn()
|
|
828
|
-
return result
|
|
829
|
-
} catch (e) {
|
|
830
|
-
console.log(`Retry ${currRetry} failed.`)
|
|
831
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (currRetry > maxTry) {
|
|
832
|
-
<span class="cstat-no" title="statement not covered" > console.log(`All ${maxTry} retry attempts exhausted`)</span>
|
|
833
|
-
<span class="cstat-no" title="statement not covered" > throw e</span>
|
|
834
|
-
}
|
|
835
|
-
return retry(fn, maxTry, currRetry + 1)
|
|
836
|
-
}
|
|
837
|
-
}
|
|
838
|
-
|
|
839
758
|
class TestConfiguration {
|
|
840
759
|
server: any
|
|
841
760
|
request: any
|
|
842
761
|
api: API
|
|
843
762
|
defaultUser?: User
|
|
844
763
|
tenant1User?: User
|
|
845
|
-
#tenantId?: string
|
|
846
764
|
|
|
847
765
|
constructor(
|
|
848
766
|
opts: { openServer: boolean; mode: Mode } = {
|
|
@@ -919,21 +837,13 @@ class TestConfiguration {
|
|
|
919
837
|
// SETUP / TEARDOWN
|
|
920
838
|
|
|
921
839
|
async beforeAll() {
|
|
922
|
-
|
|
923
|
-
|
|
840
|
+
await this.createDefaultUser()
|
|
841
|
+
await this.createSession(this.defaultUser!)
|
|
924
842
|
|
|
925
|
-
|
|
926
|
-
await
|
|
927
|
-
await this.createSession(this.
|
|
928
|
-
|
|
929
|
-
await tenancy.doInTenant(this.#tenantId, async () => {
|
|
930
|
-
await this.createTenant1User()
|
|
931
|
-
await this.createSession(this.tenant1User!)
|
|
932
|
-
})
|
|
933
|
-
} catch (e: any) {
|
|
934
|
-
<span class="cstat-no" title="statement not covered" > console.log(e)</span>
|
|
935
|
-
<span class="cstat-no" title="statement not covered" > throw new Error(e.message)</span>
|
|
936
|
-
}
|
|
843
|
+
await tenancy.doInTenant(TENANT_1, async () => {
|
|
844
|
+
await this.createTenant1User()
|
|
845
|
+
await this.createSession(this.tenant1User!)
|
|
846
|
+
})
|
|
937
847
|
}
|
|
938
848
|
|
|
939
849
|
async afterAll() {
|
|
@@ -947,8 +857,6 @@ class TestConfiguration {
|
|
|
947
857
|
createTenant = async (): Promise<User> => {
|
|
948
858
|
// create user / new tenant
|
|
949
859
|
const res = await this.api.users.createAdminUser()
|
|
950
|
-
|
|
951
|
-
await sdk.users.addTenant(res.tenantId, res.userId, res.email)
|
|
952
860
|
|
|
953
861
|
// return the created user
|
|
954
862
|
const userRes = await this.api.users.getUser(res.userId, {
|
|
@@ -969,7 +877,7 @@ class TestConfiguration {
|
|
|
969
877
|
try {
|
|
970
878
|
return tenancy.getTenantId()
|
|
971
879
|
} catch (e: any) {
|
|
972
|
-
return
|
|
880
|
+
return TENANT_ID
|
|
973
881
|
}
|
|
974
882
|
}
|
|
975
883
|
|
|
@@ -1020,9 +928,9 @@ class TestConfiguration {
|
|
|
1020
928
|
const tenantId = this.getTenantId()
|
|
1021
929
|
if (tenantId === TENANT_ID) {
|
|
1022
930
|
return this.authHeaders(this.defaultUser!)
|
|
1023
|
-
} else if (tenantId ===
|
|
1024
|
-
return this.authHeaders(this.tenant1User!)
|
|
1025
|
-
} else
|
|
931
|
+
} else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="else path not taken" >E</span>if (tenantId === TENANT_1) {</span>
|
|
932
|
+
<span class="cstat-no" title="statement not covered" > return this.authHeaders(this.tenant1User!)</span>
|
|
933
|
+
} else {
|
|
1026
934
|
<span class="cstat-no" title="statement not covered" > throw new Error("could not determine auth headers to use")</span>
|
|
1027
935
|
}
|
|
1028
936
|
}
|
|
@@ -1039,6 +947,7 @@ class TestConfiguration {
|
|
|
1039
947
|
|
|
1040
948
|
async createDefaultUser() {
|
|
1041
949
|
const user = structures.users.adminUser({
|
|
950
|
+
email: "test@test.com",
|
|
1042
951
|
password: "test",
|
|
1043
952
|
})
|
|
1044
953
|
this.defaultUser = await this.createUser(user)
|
|
@@ -1046,6 +955,7 @@ class TestConfiguration {
|
|
|
1046
955
|
|
|
1047
956
|
async createTenant1User() {
|
|
1048
957
|
const user = structures.users.adminUser({
|
|
958
|
+
email: "tenant1@test.com",
|
|
1049
959
|
password: "test",
|
|
1050
960
|
})
|
|
1051
961
|
this.tenant1User = await this.createUser(user)
|
|
@@ -1150,7 +1060,7 @@ export default TestConfiguration
|
|
|
1150
1060
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1151
1061
|
Code coverage generated by
|
|
1152
1062
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1153
|
-
at
|
|
1063
|
+
at Wed Feb 15 2023 12:55:13 GMT+0000 (Coordinated Universal Time)
|
|
1154
1064
|
</div>
|
|
1155
1065
|
<script src="../../prettify.js"></script>
|
|
1156
1066
|
<script>
|
|
@@ -145,7 +145,7 @@ export class AccountAPI extends TestAPI {
|
|
|
145
145
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
146
146
|
Code coverage generated by
|
|
147
147
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
148
|
-
at
|
|
148
|
+
at Wed Feb 15 2023 12:55:13 GMT+0000 (Coordinated Universal Time)
|
|
149
149
|
</div>
|
|
150
150
|
<script src="../../../prettify.js"></script>
|
|
151
151
|
<script>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>16/16</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>16/16</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -108,12 +108,7 @@
|
|
|
108
108
|
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
109
|
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
110
|
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
|
|
116
|
-
<span class="cline-any cline-neutral"> </span>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
117
112
|
<span class="cline-any cline-yes">18x</span>
|
|
118
113
|
<span class="cline-any cline-neutral"> </span>
|
|
119
114
|
<span class="cline-any cline-yes">18x</span>
|
|
@@ -143,9 +138,6 @@
|
|
|
143
138
|
<span class="cline-any cline-yes">2x</span>
|
|
144
139
|
<span class="cline-any cline-yes">2x</span>
|
|
145
140
|
<span class="cline-any cline-yes">2x</span>
|
|
146
|
-
<span class="cline-any cline-neutral"> </span>
|
|
147
|
-
<span class="cline-any cline-neutral"> </span>
|
|
148
|
-
<span class="cline-any cline-neutral"> </span>
|
|
149
141
|
<span class="cline-any cline-yes">2x</span>
|
|
150
142
|
<span class="cline-any cline-neutral"> </span>
|
|
151
143
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -161,8 +153,7 @@
|
|
|
161
153
|
<span class="cline-any cline-yes">2x</span>
|
|
162
154
|
<span class="cline-any cline-neutral"> </span>
|
|
163
155
|
<span class="cline-any cline-neutral"> </span>
|
|
164
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import
|
|
165
|
-
import TestConfiguration from "../TestConfiguration"
|
|
156
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import TestConfiguration from "../TestConfiguration"
|
|
166
157
|
import { TestAPI } from "./base"
|
|
167
158
|
|
|
168
159
|
export class AuthAPI extends TestAPI {
|
|
@@ -188,17 +179,14 @@ export class AuthAPI extends TestAPI {
|
|
|
188
179
|
.expect(200)
|
|
189
180
|
}
|
|
190
181
|
|
|
191
|
-
requestPasswordReset = async (sendMailMock: any
|
|
182
|
+
requestPasswordReset = async (sendMailMock: any) => {
|
|
192
183
|
await this.config.saveSmtpConfig()
|
|
193
184
|
await this.config.saveSettingsConfig()
|
|
194
|
-
await this.config.createUser(
|
|
195
|
-
...structures.users.user(),
|
|
196
|
-
email: userEmail,
|
|
197
|
-
})
|
|
185
|
+
await this.config.createUser()
|
|
198
186
|
const res = await this.request
|
|
199
187
|
.post(`/api/global/auth/${this.config.getTenantId()}/reset`)
|
|
200
188
|
.send({
|
|
201
|
-
email:
|
|
189
|
+
email: "test@test.com",
|
|
202
190
|
})
|
|
203
191
|
.expect("Content-Type", /json/)
|
|
204
192
|
.expect(200)
|
|
@@ -217,7 +205,7 @@ export class AuthAPI extends TestAPI {
|
|
|
217
205
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
218
206
|
Code coverage generated by
|
|
219
207
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
220
|
-
at
|
|
208
|
+
at Wed Feb 15 2023 12:55:13 GMT+0000 (Coordinated Universal Time)
|
|
221
209
|
</div>
|
|
222
210
|
<script src="../../../prettify.js"></script>
|
|
223
211
|
<script>
|
|
@@ -118,7 +118,7 @@ export abstract class TestAPI {
|
|
|
118
118
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
119
119
|
Code coverage generated by
|
|
120
120
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
121
|
-
at
|
|
121
|
+
at Wed Feb 15 2023 12:55:13 GMT+0000 (Coordinated Universal Time)
|
|
122
122
|
</div>
|
|
123
123
|
<script src="../../../prettify.js"></script>
|
|
124
124
|
<script>
|
|
@@ -169,8 +169,8 @@ export class ConfigAPI extends TestAPI {
|
|
|
169
169
|
return this.request
|
|
170
170
|
.get(`/api/global/configs/checklist`)
|
|
171
171
|
.set(this.config.defaultHeaders())
|
|
172
|
-
.expect(200)
|
|
173
172
|
.expect("Content-Type", /json/)
|
|
173
|
+
.expect(200)
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
saveConfig = (data: any) => {
|
|
@@ -178,8 +178,8 @@ export class ConfigAPI extends TestAPI {
|
|
|
178
178
|
.post(`/api/global/configs`)
|
|
179
179
|
.send(data)
|
|
180
180
|
.set(this.config.defaultHeaders())
|
|
181
|
-
.expect(200)
|
|
182
181
|
.expect("Content-Type", /json/)
|
|
182
|
+
.expect(200)
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
OIDCCallback = (configId: string, preAuthRes: any) => {
|
|
@@ -211,7 +211,7 @@ export class ConfigAPI extends TestAPI {
|
|
|
211
211
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
212
212
|
Code coverage generated by
|
|
213
213
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
214
|
-
at
|
|
214
|
+
at Wed Feb 15 2023 12:55:13 GMT+0000 (Coordinated Universal Time)
|
|
215
215
|
</div>
|
|
216
216
|
<script src="../../../prettify.js"></script>
|
|
217
217
|
<script>
|
|
@@ -133,7 +133,7 @@ export class EmailAPI extends TestAPI {
|
|
|
133
133
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
134
134
|
Code coverage generated by
|
|
135
135
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
136
|
-
at
|
|
136
|
+
at Wed Feb 15 2023 12:55:13 GMT+0000 (Coordinated Universal Time)
|
|
137
137
|
</div>
|
|
138
138
|
<script src="../../../prettify.js"></script>
|
|
139
139
|
<script>
|
|
@@ -115,7 +115,7 @@ export class EnvironmentAPI extends TestAPI {
|
|
|
115
115
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
116
116
|
Code coverage generated by
|
|
117
117
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
118
|
-
at
|
|
118
|
+
at Wed Feb 15 2023 12:55:13 GMT+0000 (Coordinated Universal Time)
|
|
119
119
|
</div>
|
|
120
120
|
<script src="../../../prettify.js"></script>
|
|
121
121
|
<script>
|
|
@@ -148,7 +148,7 @@ export class GroupsAPI extends TestAPI {
|
|
|
148
148
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
149
149
|
Code coverage generated by
|
|
150
150
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
151
|
-
at
|
|
151
|
+
at Wed Feb 15 2023 12:55:13 GMT+0000 (Coordinated Universal Time)
|
|
152
152
|
</div>
|
|
153
153
|
<script src="../../../prettify.js"></script>
|
|
154
154
|
<script>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">99.45% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>184
|
|
28
|
+
<span class='fraction'>183/184</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">99.45% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>184
|
|
49
|
+
<span class='fraction'>183/184</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -99,13 +99,13 @@
|
|
|
99
99
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
100
100
|
</td>
|
|
101
101
|
<td data-value="100" class="pct high">100%</td>
|
|
102
|
-
<td data-value="
|
|
102
|
+
<td data-value="16" class="abs high">16/16</td>
|
|
103
103
|
<td data-value="100" class="pct high">100%</td>
|
|
104
104
|
<td data-value="0" class="abs high">0/0</td>
|
|
105
105
|
<td data-value="100" class="pct high">100%</td>
|
|
106
106
|
<td data-value="5" class="abs high">5/5</td>
|
|
107
107
|
<td data-value="100" class="pct high">100%</td>
|
|
108
|
-
<td data-value="
|
|
108
|
+
<td data-value="16" class="abs high">16/16</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
<tr>
|
|
@@ -341,7 +341,7 @@
|
|
|
341
341
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
342
342
|
Code coverage generated by
|
|
343
343
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
344
|
-
at
|
|
344
|
+
at Wed Feb 15 2023 12:55:13 GMT+0000 (Coordinated Universal Time)
|
|
345
345
|
</div>
|
|
346
346
|
<script src="../../../prettify.js"></script>
|
|
347
347
|
<script>
|
|
@@ -223,7 +223,7 @@ export default class API {
|
|
|
223
223
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
224
224
|
Code coverage generated by
|
|
225
225
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
226
|
-
at
|
|
226
|
+
at Wed Feb 15 2023 12:55:13 GMT+0000 (Coordinated Universal Time)
|
|
227
227
|
</div>
|
|
228
228
|
<script src="../../../prettify.js"></script>
|
|
229
229
|
<script>
|
|
@@ -121,7 +121,7 @@ export class LicenseAPI extends TestAPI {
|
|
|
121
121
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
122
122
|
Code coverage generated by
|
|
123
123
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
124
|
-
at
|
|
124
|
+
at Wed Feb 15 2023 12:55:13 GMT+0000 (Coordinated Universal Time)
|
|
125
125
|
</div>
|
|
126
126
|
<script src="../../../prettify.js"></script>
|
|
127
127
|
<script>
|