@budibase/worker 2.3.13 → 2.3.14-alpha.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.
Files changed (124) hide show
  1. package/__mocks__/node-fetch.ts +23 -0
  2. package/coverage/clover.xml +384 -369
  3. package/coverage/coverage-final.json +18 -18
  4. package/coverage/lcov-report/index.html +56 -56
  5. package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +1 -1
  6. package/coverage/lcov-report/src/api/controllers/global/configs.ts.html +11 -11
  7. package/coverage/lcov-report/src/api/controllers/global/email.ts.html +1 -1
  8. package/coverage/lcov-report/src/api/controllers/global/events.ts.html +1 -1
  9. package/coverage/lcov-report/src/api/controllers/global/index.html +21 -21
  10. package/coverage/lcov-report/src/api/controllers/global/license.ts.html +1 -1
  11. package/coverage/lcov-report/src/api/controllers/global/roles.ts.html +15 -15
  12. package/coverage/lcov-report/src/api/controllers/global/self.ts.html +1 -1
  13. package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +1 -1
  14. package/coverage/lcov-report/src/api/controllers/global/users.ts.html +6 -6
  15. package/coverage/lcov-report/src/api/controllers/global/workspaces.ts.html +1 -1
  16. package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +1 -1
  17. package/coverage/lcov-report/src/api/controllers/system/environment.ts.html +1 -1
  18. package/coverage/lcov-report/src/api/controllers/system/index.html +1 -1
  19. package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +1 -1
  20. package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +1 -1
  21. package/coverage/lcov-report/src/api/controllers/system/status.ts.html +1 -1
  22. package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +1 -1
  23. package/coverage/lcov-report/src/api/index.html +1 -1
  24. package/coverage/lcov-report/src/api/index.ts.html +6 -6
  25. package/coverage/lcov-report/src/api/routes/global/auth.ts.html +1 -1
  26. package/coverage/lcov-report/src/api/routes/global/configs.ts.html +1 -1
  27. package/coverage/lcov-report/src/api/routes/global/email.ts.html +1 -1
  28. package/coverage/lcov-report/src/api/routes/global/events.ts.html +1 -1
  29. package/coverage/lcov-report/src/api/routes/global/index.html +1 -1
  30. package/coverage/lcov-report/src/api/routes/global/license.ts.html +1 -1
  31. package/coverage/lcov-report/src/api/routes/global/roles.ts.html +1 -1
  32. package/coverage/lcov-report/src/api/routes/global/self.ts.html +1 -1
  33. package/coverage/lcov-report/src/api/routes/global/templates.ts.html +1 -1
  34. package/coverage/lcov-report/src/api/routes/global/users.ts.html +1 -1
  35. package/coverage/lcov-report/src/api/routes/global/workspaces.ts.html +1 -1
  36. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  37. package/coverage/lcov-report/src/api/routes/index.ts.html +1 -1
  38. package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +1 -1
  39. package/coverage/lcov-report/src/api/routes/system/environment.ts.html +1 -1
  40. package/coverage/lcov-report/src/api/routes/system/index.html +1 -1
  41. package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +1 -1
  42. package/coverage/lcov-report/src/api/routes/system/restore.ts.html +1 -1
  43. package/coverage/lcov-report/src/api/routes/system/status.ts.html +1 -1
  44. package/coverage/lcov-report/src/api/routes/system/tenants.ts.html +1 -1
  45. package/coverage/lcov-report/src/api/routes/validation/index.html +1 -1
  46. package/coverage/lcov-report/src/api/routes/validation/index.ts.html +1 -1
  47. package/coverage/lcov-report/src/api/routes/validation/users.ts.html +1 -1
  48. package/coverage/lcov-report/src/constants/index.html +1 -1
  49. package/coverage/lcov-report/src/constants/index.ts.html +1 -1
  50. package/coverage/lcov-report/src/constants/templates/index.html +11 -11
  51. package/coverage/lcov-report/src/constants/templates/index.ts.html +10 -10
  52. package/coverage/lcov-report/src/db/index.html +15 -15
  53. package/coverage/lcov-report/src/db/index.ts.html +10 -10
  54. package/coverage/lcov-report/src/environment.ts.html +8 -8
  55. package/coverage/lcov-report/src/index.html +5 -5
  56. package/coverage/lcov-report/src/index.ts.html +1 -1
  57. package/coverage/lcov-report/src/middleware/cloudRestricted.ts.html +1 -1
  58. package/coverage/lcov-report/src/middleware/index.html +1 -1
  59. package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +1 -1
  60. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  61. package/coverage/lcov-report/src/migrations/index.html +1 -1
  62. package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
  63. package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +1 -1
  64. package/coverage/lcov-report/src/sdk/accounts/index.html +1 -1
  65. package/coverage/lcov-report/src/sdk/accounts/index.ts.html +1 -1
  66. package/coverage/lcov-report/src/sdk/index.html +1 -1
  67. package/coverage/lcov-report/src/sdk/index.ts.html +2 -2
  68. package/coverage/lcov-report/src/sdk/users/events.ts.html +29 -29
  69. package/coverage/lcov-report/src/sdk/users/index.html +15 -15
  70. package/coverage/lcov-report/src/sdk/users/index.ts.html +1 -1
  71. package/coverage/lcov-report/src/sdk/users/users.ts.html +62 -65
  72. package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +151 -61
  73. package/coverage/lcov-report/src/tests/api/accounts.ts.html +1 -1
  74. package/coverage/lcov-report/src/tests/api/auth.ts.html +20 -8
  75. package/coverage/lcov-report/src/tests/api/base.ts.html +1 -1
  76. package/coverage/lcov-report/src/tests/api/configs.ts.html +3 -3
  77. package/coverage/lcov-report/src/tests/api/email.ts.html +1 -1
  78. package/coverage/lcov-report/src/tests/api/environment.ts.html +1 -1
  79. package/coverage/lcov-report/src/tests/api/groups.ts.html +1 -1
  80. package/coverage/lcov-report/src/tests/api/index.html +5 -5
  81. package/coverage/lcov-report/src/tests/api/index.ts.html +1 -1
  82. package/coverage/lcov-report/src/tests/api/license.ts.html +1 -1
  83. package/coverage/lcov-report/src/tests/api/migrations.ts.html +1 -1
  84. package/coverage/lcov-report/src/tests/api/restore.ts.html +1 -1
  85. package/coverage/lcov-report/src/tests/api/roles.ts.html +1 -1
  86. package/coverage/lcov-report/src/tests/api/self.ts.html +1 -1
  87. package/coverage/lcov-report/src/tests/api/status.ts.html +1 -1
  88. package/coverage/lcov-report/src/tests/api/templates.ts.html +1 -1
  89. package/coverage/lcov-report/src/tests/api/tenants.ts.html +1 -1
  90. package/coverage/lcov-report/src/tests/api/users.ts.html +3 -3
  91. package/coverage/lcov-report/src/tests/controllers.ts.html +2 -2
  92. package/coverage/lcov-report/src/tests/index.html +18 -18
  93. package/coverage/lcov-report/src/tests/index.ts.html +2 -2
  94. package/coverage/lcov-report/src/tests/mocks/email.ts.html +1 -1
  95. package/coverage/lcov-report/src/tests/mocks/index.html +1 -1
  96. package/coverage/lcov-report/src/tests/mocks/index.ts.html +1 -1
  97. package/coverage/lcov-report/src/tests/structures/configs.ts.html +1 -1
  98. package/coverage/lcov-report/src/tests/structures/groups.ts.html +1 -1
  99. package/coverage/lcov-report/src/tests/structures/index.html +9 -9
  100. package/coverage/lcov-report/src/tests/structures/index.ts.html +8 -14
  101. package/coverage/lcov-report/src/tests/structures/users.ts.html +5 -5
  102. package/coverage/lcov-report/src/utilities/appService.ts.html +7 -7
  103. package/coverage/lcov-report/src/utilities/email.ts.html +1 -1
  104. package/coverage/lcov-report/src/utilities/fileSystem.ts.html +1 -1
  105. package/coverage/lcov-report/src/utilities/index.html +1 -1
  106. package/coverage/lcov-report/src/utilities/index.ts.html +1 -1
  107. package/coverage/lcov-report/src/utilities/redis.ts.html +1 -1
  108. package/coverage/lcov-report/src/utilities/templates.ts.html +1 -1
  109. package/coverage/lcov-report/src/utilities/users.ts.html +6 -6
  110. package/coverage/lcov.info +629 -607
  111. package/jest-testcontainers-config.js +8 -0
  112. package/jest.config.ts +3 -2
  113. package/package.json +7 -6
  114. package/src/api/routes/global/tests/auth.spec.ts +30 -22
  115. package/src/api/routes/global/tests/configs.spec.ts +114 -94
  116. package/src/api/routes/global/tests/roles.spec.ts +19 -14
  117. package/src/api/routes/global/tests/users.spec.ts +33 -34
  118. package/src/sdk/users/users.ts +0 -1
  119. package/src/tests/TestConfiguration.ts +41 -11
  120. package/src/tests/api/auth.ts +7 -3
  121. package/src/tests/api/configs.ts +2 -2
  122. package/src/tests/api/users.ts +2 -2
  123. package/src/tests/jestSetup.ts +9 -2
  124. package/src/tests/structures/index.ts +0 -2
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.35% </span>
26
+ <span class="strong">90.07% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>103/114</span>
28
+ <span class='fraction'>118/131</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">62.5% </span>
33
+ <span class="strong">71.42% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>10/16</span>
35
+ <span class='fraction'>15/21</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">86.48% </span>
40
+ <span class="strong">87.17% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>32/37</span>
42
+ <span class='fraction'>34/39</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">90.09% </span>
47
+ <span class="strong">89.76% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>100/111</span>
49
+ <span class='fraction'>114/127</span>
50
50
  </div>
