@budibase/worker 2.1.22-alpha.5 → 2.1.22-alpha.6

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 (156) hide show
  1. package/__mocks__/oauth.ts +57 -0
  2. package/coverage/clover.xml +1093 -1033
  3. package/coverage/coverage-final.json +77 -72
  4. package/coverage/lcov-report/index.html +83 -83
  5. package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +70 -70
  6. package/coverage/lcov-report/src/api/controllers/global/configs.js.html +35 -35
  7. package/coverage/lcov-report/src/api/controllers/global/email.js.html +4 -4
  8. package/coverage/lcov-report/src/api/controllers/global/index.html +38 -38
  9. package/coverage/lcov-report/src/api/controllers/global/license.ts.html +7 -7
  10. package/coverage/lcov-report/src/api/controllers/global/roles.js.html +10 -10
  11. package/coverage/lcov-report/src/api/controllers/global/self.ts.html +58 -58
  12. package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +11 -11
  13. package/coverage/lcov-report/src/api/controllers/global/users.ts.html +75 -69
  14. package/coverage/lcov-report/src/api/controllers/global/workspaces.js.html +7 -7
  15. package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +4 -4
  16. package/coverage/lcov-report/src/api/controllers/system/{environment.js.html → environment.ts.html} +21 -18
  17. package/coverage/lcov-report/src/api/controllers/system/index.html +63 -63
  18. package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +23 -23
  19. package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +22 -22
  20. package/coverage/lcov-report/src/api/controllers/system/{status.js.html → status.ts.html} +29 -26
  21. package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +34 -163
  22. package/coverage/lcov-report/src/api/index.html +11 -11
  23. package/coverage/lcov-report/src/api/index.ts.html +113 -44
  24. package/coverage/lcov-report/src/api/routes/global/auth.js.html +38 -89
  25. package/coverage/lcov-report/src/api/routes/global/configs.js.html +17 -17
  26. package/coverage/lcov-report/src/api/routes/global/email.js.html +11 -11
  27. package/coverage/lcov-report/src/api/routes/global/index.html +11 -11
  28. package/coverage/lcov-report/src/api/routes/global/license.ts.html +6 -6
  29. package/coverage/lcov-report/src/api/routes/global/roles.js.html +7 -7
  30. package/coverage/lcov-report/src/api/routes/global/self.ts.html +8 -8
  31. package/coverage/lcov-report/src/api/routes/global/templates.ts.html +11 -11
  32. package/coverage/lcov-report/src/api/routes/global/users.js.html +17 -17
  33. package/coverage/lcov-report/src/api/routes/global/workspaces.js.html +10 -10
  34. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  35. package/coverage/lcov-report/src/api/routes/index.ts.html +19 -19
  36. package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +7 -7
  37. package/coverage/lcov-report/src/api/routes/system/{environment.js.html → environment.ts.html} +11 -11
  38. package/coverage/lcov-report/src/api/routes/system/index.html +4 -4
  39. package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +7 -7
  40. package/coverage/lcov-report/src/api/routes/system/restore.ts.html +6 -6
  41. package/coverage/lcov-report/src/api/routes/system/{status.js.html → status.ts.html} +11 -11
  42. package/coverage/lcov-report/src/api/routes/system/{tenants.js.html → tenants.ts.html} +20 -17
  43. package/coverage/lcov-report/src/api/routes/validation/index.html +1 -1
  44. package/coverage/lcov-report/src/api/routes/validation/index.ts.html +2 -2
  45. package/coverage/lcov-report/src/api/routes/validation/users.ts.html +13 -13
  46. package/coverage/lcov-report/src/constants/index.html +1 -1
  47. package/coverage/lcov-report/src/constants/index.js.html +18 -18
  48. package/coverage/lcov-report/src/constants/templates/index.html +1 -1
  49. package/coverage/lcov-report/src/constants/templates/index.js.html +10 -10
  50. package/coverage/lcov-report/src/db/index.html +1 -1
  51. package/coverage/lcov-report/src/db/index.ts.html +8 -8
  52. package/coverage/lcov-report/src/environment.ts.html +15 -15
  53. package/coverage/lcov-report/src/index.html +1 -1
  54. package/coverage/lcov-report/src/index.ts.html +40 -40
  55. package/coverage/lcov-report/src/middleware/cloudRestricted.js.html +22 -22
  56. package/coverage/lcov-report/src/middleware/index.html +21 -21
  57. package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +3 -3
  58. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  59. package/coverage/lcov-report/src/migrations/index.html +1 -1
  60. package/coverage/lcov-report/src/migrations/index.ts.html +17 -17
  61. package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +6 -6
  62. package/coverage/lcov-report/src/sdk/accounts/index.html +1 -1
  63. package/coverage/lcov-report/src/sdk/accounts/index.ts.html +2 -2
  64. package/coverage/lcov-report/src/sdk/index.html +1 -1
  65. package/coverage/lcov-report/src/sdk/index.ts.html +4 -4
  66. package/coverage/lcov-report/src/sdk/users/events.ts.html +43 -43
  67. package/coverage/lcov-report/src/sdk/users/index.html +19 -19
  68. package/coverage/lcov-report/src/sdk/users/index.ts.html +2 -2
  69. package/coverage/lcov-report/src/sdk/users/users.ts.html +99 -99
  70. package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +261 -123
  71. package/coverage/lcov-report/src/tests/api/accounts.ts.html +12 -21
  72. package/coverage/lcov-report/src/tests/api/auth.ts.html +11 -20
  73. package/coverage/lcov-report/src/tests/api/base.ts.html +133 -0
  74. package/coverage/lcov-report/src/tests/api/configs.ts.html +44 -23
  75. package/coverage/lcov-report/src/tests/api/email.ts.html +9 -18
  76. package/coverage/lcov-report/src/tests/api/environment.ts.html +130 -0
  77. package/coverage/lcov-report/src/tests/api/index.html +106 -16
  78. package/coverage/lcov-report/src/tests/api/index.ts.html +62 -17
  79. package/coverage/lcov-report/src/tests/{structures/accounts.ts.html → api/migrations.ts.html} +31 -37
  80. package/coverage/lcov-report/src/tests/api/restore.ts.html +127 -0
  81. package/coverage/lcov-report/src/tests/api/self.ts.html +31 -16
  82. package/coverage/lcov-report/src/tests/api/status.ts.html +121 -0
  83. package/coverage/lcov-report/src/tests/api/tenants.ts.html +130 -0
  84. package/coverage/lcov-report/src/tests/api/users.ts.html +121 -25
  85. package/coverage/lcov-report/src/tests/controllers.js.html +2 -2
  86. package/coverage/lcov-report/src/tests/index.html +20 -20
  87. package/coverage/lcov-report/src/tests/index.ts.html +21 -9
  88. package/coverage/lcov-report/src/tests/mocks/email.js.html +2 -2
  89. package/coverage/lcov-report/src/tests/mocks/index.html +1 -1
  90. package/coverage/lcov-report/src/tests/mocks/index.ts.html +4 -4
  91. package/coverage/lcov-report/src/tests/structures/configs.js.html +8 -8
  92. package/coverage/lcov-report/src/tests/structures/groups.ts.html +2 -2
  93. package/coverage/lcov-report/src/tests/structures/index.html +9 -24
  94. package/coverage/lcov-report/src/tests/structures/index.ts.html +21 -15
  95. package/coverage/lcov-report/src/tests/structures/users.ts.html +13 -10
  96. package/coverage/lcov-report/src/utilities/appService.js.html +11 -11
  97. package/coverage/lcov-report/src/utilities/email.js.html +16 -16
  98. package/coverage/lcov-report/src/utilities/fileSystem.js.html +4 -4
  99. package/coverage/lcov-report/src/utilities/index.html +1 -1
  100. package/coverage/lcov-report/src/utilities/index.js.html +2 -2
  101. package/coverage/lcov-report/src/utilities/redis.js.html +13 -13
  102. package/coverage/lcov-report/src/utilities/templates.js.html +7 -7
  103. package/coverage/lcov-report/src/utilities/users.js.html +8 -8
  104. package/coverage/lcov.info +1685 -1511
  105. package/package.json +8 -6
  106. package/scripts/localdomain.js +33 -7
  107. package/src/api/controllers/global/auth.ts +1 -1
  108. package/src/api/controllers/global/users.ts +3 -1
  109. package/src/api/controllers/system/{environment.js → environment.ts} +3 -2
  110. package/src/api/controllers/system/{status.js → status.ts} +4 -3
  111. package/src/api/controllers/system/tenants.ts +8 -51
  112. package/src/api/index.ts +29 -6
  113. package/src/api/routes/global/auth.js +22 -39
  114. package/src/api/routes/global/tests/auth.spec.ts +134 -64
  115. package/src/api/routes/global/tests/configs.spec.ts +5 -6
  116. package/src/api/routes/global/tests/email.spec.ts +4 -3
  117. package/src/api/routes/global/tests/license.spec.ts +31 -0
  118. package/src/api/routes/global/tests/realEmail.spec.ts +2 -3
  119. package/src/api/routes/global/tests/roles.spec.ts +27 -0
  120. package/src/api/routes/global/tests/self.spec.ts +3 -4
  121. package/src/api/routes/global/tests/templates.spec.ts +35 -0
  122. package/src/api/routes/global/tests/users.spec.ts +51 -43
  123. package/src/api/routes/global/tests/workspaces.spec.ts +29 -0
  124. package/src/api/routes/system/environment.ts +8 -0
  125. package/src/api/routes/system/status.ts +8 -0
  126. package/src/api/routes/system/tenants.ts +13 -0
  127. package/src/api/routes/system/tests/accounts.spec.ts +5 -6
  128. package/src/api/routes/system/tests/environment.spec.ts +29 -0
  129. package/src/api/routes/system/tests/migrations.spec.ts +63 -0
  130. package/src/api/routes/system/tests/restore.spec.ts +36 -0
  131. package/src/api/routes/system/tests/status.spec.ts +48 -0
  132. package/src/api/routes/system/tests/tenants.spec.ts +61 -0
  133. package/src/middleware/tests/tenancy.spec.ts +73 -0
  134. package/src/tests/TestConfiguration.ts +88 -42
  135. package/src/tests/api/accounts.ts +5 -8
  136. package/src/tests/api/auth.ts +3 -6
  137. package/src/tests/api/base.ts +16 -0
  138. package/src/tests/api/configs.ts +15 -8
  139. package/src/tests/api/email.ts +3 -6
  140. package/src/tests/api/environment.ts +15 -0
  141. package/src/tests/api/index.ts +15 -0
  142. package/src/tests/api/migrations.ts +22 -0
  143. package/src/tests/api/restore.ts +14 -0
  144. package/src/tests/api/self.ts +11 -6
  145. package/src/tests/api/status.ts +12 -0
  146. package/src/tests/api/tenants.ts +15 -0
  147. package/src/tests/api/users.ts +38 -6
  148. package/src/tests/index.ts +4 -0
  149. package/src/tests/jestSetup.ts +7 -1
  150. package/src/tests/structures/index.ts +4 -2
  151. package/src/tests/structures/users.ts +1 -0
  152. package/__mocks__/node-fetch.ts +0 -1
  153. package/src/api/routes/system/environment.js +0 -8
  154. package/src/api/routes/system/status.js +0 -8
  155. package/src/api/routes/system/tenants.js +0 -12
  156. package/src/tests/structures/accounts.ts +0 -24
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">93.68% </span>
26
+ <span class="strong">93.69% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>89/95</span>
28
+ <span class='fraction'>104/111</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80% </span>
33
+ <span class="strong">75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>12/15</span>
35
+ <span class='fraction'>12/16</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">87.09% </span>
40
+ <span class="strong">89.18% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>27/31</span>
42
+ <span class='fraction'>33/37</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.61% </span>
47
+ <span class="strong">93.57% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>88/94</span>
49
+ <span class='fraction'>102/109</span>
50
50
  </div>
51
51
 
52
52
 
@@ -336,14 +336,60 @@
336
336
  <a name='L271'></a><a href='#L271'>271</a>
337
337
  <a name='L272'></a><a href='#L272'>272</a>
338
338
  <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
340
- <span class="cline-any cline-yes">7x</span>
341
- <span class="cline-any cline-yes">7x</span>
342
- <span class="cline-any cline-yes">7x</span>
343
- <span class="cline-any cline-yes">7x</span>
344
- <span class="cline-any cline-yes">7x</span>
345
- <span class="cline-any cline-yes">7x</span>
346
- <span class="cline-any cline-yes">7x</span>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
386
+ <span class="cline-any cline-yes">17x</span>
387
+ <span class="cline-any cline-yes">17x</span>
388
+ <span class="cline-any cline-yes">17x</span>
389
+ <span class="cline-any cline-yes">17x</span>
390
+ <span class="cline-any cline-yes">17x</span>
391
+ <span class="cline-any cline-yes">17x</span>
392
+ <span class="cline-any cline-yes">17x</span>
347
393
  <span class="cline-any cline-neutral">&nbsp;</span>
348
394
  <span class="cline-any cline-neutral">&nbsp;</span>
349
395
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -351,15 +397,15 @@
351
397
  <span class="cline-any cline-neutral">&nbsp;</span>