51
51
 
52
52
 
@@ -393,7 +393,37 @@
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
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>
397
427
  <span class="cline-any cline-neutral">&nbsp;</span>
398
428
  <span class="cline-any cline-neutral">&nbsp;</span>
399
429
  <span class="cline-any cline-yes">18x</span>
@@ -415,10 +445,12 @@
415
445
  <span class="cline-any cline-neutral">&nbsp;</span>
416
446
  <span class="cline-any cline-neutral">&nbsp;</span>
417
447
  <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-neutral">&nbsp;</span>
418
449
  <span class="cline-any cline-yes">18x</span>
419
450
  <span class="cline-any cline-yes">18x</span>
420
451
  <span class="cline-any cline-neutral">&nbsp;</span>
421
452
  <span class="cline-any cline-yes">18x</span>
453
+ <span class="cline-any cline-yes">18x</span>
422
454
  <span class="cline-any cline-neutral">&nbsp;</span>
423
455
  <span class="cline-any cline-yes">18x</span>
424
456
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -430,7 +462,27 @@
430
462
  <span class="cline-any cline-neutral">&nbsp;</span>
431
463
  <span class="cline-any cline-neutral">&nbsp;</span>
432
464
  <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</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">&nbsp;</span>
473
+ <span class="cline-any cline-no">&nbsp;</span>
474
+ <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-yes">1x</span>
476
+ <span class="cline-any cline-neutral">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
484
  <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-yes">18x</span>
434
486
  <span class="cline-any cline-neutral">&nbsp;</span>
435
487
  <span class="cline-any cline-neutral">&nbsp;</span>
436
488
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -483,36 +535,44 @@
483
535
  <span class="cline-any cline-neutral">&nbsp;</span>
484
536
  <span class="cline-any cline-neutral">&nbsp;</span>
485
537
  <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-yes">158x</span>
538
+ <span class="cline-any cline-yes">185x</span>
487
539
  <span class="cline-any cline-neutral">&nbsp;</span>
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>
540
+ <span class="cline-any cline-yes">185x</span>
541
+ <span class="cline-any cline-yes">185x</span>
542
+ <span class="cline-any cline-yes">185x</span>
543
+ <span class="cline-any cline-yes">185x</span>
544
+ <span class="cline-any cline-yes">185x</span>
493
545
  <span class="cline-any cline-neutral">&nbsp;</span>
494
546
  <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-yes">158x</span>
496
- <span class="cline-any cline-yes">16x</span>
547
+ <span class="cline-any cline-yes">185x</span>
548
+ <span class="cline-any cline-yes">17x</span>
497
549
  <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-yes">158x</span>
550
+ <span class="cline-any cline-yes">185x</span>
499
551
  <span class="cline-any cline-yes">72x</span>