352
398
  <span class="cline-any cline-neutral">&nbsp;</span>
353
399
  <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-yes">7x</span>
355
- <span class="cline-any cline-yes">7x</span>
356
400
  <span class="cline-any cline-neutral">&nbsp;</span>
357
401
  <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-yes">7x</span>
359
- <span class="cline-any cline-yes">7x</span>
360
- <span class="cline-any cline-yes">7x</span>
402
+ <span class="cline-any cline-yes">17x</span>
361
403
  <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-yes">17x</span>
362
405
  <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-yes">17x</span>
407
+ <span class="cline-any cline-yes">17x</span>
408
+ <span class="cline-any cline-yes">17x</span>
363
409
  <span class="cline-any cline-neutral">&nbsp;</span>
364
410
  <span class="cline-any cline-neutral">&nbsp;</span>
365
411
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -372,18 +418,23 @@
372
418
  <span class="cline-any cline-neutral">&nbsp;</span>
373
419
  <span class="cline-any cline-neutral">&nbsp;</span>
374
420
  <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">7x</span>
376
- <span class="cline-any cline-yes">7x</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-neutral">&nbsp;</span>
424
+ <span class="cline-any cline-yes">17x</span>
425
+ <span class="cline-any cline-yes">17x</span>
377
426
  <span class="cline-any cline-no">&nbsp;</span>
378
427
  <span class="cline-any cline-no">&nbsp;</span>
379
428
  <span class="cline-any cline-neutral">&nbsp;</span>
380
429
  <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-yes">7x</span>
382
- <span class="cline-any cline-yes">7x</span>
383
- <span class="cline-any cline-yes">7x</span>
430
+ <span class="cline-any cline-yes">17x</span>
431
+ <span class="cline-any cline-yes">17x</span>
432
+ <span class="cline-any cline-yes">17x</span>
433
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-yes">17x</span>
384
435
  <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-yes">7x</span>
386
436
  <span class="cline-any cline-neutral">&nbsp;</span>
437
+ <span class="cline-any cline-yes">17x</span>
387
438
  <span class="cline-any cline-neutral">&nbsp;</span>
388
439
  <span class="cline-any cline-neutral">&nbsp;</span>
389
440
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -392,94 +443,99 @@
392
443
  <span class="cline-any cline-neutral">&nbsp;</span>
393
444
  <span class="cline-any cline-neutral">&nbsp;</span>
394
445
  <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-yes">7x</span>
396
- <span class="cline-any cline-yes">9x</span>
446
+ <span class="cline-any cline-yes">17x</span>
447
+ <span class="cline-any cline-yes">25x</span>
448
+ <span class="cline-any cline-yes">25x</span>
397
449
  <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-yes">9x</span>
399
450
  <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-yes">9x</span>
451
+ <span class="cline-any cline-yes">17x</span>
452
+ <span class="cline-any cline-yes">25x</span>
453
+ <span class="cline-any cline-yes">25x</span>
401
454
  <span class="cline-any cline-neutral">&nbsp;</span>
402
455
  <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-yes">7x</span>
404
- <span class="cline-any cline-yes">2x</span>
456
+ <span class="cline-any cline-yes">17x</span>
457
+ <span class="cline-any cline-yes">21x</span>
458
+ <span class="cline-any cline-yes">21x</span>
405
459
  <span class="cline-any cline-neutral">&nbsp;</span>
406
- <span class="cline-any cline-yes">2x</span>
407
460
  <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-yes">2x</span>
461
+ <span class="cline-any cline-yes">17x</span>
462
+ <span class="cline-any cline-yes">4x</span>
463
+ <span class="cline-any cline-yes">4x</span>
409
464
  <span class="cline-any cline-neutral">&nbsp;</span>
410
465
  <span class="cline-any cline-neutral">&nbsp;</span>
411
466
  <span class="cline-any cline-neutral">&nbsp;</span>
412
467
  <span class="cline-any cline-neutral">&nbsp;</span>
413
468
  <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-yes">131x</span>
469
+ <span class="cline-any cline-yes">152x</span>
415
470
  <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-yes">131x</span>
417
- <span class="cline-any cline-yes">131x</span>
418
- <span class="cline-any cline-yes">131x</span>
419
- <span class="cline-any cline-yes">131x</span>
420
- <span class="cline-any cline-yes">131x</span>
471
+ <span class="cline-any cline-yes">152x</span>
472
+ <span class="cline-any cline-yes">152x</span>
473
+ <span class="cline-any cline-yes">152x</span>
474
+ <span class="cline-any cline-yes">152x</span>
475
+ <span class="cline-any cline-yes">152x</span>
421
476
  <span class="cline-any cline-neutral">&nbsp;</span>
422
477
  <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-yes">131x</span>
424
- <span class="cline-any cline-yes">12x</span>
478
+ <span class="cline-any cline-yes">152x</span>
479
+ <span class="cline-any cline-yes">16x</span>
425
480
  <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-yes">131x</span>
481
+ <span class="cline-any cline-yes">152x</span>
427
482
  <span class="cline-any cline-yes">72x</span>
428
483
  <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-yes">131x</span>
430
- <span class="cline-any cline-yes">131x</span>
484
+ <span class="cline-any cline-yes">152x</span>
485
+ <span class="cline-any cline-yes">152x</span>
431
486
  <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-yes">119x</span>
487
+ <span class="cline-any cline-yes">136x</span>
433
488
  <span class="cline-any cline-neutral">&nbsp;</span>
434
489
  <span class="cline-any cline-neutral">&nbsp;</span>