500
552
  <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-yes">158x</span>
502
- <span class="cline-any cline-yes">158x</span>
553
+ <span class="cline-any cline-yes">185x</span>
554
+ <span class="cline-any cline-yes">185x</span>
503
555
  <span class="cline-any cline-neutral">&nbsp;</span>
504
- <span class="cline-any cline-yes">142x</span>
556
+ <span class="cline-any cline-yes">168x</span>
505
557
  <span class="cline-any cline-neutral">&nbsp;</span>
506
558
  <span class="cline-any cline-neutral">&nbsp;</span>
507
559
  <span class="cline-any cline-neutral">&nbsp;</span>
508
560
  <span class="cline-any cline-neutral">&nbsp;</span>
509
561
  <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-yes">18x</span>
511
- <span class="cline-any cline-yes">18x</span>
562
+ <span class="cline-any cline-yes">31x</span>
563
+ <span class="cline-any cline-yes">31x</span>
512
564
  <span class="cline-any cline-neutral">&nbsp;</span>
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>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-yes">32x</span>
567
+ <span class="cline-any cline-yes">31x</span>
568
+ <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
573
+ <span class="cline-any cline-neutral">&nbsp;</span>
574
+ <span class="cline-any cline-no">&nbsp;</span>
575
+ <span class="cline-any cline-no">&nbsp;</span>
516
576
  <span class="cline-any cline-neutral">&nbsp;</span>
517
577
  <span class="cline-any cline-neutral">&nbsp;</span>
518
578
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -528,6 +588,8 @@
528
588
  <span class="cline-any cline-neutral">&nbsp;</span>
529
589
  <span class="cline-any cline-yes">6x</span>
530
590
  <span class="cline-any cline-neutral">&nbsp;</span>
591
+ <span class="cline-any cline-yes">6x</span>
592
+ <span class="cline-any cline-neutral">&nbsp;</span>
531
593
  <span class="cline-any cline-neutral">&nbsp;</span>
532
594
  <span class="cline-any cline-yes">6x</span>
533
595
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -544,10 +606,10 @@
544
606
  <span class="cline-any cline-neutral">&nbsp;</span>
545
607
  <span class="cline-any cline-neutral">&nbsp;</span>
546
608
  <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-yes">475x</span>
548
- <span class="cline-any cline-yes">475x</span>
609
+ <span class="cline-any cline-yes">570x</span>
610
+ <span class="cline-any cline-yes">570x</span>
549
611
  <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-yes">407x</span>
612
+ <span class="cline-any cline-yes">337x</span>
551
613
  <span class="cline-any cline-neutral">&nbsp;</span>
552
614
  <span class="cline-any cline-neutral">&nbsp;</span>
553
615
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -560,7 +622,7 @@
560
622
  <span class="cline-any cline-neutral">&nbsp;</span>
561
623
  <span class="cline-any cline-neutral">&nbsp;</span>
562
624
  <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-yes">48x</span>
625
+ <span class="cline-any cline-yes">74x</span>
564
626
  <span class="cline-any cline-neutral">&nbsp;</span>
565
627
  <span class="cline-any cline-neutral">&nbsp;</span>
566
628
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -568,7 +630,7 @@
568
630
  <span class="cline-any cline-neutral">&nbsp;</span>
569
631
  <span class="cline-any cline-neutral">&nbsp;</span>
570
632
  <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-yes">48x</span>
633
+ <span class="cline-any cline-yes">74x</span>
572
634
  <span class="cline-any cline-neutral">&nbsp;</span>
573
635
  <span class="cline-any cline-neutral">&nbsp;</span>
574
636
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -597,9 +659,9 @@
597
659
  <span class="cline-any cline-neutral">&nbsp;</span>
598
660
  <span class="cline-any cline-yes">78x</span>
599
661
  <span class="cline-any cline-yes">78x</span>
600
- <span class="cline-any cline-yes">78x</span>
601
- <span class="cline-any cline-no">&nbsp;</span>
602
- <span class="cline-any cline-no">&nbsp;</span>
662
+ <span class="cline-any cline-yes">65x</span>
663
+ <span class="cline-any cline-yes">13x</span>
664
+ <span class="cline-any cline-yes">13x</span>
603
665
  <span class="cline-any cline-neutral">&nbsp;</span>
604
666
  <span class="cline-any cline-no">&nbsp;</span>
605
667
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -616,34 +678,32 @@
616
678
  <span class="cline-any cline-neutral">&nbsp;</span>
617
679
  <span class="cline-any cline-neutral">&nbsp;</span>
618
680
  <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-yes">18x</span>
681
+ <span class="cline-any cline-yes">32x</span>
620
682
  <span class="cline-any cline-neutral">&nbsp;</span>
621
683
  <span class="cline-any cline-neutral">&nbsp;</span>
684
+ <span class="cline-any cline-yes">32x</span>
622
685
  <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-yes">18x</span>
624
686
  <span class="cline-any cline-neutral">&nbsp;</span>
625
687
  <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-yes">18x</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
688
+ <span class="cline-any cline-yes">31x</span>
629
689
  <span class="cline-any cline-neutral">&nbsp;</span>
630
690
  <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-yes">18x</span>
691
+ <span class="cline-any cline-yes">31x</span>
632
692
  <span class="cline-any cline-neutral">&nbsp;</span>
633
693
  <span class="cline-any cline-neutral">&nbsp;</span>
634
694
  <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-yes">74x</span>
636
- <span class="cline-any cline-yes">74x</span>
695
+ <span class="cline-any cline-yes">100x</span>
696
+ <span class="cline-any cline-yes">100x</span>
637
697
  <span class="cline-any cline-neutral">&nbsp;</span>
638
698
  <span class="cline-any cline-neutral">&nbsp;</span>
639
699
  <span class="cline-any cline-neutral">&nbsp;</span>
640
700
  <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-yes">64x</span>
642
- <span class="cline-any cline-yes">17x</span>
701
+ <span class="cline-any cline-yes">91x</span>
702
+ <span class="cline-any cline-yes">15x</span>
643
703
  <span class="cline-any cline-neutral">&nbsp;</span>
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>
704
+ <span class="cline-any cline-yes">91x</span>
705
+ <span class="cline-any cline-yes">90x</span>
706
+ <span class="cline-any cline-yes">90x</span>
647
707
  <span class="cline-any cline-neutral">&nbsp;</span>
648
708
  <span class="cline-any cline-neutral">&nbsp;</span>
649
709
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -745,22 +805,44 @@ import {
745
805
  auth,
746
806
  constants,
747
807
  env as coreEnv,
808
+ DEFAULT_TENANT_ID,
748
809
  } from "@budibase/backend-core"
749
- import structures, { TENANT_ID, TENANT_1, CSRF_TOKEN } from "./structures"
810
+ import structures, { TENANT_ID, CSRF_TOKEN } from "./structures"
750
811
  import { CreateUserResponse, User, AuthToken } from "@budibase/types"
751
812
  import API from "./api"
813
+ import sdk from "../sdk"
752
814
  &nbsp;
753
815
  enum Mode {
754
816
  CLOUD = "cloud",
755
817
  SELF = "self",
756
818
  }
757
819
  &nbsp;