435
490
  <span class="cline-any cline-neutral">&nbsp;</span>
436
491
  <span class="cline-any cline-neutral">&nbsp;</span>
437
492
  <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-yes">7x</span>
439
- <span class="cline-any cline-yes">7x</span>
493
+ <span class="cline-any cline-yes">17x</span>
494
+ <span class="cline-any cline-yes">17x</span>
440
495
  <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-yes">7x</span>
442
- <span class="cline-any cline-yes">7x</span>
443
- <span class="cline-any cline-yes">7x</span>
496
+ <span class="cline-any cline-yes">17x</span>
497
+ <span class="cline-any cline-yes">17x</span>
498
+ <span class="cline-any cline-yes">17x</span>
444
499
  <span class="cline-any cline-neutral">&nbsp;</span>
445
500
  <span class="cline-any cline-neutral">&nbsp;</span>
446
501
  <span class="cline-any cline-neutral">&nbsp;</span>
447
502
  <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-yes">7x</span>
449
- <span class="cline-any cline-yes">7x</span>
503
+ <span class="cline-any cline-yes">17x</span>
504
+ <span class="cline-any cline-yes">17x</span>
450
505
  <span class="cline-any cline-neutral">&nbsp;</span>
451
506
  <span class="cline-any cline-neutral">&nbsp;</span>
452
507
  <span class="cline-any cline-neutral">&nbsp;</span>
453
508
  <span class="cline-any cline-neutral">&nbsp;</span>
454
509
  <span class="cline-any cline-neutral">&nbsp;</span>
510
+ <span class="cline-any cline-yes">17x</span>
455
511
  <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-yes">381x</span>
457
- <span class="cline-any cline-yes">381x</span>
512
+ <span class="cline-any cline-yes">6x</span>
458
513
  <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-yes">358x</span>
460
514
  <span class="cline-any cline-neutral">&nbsp;</span>
515
+ <span class="cline-any cline-yes">6x</span>
461
516
  <span class="cline-any cline-neutral">&nbsp;</span>
462
517
  <span class="cline-any cline-neutral">&nbsp;</span>
463
518
  <span class="cline-any cline-neutral">&nbsp;</span>
464
519
  <span class="cline-any cline-neutral">&nbsp;</span>
465
520
  <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-yes">7x</span>
467
521
  <span class="cline-any cline-neutral">&nbsp;</span>
468
522
  <span class="cline-any cline-neutral">&nbsp;</span>
523
+ <span class="cline-any cline-yes">6x</span>
524
+ <span class="cline-any cline-yes">6x</span>
469
525
  <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-yes">7x</span>
526
+ <span class="cline-any cline-yes">6x</span>
471
527
  <span class="cline-any cline-neutral">&nbsp;</span>
472
528
  <span class="cline-any cline-neutral">&nbsp;</span>
473
529
  <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-yes">7x</span>
530
+ <span class="cline-any cline-yes">440x</span>
531
+ <span class="cline-any cline-yes">440x</span>
475
532
  <span class="cline-any cline-neutral">&nbsp;</span>
533
+ <span class="cline-any cline-yes">373x</span>
476
534
  <span class="cline-any cline-neutral">&nbsp;</span>
477
535
  <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-yes">7x</span>
479
536
  <span class="cline-any cline-neutral">&nbsp;</span>
480
537
  <span class="cline-any cline-neutral">&nbsp;</span>
481
538
  <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-yes">16x</span>
483
539
  <span class="cline-any cline-neutral">&nbsp;</span>
484
540
  <span class="cline-any cline-neutral">&nbsp;</span>
485
541
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -487,29 +543,44 @@
487
543
  <span class="cline-any cline-neutral">&nbsp;</span>
488
544
  <span class="cline-any cline-neutral">&nbsp;</span>
489
545
  <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-yes">69x</span>
546
+ <span class="cline-any cline-yes">44x</span>
547
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
548
  <span class="cline-any cline-neutral">&nbsp;</span>
492
549
  <span class="cline-any cline-neutral">&nbsp;</span>
493
550
  <span class="cline-any cline-neutral">&nbsp;</span>
494
551
  <span class="cline-any cline-neutral">&nbsp;</span>
495
552
  <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-yes">68x</span>
497
553
  <span class="cline-any cline-neutral">&nbsp;</span>
554
+ <span class="cline-any cline-yes">44x</span>
498
555
  <span class="cline-any cline-neutral">&nbsp;</span>
499
556
  <span class="cline-any cline-neutral">&nbsp;</span>
500
557
  <span class="cline-any cline-neutral">&nbsp;</span>
501
558
  <span class="cline-any cline-yes">68x</span>
559
+ <span class="cline-any cline-no">&nbsp;</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
561
  <span class="cline-any cline-yes">68x</span>