820
+ async function retry&lt;T extends (...arg0: any[]) =&gt; any&gt;(
821
+ fn: T,
822
+ maxTry: number = 5,
823
+ retryCount = 1
824
+ ): Promise&lt;Awaited&lt;ReturnType&lt;T&gt;&gt;&gt; {
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 &gt; 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
+ &nbsp;
758
839
  class TestConfiguration {
759
840
  server: any
760
841
  request: any
761
842
  api: API
762
843
  defaultUser?: User
763
844
  tenant1User?: User
845
+ #tenantId?: string
764
846
  &nbsp;
765
847
  constructor(
766
848
  opts: { openServer: boolean; mode: Mode } = {
@@ -837,13 +919,21 @@ class TestConfiguration {
837
919
  // SETUP / TEARDOWN
838
920
  &nbsp;
839
921
  async beforeAll() {
840
- await this.createDefaultUser()
841
- await this.createSession(this.defaultUser!)
922
+ try {
923
+ this.#tenantId = structures.tenant.id()
842
924
  &nbsp;
843
- await tenancy.doInTenant(TENANT_1, async () =&gt; {
844
- await this.createTenant1User()
845
- await this.createSession(this.tenant1User!)
846
- })
925
+ // Running tests in parallel causes issues creating the globaldb twice. This ensures the db is properly created before starting
926
+ await retry(async () =&gt; await this.createDefaultUser())
927
+ await this.createSession(this.defaultUser!)
928
+ &nbsp;
929
+ await tenancy.doInTenant(this.#tenantId, async () =&gt; {
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
+ }
847
937
  }
848
938
  &nbsp;
849
939
  async afterAll() {
@@ -857,6 +947,8 @@ class TestConfiguration {
857
947
  createTenant = async (): Promise&lt;User&gt; =&gt; {
858
948
  // create user / new tenant
859
949
  const res = await this.api.users.createAdminUser()
950
+ &nbsp;
951
+ await sdk.users.addTenant(res.tenantId, res.userId, res.email)
860
952
  &nbsp;
861
953
  // return the created user
862
954
  const userRes = await this.api.users.getUser(res.userId, {
@@ -877,7 +969,7 @@ class TestConfiguration {
877
969
  try {
878
970
  return tenancy.getTenantId()
879
971
  } catch (e: any) {
880
- return TENANT_ID
972
+ return DEFAULT_TENANT_ID
881
973
  }
882
974
  }
883
975
  &nbsp;
@@ -928,9 +1020,9 @@ class TestConfiguration {
928
1020
  const tenantId = this.getTenantId()
929
1021
  if (tenantId === TENANT_ID) {
930
1022
  return this.authHeaders(this.defaultUser!)
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 {
1023
+ } else if (tenantId === this.getTenantId()) {
1024
+ return this.authHeaders(this.tenant1User!)
1025
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
934
1026
  <span class="cstat-no" title="statement not covered" > throw new Error("could not determine auth headers to use")</span>
935
1027
  }
936
1028
  }
@@ -947,7 +1039,6 @@ class TestConfiguration {
947
1039
  &nbsp;
948
1040
  async createDefaultUser() {
949
1041
  const user = structures.users.adminUser({
950
- email: "test@test.com",
951
1042
  password: "test",
952
1043
  })
953
1044
  this.defaultUser = await this.createUser(user)
@@ -955,7 +1046,6 @@ class TestConfiguration {
955
1046
  &nbsp;
956
1047
  async createTenant1User() {
957
1048
  const user = structures.users.adminUser({
958
- email: "tenant1@test.com",
959
1049
  password: "test",
960
1050
  })
961
1051
  this.tenant1User = await this.createUser(user)
@@ -1060,7 +1150,7 @@ export default TestConfiguration
1060
1150
  <div class='footer quiet pad2 space-top1 center small'>
1061
1151
  Code coverage generated by
1062
1152
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1063
- at Tue Feb 14 2023 15:12:48 GMT+0000 (Coordinated Universal Time)
1153
+ at Tue Feb 14 2023 18:08:21 GMT+0000 (Coordinated Universal Time)
1064
1154
  </div>
1065
1155
  <script src="../../prettify.js"></script>
1066
1156
  <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 Tue Feb 14 2023 15:12:48 GMT+0000 (Coordinated Universal Time)
148
+ at Tue Feb 14 2023 18:08:21 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'>16/16</span>
28
+ <span class='fraction'>17/17</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'>16/16</span>
49
+ <span class='fraction'>17/17</span>
50
50
  </div>
51
51
 
52
52
 
@@ -108,7 +108,12 @@
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
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">&nbsp;</span>
112
117
  <span class="cline-any cline-yes">18x</span>
113
118
  <span class="cline-any cline-neutral">&nbsp;</span>
114
119
  <span class="cline-any cline-yes">18x</span>
@@ -138,6 +143,9 @@
138
143
  <span class="cline-any cline-yes">2x</span>
139
144
  <span class="cline-any cline-yes">2x</span>
140
145
  <span class="cline-any cline-yes">2x</span>
146
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
+ <span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-neutral">&nbsp;</span>
141
149
  <span class="cline-any cline-yes">2x</span>
142
150
  <span class="cline-any cline-neutral">&nbsp;</span>
143
151
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -153,7 +161,8 @@
153
161
  <span class="cline-any cline-yes">2x</span>
154
162
  <span class="cline-any cline-neutral">&nbsp;</span>
155
163
  <span class="cline-any cline-neutral">&nbsp;</span>
156
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import TestConfiguration from "../TestConfiguration"
164
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import structures from "../structures"
165
+ import TestConfiguration from "../TestConfiguration"
157
166
  import { TestAPI } from "./base"
158
167
  &nbsp;
159
168
  export class AuthAPI extends TestAPI {
@@ -179,14 +188,17 @@ export class AuthAPI extends TestAPI {
179
188
  .expect(200)
180
189
  }
181
190
  &nbsp;
182
- requestPasswordReset = async (sendMailMock: any) =&gt; {
191
+ requestPasswordReset = async (sendMailMock: any, userEmail: string) =&gt; {
183
192
  await this.config.saveSmtpConfig()
184
193
  await this.config.saveSettingsConfig()
185
- await this.config.createUser()
194
+ await this.config.createUser({
195
+ ...structures.users.user(),
196
+ email: userEmail,
197
+ })
186
198
  const res = await this.request
187
199
  .post(`/api/global/auth/${this.config.getTenantId()}/reset`)
188
200
  .send({
189
- email: "test@test.com",
201
+ email: userEmail,
190
202
  })
191
203
  .expect("Content-Type", /json/)
192
204
  .expect(200)
@@ -205,7 +217,7 @@ export class AuthAPI extends TestAPI {
205
217
  <div class='footer quiet pad2 space-top1 center small'>
206
218
  Code coverage generated by
207
219
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
208
- at Tue Feb 14 2023 15:12:48 GMT+0000 (Coordinated Universal Time)
220
+ at Tue Feb 14 2023 18:08:21 GMT+0000 (Coordinated Universal Time)
209
221
  </div>
210
222
  <script src="../../../prettify.js"></script>
211
223
  <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 Tue Feb 14 2023 15:12:48 GMT+0000 (Coordinated Universal Time)
121
+ at Tue Feb 14 2023 18:08:21 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("Content-Type", /json/)
173
172
  .expect(200)
173
+ .expect("Content-Type", /json/)
174
174
  }
175
175
  &nbsp;
176
176
  saveConfig = (data: any) =&gt; {
@@ -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("Content-Type", /json/)
182
181
  .expect(200)
182
+ .expect("Content-Type", /json/)
183
183
  }
184
184
  &nbsp;
185
185
  OIDCCallback = (configId: string, preAuthRes: any) =&gt; {
@@ -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 Tue Feb 14 2023 15:12:48 GMT+0000 (Coordinated Universal Time)
214
+ at Tue Feb 14 2023 18:08:21 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 Tue Feb 14 2023 15:12:48 GMT+0000 (Coordinated Universal Time)
136
+ at Tue Feb 14 2023 18:08:21 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 Tue Feb 14 2023 15:12:48 GMT+0000 (Coordinated Universal Time)
118
+ at Tue Feb 14 2023 18:08:21 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 Tue Feb 14 2023 15:12:48 GMT+0000 (Coordinated Universal Time)
151
+ at Tue Feb 14 2023 18:08:21 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'>183/184</span>
28
+ <span class='fraction'>184/185</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'>183/184</span>
49
+ <span class='fraction'>184/185</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="16" class="abs high">16/16</td>
102
+ <td data-value="17" class="abs high">17/17</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="16" class="abs high">16/16</td>
108
+ <td data-value="17" class="abs high">17/17</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 Tue Feb 14 2023 15:12:48 GMT+0000 (Coordinated Universal Time)
344
+ at Tue Feb 14 2023 18:08:21 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 Tue Feb 14 2023 15:12:48 GMT+0000 (Coordinated Universal Time)
226
+ at Tue Feb 14 2023 18:08:21 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 Tue Feb 14 2023 15:12:48 GMT+0000 (Coordinated Universal Time)
124
+ at Tue Feb 14 2023 18:08:21 GMT+0000 (Coordinated Universal Time)
125
125
  </div>
126
126
  <script src="../../../prettify.js"></script>
127
127
  <script>