503
562
  <span class="cline-any cline-neutral">&nbsp;</span>
504
563
  <span class="cline-any cline-neutral">&nbsp;</span>
505
564
  <span class="cline-any cline-neutral">&nbsp;</span>
506
565
  <span class="cline-any cline-neutral">&nbsp;</span>
507
566
  <span class="cline-any cline-neutral">&nbsp;</span>
567
+ <span class="cline-any cline-yes">67x</span>
568
+ <span class="cline-any cline-neutral">&nbsp;</span>
569
+ <span class="cline-any cline-neutral">&nbsp;</span>
570
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-neutral">&nbsp;</span>
572
+ <span class="cline-any cline-yes">67x</span>
573
+ <span class="cline-any cline-yes">67x</span>
574
+ <span class="cline-any cline-neutral">&nbsp;</span>
508
575
  <span class="cline-any cline-neutral">&nbsp;</span>
509
576
  <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-yes">66x</span>
511
- <span class="cline-any cline-yes">66x</span>
512
- <span class="cline-any cline-yes">64x</span>
577
+ <span class="cline-any cline-neutral">&nbsp;</span>
578
+ <span class="cline-any cline-neutral">&nbsp;</span>
579
+ <span class="cline-any cline-neutral">&nbsp;</span>
580
+ <span class="cline-any cline-neutral">&nbsp;</span>
581
+ <span class="cline-any cline-yes">61x</span>
582
+ <span class="cline-any cline-yes">61x</span>
583
+ <span class="cline-any cline-yes">59x</span>
513
584
  <span class="cline-any cline-yes">2x</span>
514
585
  <span class="cline-any cline-yes">2x</span>
515
586
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -518,18 +589,44 @@
518
589
  <span class="cline-any cline-neutral">&nbsp;</span>
519
590
  <span class="cline-any cline-neutral">&nbsp;</span>
520
591
  <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-yes">47x</span>
522
- <span class="cline-any cline-yes">47x</span>
592
+ <span class="cline-any cline-yes">19x</span>
523
593
  <span class="cline-any cline-neutral">&nbsp;</span>
524
594
  <span class="cline-any cline-neutral">&nbsp;</span>
595
+ <span class="cline-any cline-yes">17x</span>
596
+ <span class="cline-any cline-yes">1x</span>
525
597
  <span class="cline-any cline-neutral">&nbsp;</span>
526
598
  <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-yes">37x</span>
528
- <span class="cline-any cline-yes">16x</span>
529
599
  <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-yes">37x</span>
531
- <span class="cline-any cline-yes">37x</span>
532
- <span class="cline-any cline-yes">37x</span>
600
+ <span class="cline-any cline-neutral">&nbsp;</span>
601
+ <span class="cline-any cline-neutral">&nbsp;</span>
602
+ <span class="cline-any cline-yes">17x</span>
603
+ <span class="cline-any cline-neutral">&nbsp;</span>
604
+ <span class="cline-any cline-neutral">&nbsp;</span>
605
+ <span class="cline-any cline-neutral">&nbsp;</span>
606
+ <span class="cline-any cline-yes">17x</span>
607
+ <span class="cline-any cline-neutral">&nbsp;</span>
608
+ <span class="cline-any cline-neutral">&nbsp;</span>
609
+ <span class="cline-any cline-neutral">&nbsp;</span>
610
+ <span class="cline-any cline-yes">17x</span>
611
+ <span class="cline-any cline-neutral">&nbsp;</span>
612
+ <span class="cline-any cline-neutral">&nbsp;</span>
613
+ <span class="cline-any cline-neutral">&nbsp;</span>
614
+ <span class="cline-any cline-yes">17x</span>
615
+ <span class="cline-any cline-neutral">&nbsp;</span>
616
+ <span class="cline-any cline-neutral">&nbsp;</span>
617
+ <span class="cline-any cline-neutral">&nbsp;</span>
618
+ <span class="cline-any cline-yes">68x</span>
619
+ <span class="cline-any cline-yes">68x</span>
620
+ <span class="cline-any cline-neutral">&nbsp;</span>
621
+ <span class="cline-any cline-neutral">&nbsp;</span>
622
+ <span class="cline-any cline-neutral">&nbsp;</span>
623
+ <span class="cline-any cline-neutral">&nbsp;</span>
624
+ <span class="cline-any cline-yes">58x</span>
625
+ <span class="cline-any cline-yes">17x</span>
626
+ <span class="cline-any cline-neutral">&nbsp;</span>
627
+ <span class="cline-any cline-yes">58x</span>
628
+ <span class="cline-any cline-yes">58x</span>
629
+ <span class="cline-any cline-yes">58x</span>
533
630
  <span class="cline-any cline-neutral">&nbsp;</span>
534
631
  <span class="cline-any cline-neutral">&nbsp;</span>
535
632
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -579,11 +676,6 @@
579
676
  <span class="cline-any cline-neutral">&nbsp;</span>
580
677
  <span class="cline-any cline-neutral">&nbsp;</span>
581
678
  <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-yes">1x</span>
583
- <span class="cline-any cline-yes">1x</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
679
  <span class="cline-any cline-yes">2x</span>
588
680
  <span class="cline-any cline-yes">2x</span>
589
681
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -608,7 +700,7 @@
608
700
  <span class="cline-any cline-neutral">&nbsp;</span>
609
701
  <span class="cline-any cline-neutral">&nbsp;</span>
610
702
  <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-yes">7x</span>
703
+ <span class="cline-any cline-yes">17x</span>
612
704
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import "./mocks"
613
705
  import * as dbConfig from "../db"
614
706
  dbConfig.init()
@@ -623,30 +715,33 @@ import {
623
715
  Headers,
624
716
  sessions,
625
717
  auth,
718
+ constants,
719
+ env as coreEnv,
626
720
  } from "@budibase/backend-core"
627
- import { TENANT_ID, TENANT_1, CSRF_TOKEN } from "./structures"
628
- import structures from "./structures"
721
+ import structures, { TENANT_ID, TENANT_1, CSRF_TOKEN } from "./structures"
629
722
  import { CreateUserResponse, User, AuthToken } from "@budibase/types"
723
+ import API from "./api"
630
724
  &nbsp;
631
725
  enum Mode {
632
- ACCOUNT = "account",
726
+ CLOUD = "cloud",
633
727
  SELF = "self",
634
728
  }
635
729
  &nbsp;
636
730
  class TestConfiguration {
637
731
  server: any
638
732
  request: any
733
+ api: API
639
734
  defaultUser?: User
640
735
  tenant1User?: User
641
736
  &nbsp;
642
737
  constructor(
643
738
  opts: { openServer: boolean; mode: Mode } = {
644
739
  openServer: true,
645
- mode: Mode.ACCOUNT,
740
+ mode: Mode.CLOUD,
646
741
  }
647
742
  ) {
648
- if (opts.mode === Mode.ACCOUNT) {
649
- this.modeAccount()
743
+ if (opts.mode === Mode.CLOUD) {
744
+ this.modeCloud()
650
745
  } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span><span class="missing-if-branch" title="else path not taken" >E</span>if (opts.mode === Mode.SELF) {</span>
651
746
  <span class="cstat-no" title="statement not covered" > this.modeSelf()</span>
652
747
  }
@@ -657,6 +752,8 @@ class TestConfiguration {
657
752
  // we need the request for logging in, involves cookies, hard to fake
658
753
  this.request = supertest(this.server)
659
754
  }
755
+ &nbsp;
756
+ this.api = new API(this)
660
757
  }
661
758
  &nbsp;
662
759
  <span class="fstat-no" title="function not covered" > getRequest(</span>) {
@@ -665,20 +762,24 @@ class TestConfiguration {
665
762
  &nbsp;
666
763
  // MODES
667
764
  &nbsp;
668
- modeAccount = () =&gt; {
669
- env.SELF_HOSTED = false
670
- // @ts-ignore
671
- env.MULTI_TENANCY = true
672
- // @ts-ignore
673
- env.DISABLE_ACCOUNT_PORTAL = false
765
+ setMultiTenancy = (value: boolean) =&gt; {
766
+ env._set("MULTI_TENANCY", value)
767
+ coreEnv._set("MULTI_TENANCY", value)
768
+ }
769
+ &nbsp;
770
+ setSelfHosted = (value: boolean) =&gt; {
771
+ env._set("SELF_HOSTED", value)
772
+ coreEnv._set("SELF_HOSTED", value)
773
+ }
774
+ &nbsp;
775
+ modeCloud = () =&gt; {
776
+ this.setSelfHosted(false)
777
+ this.setMultiTenancy(true)
674
778
  }
675
779
  &nbsp;
676
780
  modeSelf = () =&gt; {
677
- env.SELF_HOSTED = true
678
- // @ts-ignore
679
- env.MULTI_TENANCY = false
680
- // @ts-ignore
681
- env.DISABLE_ACCOUNT_PORTAL = true
781
+ this.setSelfHosted(true)
782
+ this.setMultiTenancy(false)
682
783
  }
683
784
  &nbsp;
684
785
  // UTILS
@@ -724,6 +825,25 @@ class TestConfiguration {
724
825
  }
725
826
  &nbsp;
726
827
  // TENANCY
828
+ &nbsp;
829
+ createTenant = async (): Promise&lt;User&gt; =&gt; {
830
+ // create user / new tenant
831
+ const res = await this.api.users.createAdminUser()
832
+ &nbsp;
833
+ // return the created user
834
+ const userRes = await this.api.users.getUser(res.userId, {
835
+ headers: {
836
+ ...this.internalAPIHeaders(),
837
+ [constants.Headers.TENANT_ID]: res.tenantId,
838
+ },
839
+ })
840
+ &nbsp;
841
+ // create a session for the new user
842
+ const user = userRes.body
843
+ await this.createSession(user)
844
+ &nbsp;
845
+ return user
846
+ }
727
847
  &nbsp;
728
848
  getTenantId() {
729
849
  try {
@@ -733,35 +853,32 @@ class TestConfiguration {
733
853
  }
734
854
  }
735
855
  &nbsp;
736
- // USER / AUTH
856
+ // AUTH
737
857
  &nbsp;
738
- async createDefaultUser() {
739
- const user = structures.users.adminUser({
740
- email: "test@test.com",
741
- password: "test",
742
- })
743
- this.defaultUser = await this.createUser(user)
744
- }
745
- &nbsp;
746
- async createTenant1User() {
747
- const user = structures.users.adminUser({
748
- email: "tenant1@test.com",
749
- password: "test",
858
+ async _createSession({
859
+ userId,
860
+ tenantId,
861
+ }: {
862
+ userId: string
863
+ tenantId: string
864
+ }) {
865
+ await sessions.createASession(userId!, {
866
+ sessionId: "sessionid",
867
+ tenantId: tenantId,
868
+ csrfToken: CSRF_TOKEN,
750
869
  })
751
- this.tenant1User = await this.createUser(user)
752
870
  }
753
871
  &nbsp;
754
872
  async createSession(user: User) {
755
- await sessions.createASession(user._id!, {
756
- sessionId: "sessionid",
757
- tenantId: user.tenantId,
758
- csrfToken: CSRF_TOKEN,
759
- })
873
+ return this._createSession({ userId: user._id!, tenantId: user.tenantId })
760
874
  }
761
875
  &nbsp;
762
876
  cookieHeader(cookies: any) {
877
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!Array.isArray(cookies)) {
878
+ <span class="cstat-no" title="statement not covered" > cookies = [cookies]</span>
879
+ }
763
880
  return {
764
- Cookie: [cookies],
881
+ Cookie: cookies,
765
882
  }
766
883
  }
767
884
  &nbsp;
@@ -789,6 +906,32 @@ class TestConfiguration {
789
906
  <span class="cstat-no" title="statement not covered" > throw new Error("could not determine auth headers to use")</span>
790
907
  }
791
908
  }
909
+ &nbsp;
910
+ internalAPIHeaders() {
911
+ return { [constants.Headers.API_KEY]: env.INTERNAL_API_KEY }
912
+ }
913
+ &nbsp;
914
+ adminOnlyResponse = () =&gt; {
915
+ return { message: "Admin user only endpoint.", status: 403 }
916
+ }
917
+ &nbsp;
918
+ // USERS
919
+ &nbsp;
920
+ async createDefaultUser() {
921
+ const user = structures.users.adminUser({
922
+ email: "test@test.com",
923
+ password: "test",
924
+ })
925
+ this.defaultUser = await this.createUser(user)
926
+ }
927
+ &nbsp;
928
+ async createTenant1User() {
929
+ const user = structures.users.adminUser({
930
+ email: "tenant1@test.com",
931
+ password: "test",
932
+ })
933
+ this.tenant1User = await this.createUser(user)
934
+ }
792
935
  &nbsp;
793
936
  async getUser(email: string): Promise&lt;User&gt; {
794
937
  return tenancy.doInTenant(this.getTenantId(), () =&gt; {
@@ -850,11 +993,6 @@ class TestConfiguration {
850
993
  }
851
994
  &nbsp;
852
995
  // CONFIGS - OIDC
853
- &nbsp;
854
- getOIDConfigCookie(configId: string) {
855
- const token = auth.jwt.sign(configId, env.JWT_SECRET)
856
- return this.cookieHeader([[`${Cookies.OIDC_CONFIG}=${token}`]])
857
- }
858
996
  &nbsp;
859
997
  async saveOIDCConfig() {
860
998
  await this.deleteConfig(Configs.OIDC)
@@ -889,7 +1027,7 @@ export = TestConfiguration
889
1027
  <div class='footer quiet pad2 space-top1 center small'>
890
1028
  Code coverage generated by
891
1029
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
892
- at Wed Nov 16 2022 12:02:15 GMT+0000 (Coordinated Universal Time)
1030
+ at Wed Nov 16 2022 13:31:07 GMT+0000 (Coordinated Universal Time)
893
1031
  </div>
894
1032
  <script src="../../prettify.js"></script>
895
1033
  <script>