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

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 (171) hide show
  1. package/__mocks__/oauth.ts +57 -0
  2. package/coverage/clover.xml +1255 -1174
  3. package/coverage/coverage-final.json +77 -72
  4. package/coverage/lcov-report/index.html +96 -96
  5. package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +110 -98
  6. package/coverage/lcov-report/src/api/controllers/global/configs.js.html +52 -52
  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 +59 -59
  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 +26 -26
  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 +13 -13
  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 +10 -10
  47. package/coverage/lcov-report/src/constants/{index.js.html → index.ts.html} +103 -124
  48. package/coverage/lcov-report/src/constants/templates/index.html +1 -1
  49. package/coverage/lcov-report/src/constants/templates/index.js.html +12 -12
  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 +23 -23
  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 +275 -128
  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 +21 -21
  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 +14 -14
  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 +14 -14
  97. package/coverage/lcov-report/src/utilities/{email.js.html → email.ts.html} +172 -73
  98. package/coverage/lcov-report/src/utilities/fileSystem.js.html +4 -4
  99. package/coverage/lcov-report/src/utilities/index.html +23 -23
  100. package/coverage/lcov-report/src/utilities/index.js.html +2 -2
  101. package/coverage/lcov-report/src/utilities/{redis.js.html → redis.ts.html} +63 -48
  102. package/coverage/lcov-report/src/utilities/{templates.js.html → templates.ts.html} +41 -41
  103. package/coverage/lcov-report/src/utilities/users.js.html +8 -8
  104. package/coverage/lcov.info +2058 -1820
  105. package/jest.config.ts +1 -0
  106. package/package.json +8 -6
  107. package/scripts/localdomain.js +33 -7
  108. package/src/api/controllers/global/auth.ts +35 -31
  109. package/src/api/controllers/global/configs.js +17 -17
  110. package/src/api/controllers/global/self.ts +2 -2
  111. package/src/api/controllers/global/users.ts +3 -1
  112. package/src/api/controllers/system/{environment.js → environment.ts} +3 -2
  113. package/src/api/controllers/system/{status.js → status.ts} +4 -3
  114. package/src/api/controllers/system/tenants.ts +8 -51
  115. package/src/api/index.ts +29 -6
  116. package/src/api/routes/global/auth.js +22 -39
  117. package/src/api/routes/global/configs.js +9 -9
  118. package/src/api/routes/global/templates.ts +2 -2
  119. package/src/api/routes/global/tests/auth.spec.ts +134 -64
  120. package/src/api/routes/global/tests/configs.spec.ts +34 -35
  121. package/src/api/routes/global/tests/email.spec.ts +4 -3
  122. package/src/api/routes/global/tests/license.spec.ts +31 -0
  123. package/src/api/routes/global/tests/realEmail.spec.ts +2 -3
  124. package/src/api/routes/global/tests/roles.spec.ts +27 -0
  125. package/src/api/routes/global/tests/self.spec.ts +3 -4
  126. package/src/api/routes/global/tests/templates.spec.ts +35 -0
  127. package/src/api/routes/global/tests/users.spec.ts +51 -43
  128. package/src/api/routes/global/tests/workspaces.spec.ts +29 -0
  129. package/src/api/routes/system/environment.ts +8 -0
  130. package/src/api/routes/system/status.ts +8 -0
  131. package/src/api/routes/system/tenants.ts +13 -0
  132. package/src/api/routes/system/tests/accounts.spec.ts +5 -6
  133. package/src/api/routes/system/tests/environment.spec.ts +29 -0
  134. package/src/api/routes/system/tests/migrations.spec.ts +63 -0
  135. package/src/api/routes/system/tests/restore.spec.ts +36 -0
  136. package/src/api/routes/system/tests/status.spec.ts +48 -0
  137. package/src/api/routes/system/tests/tenants.spec.ts +61 -0
  138. package/src/constants/{index.js → index.ts} +57 -64
  139. package/src/constants/templates/index.js +2 -2
  140. package/src/middleware/cloudRestricted.js +2 -2
  141. package/src/middleware/tests/tenancy.spec.ts +73 -0
  142. package/src/tests/TestConfiguration.ts +97 -48
  143. package/src/tests/api/accounts.ts +5 -8
  144. package/src/tests/api/auth.ts +3 -6
  145. package/src/tests/api/base.ts +16 -0
  146. package/src/tests/api/configs.ts +15 -8
  147. package/src/tests/api/email.ts +3 -6
  148. package/src/tests/api/environment.ts +15 -0
  149. package/src/tests/api/index.ts +15 -0
  150. package/src/tests/api/migrations.ts +22 -0
  151. package/src/tests/api/restore.ts +14 -0
  152. package/src/tests/api/self.ts +11 -6
  153. package/src/tests/api/status.ts +12 -0
  154. package/src/tests/api/tenants.ts +15 -0
  155. package/src/tests/api/users.ts +38 -6
  156. package/src/tests/index.ts +4 -0
  157. package/src/tests/jestSetup.ts +7 -1
  158. package/src/tests/structures/configs.js +6 -6
  159. package/src/tests/structures/index.ts +4 -2
  160. package/src/tests/structures/users.ts +1 -0
  161. package/src/utilities/appService.js +3 -3
  162. package/src/utilities/{email.js → email.ts} +78 -45
  163. package/src/utilities/{redis.js → redis.ts} +29 -24
  164. package/src/utilities/templates.ts +49 -0
  165. package/tsconfig.build.json +3 -3
  166. package/__mocks__/node-fetch.ts +0 -1
  167. package/src/api/routes/system/environment.js +0 -8
  168. package/src/api/routes/system/status.js +0 -8
  169. package/src/api/routes/system/tenants.js +0 -12
  170. package/src/tests/structures/accounts.ts +0 -24
  171. package/src/utilities/templates.js +0 -49
@@ -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">92.03% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>89/95</span>
28
+ <span class='fraction'>104/113</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">86.84% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>27/31</span>
42
+ <span class='fraction'>33/38</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">91.89% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>88/94</span>
49
+ <span class='fraction'>102/111</span>
50
50
  </div>
51
51
 
52
52
 
@@ -336,14 +336,63 @@
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>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a></td><td class="line-coverage quiet"><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>
393
+ <span class="cline-any cline-yes">17x</span>
394
+ <span class="cline-any cline-yes">17x</span>
395
+ <span class="cline-any cline-yes">17x</span>
347
396
  <span class="cline-any cline-neutral">&nbsp;</span>
348
397
  <span class="cline-any cline-neutral">&nbsp;</span>
349
398
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -351,13 +400,13 @@
351
400
  <span class="cline-any cline-neutral">&nbsp;</span>
352
401
  <span class="cline-any cline-neutral">&nbsp;</span>
353
402
  <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>
403
+ <span class="cline-any cline-yes">17x</span>
356
404
  <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-yes">17x</span>
357
406
  <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>
407
+ <span class="cline-any cline-yes">17x</span>
408
+ <span class="cline-any cline-yes">17x</span>
409
+ <span class="cline-any cline-yes">17x</span>
361
410
  <span class="cline-any cline-neutral">&nbsp;</span>
362
411
  <span class="cline-any cline-neutral">&nbsp;</span>
363
412
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -372,18 +421,21 @@
372
421
  <span class="cline-any cline-neutral">&nbsp;</span>
373
422
  <span class="cline-any cline-neutral">&nbsp;</span>
374
423
  <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>
424
+ <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-yes">17x</span>
426
+ <span class="cline-any cline-yes">17x</span>
377
427
  <span class="cline-any cline-no">&nbsp;</span>
378
428
  <span class="cline-any cline-no">&nbsp;</span>
379
429
  <span class="cline-any cline-neutral">&nbsp;</span>
380
430
  <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>
431
+ <span class="cline-any cline-yes">17x</span>
432
+ <span class="cline-any cline-yes">17x</span>
433
+ <span class="cline-any cline-yes">17x</span>
434
+ <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-yes">17x</span>
384
436
  <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-yes">7x</span>
386
437
  <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-yes">17x</span>
387
439
  <span class="cline-any cline-neutral">&nbsp;</span>
388
440
  <span class="cline-any cline-neutral">&nbsp;</span>
389
441
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -392,94 +444,99 @@
392
444
  <span class="cline-any cline-neutral">&nbsp;</span>
393
445
  <span class="cline-any cline-neutral">&nbsp;</span>
394
446
  <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>
447
+ <span class="cline-any cline-yes">17x</span>
448
+ <span class="cline-any cline-yes">25x</span>
449
+ <span class="cline-any cline-yes">25x</span>
397
450
  <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-yes">9x</span>
399
451
  <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-yes">9x</span>
452
+ <span class="cline-any cline-yes">17x</span>
453
+ <span class="cline-any cline-yes">25x</span>
454
+ <span class="cline-any cline-yes">25x</span>
401
455
  <span class="cline-any cline-neutral">&nbsp;</span>
402
456
  <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>
457
+ <span class="cline-any cline-yes">17x</span>
458
+ <span class="cline-any cline-yes">21x</span>
459
+ <span class="cline-any cline-yes">21x</span>
405
460
  <span class="cline-any cline-neutral">&nbsp;</span>
406
- <span class="cline-any cline-yes">2x</span>
407
461
  <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-yes">2x</span>
462
+ <span class="cline-any cline-yes">17x</span>
463
+ <span class="cline-any cline-yes">4x</span>
464
+ <span class="cline-any cline-yes">4x</span>
409
465
  <span class="cline-any cline-neutral">&nbsp;</span>
410
466
  <span class="cline-any cline-neutral">&nbsp;</span>
411
467
  <span class="cline-any cline-neutral">&nbsp;</span>
412
468
  <span class="cline-any cline-neutral">&nbsp;</span>
413
469
  <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-yes">131x</span>
470
+ <span class="cline-any cline-yes">152x</span>
415
471
  <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>
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>
476
+ <span class="cline-any cline-yes">152x</span>
421
477
  <span class="cline-any cline-neutral">&nbsp;</span>
422
478
  <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>
479
+ <span class="cline-any cline-yes">152x</span>
480
+ <span class="cline-any cline-yes">16x</span>
425
481
  <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-yes">131x</span>
482
+ <span class="cline-any cline-yes">152x</span>
427
483
  <span class="cline-any cline-yes">72x</span>
428
484
  <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>
485
+ <span class="cline-any cline-yes">152x</span>
486
+ <span class="cline-any cline-yes">152x</span>
431
487
  <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-yes">119x</span>
488
+ <span class="cline-any cline-yes">136x</span>
433
489
  <span class="cline-any cline-neutral">&nbsp;</span>
434
490
  <span class="cline-any cline-neutral">&nbsp;</span>
435
491
  <span class="cline-any cline-neutral">&nbsp;</span>
436
492
  <span class="cline-any cline-neutral">&nbsp;</span>
437
493
  <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>
494
+ <span class="cline-any cline-yes">17x</span>
495
+ <span class="cline-any cline-yes">17x</span>
440
496
  <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>
497
+ <span class="cline-any cline-yes">17x</span>
498
+ <span class="cline-any cline-yes">17x</span>
499
+ <span class="cline-any cline-yes">17x</span>
444
500
  <span class="cline-any cline-neutral">&nbsp;</span>
445
501
  <span class="cline-any cline-neutral">&nbsp;</span>
446
502
  <span class="cline-any cline-neutral">&nbsp;</span>
447
503
  <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>
504
+ <span class="cline-any cline-yes">17x</span>
505
+ <span class="cline-any cline-yes">17x</span>
450
506
  <span class="cline-any cline-neutral">&nbsp;</span>
451
507
  <span class="cline-any cline-neutral">&nbsp;</span>
452
508
  <span class="cline-any cline-neutral">&nbsp;</span>
453
509
  <span class="cline-any cline-neutral">&nbsp;</span>
454
510
  <span class="cline-any cline-neutral">&nbsp;</span>
511
+ <span class="cline-any cline-yes">17x</span>
455
512
  <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>
513
+ <span class="cline-any cline-yes">6x</span>
458
514
  <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-yes">358x</span>
460
515
  <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-yes">6x</span>
461
517
  <span class="cline-any cline-neutral">&nbsp;</span>
462
518
  <span class="cline-any cline-neutral">&nbsp;</span>
463
519
  <span class="cline-any cline-neutral">&nbsp;</span>
464
520
  <span class="cline-any cline-neutral">&nbsp;</span>
465
521
  <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-yes">7x</span>
467
522
  <span class="cline-any cline-neutral">&nbsp;</span>
468
523
  <span class="cline-any cline-neutral">&nbsp;</span>
524
+ <span class="cline-any cline-yes">6x</span>
525
+ <span class="cline-any cline-yes">6x</span>
469
526
  <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-yes">7x</span>
527
+ <span class="cline-any cline-yes">6x</span>
471
528
  <span class="cline-any cline-neutral">&nbsp;</span>
472
529
  <span class="cline-any cline-neutral">&nbsp;</span>
473
530
  <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-yes">7x</span>
531
+ <span class="cline-any cline-yes">440x</span>
532
+ <span class="cline-any cline-yes">440x</span>
475
533
  <span class="cline-any cline-neutral">&nbsp;</span>
534
+ <span class="cline-any cline-yes">373x</span>
476
535
  <span class="cline-any cline-neutral">&nbsp;</span>
477
536
  <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-yes">7x</span>
479
537
  <span class="cline-any cline-neutral">&nbsp;</span>
480
538
  <span class="cline-any cline-neutral">&nbsp;</span>
481
539
  <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-yes">16x</span>
483
540
  <span class="cline-any cline-neutral">&nbsp;</span>
484
541
  <span class="cline-any cline-neutral">&nbsp;</span>
485
542
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -487,29 +544,44 @@
487
544
  <span class="cline-any cline-neutral">&nbsp;</span>
488
545
  <span class="cline-any cline-neutral">&nbsp;</span>
489
546
  <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-yes">69x</span>
547
+ <span class="cline-any cline-yes">44x</span>
548
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
549
  <span class="cline-any cline-neutral">&nbsp;</span>
492
550
  <span class="cline-any cline-neutral">&nbsp;</span>
493
551
  <span class="cline-any cline-neutral">&nbsp;</span>
494
552
  <span class="cline-any cline-neutral">&nbsp;</span>
495
553
  <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-yes">68x</span>
497
554
  <span class="cline-any cline-neutral">&nbsp;</span>
555
+ <span class="cline-any cline-yes">44x</span>
498
556
  <span class="cline-any cline-neutral">&nbsp;</span>
499
557
  <span class="cline-any cline-neutral">&nbsp;</span>
500
558
  <span class="cline-any cline-neutral">&nbsp;</span>
501
559
  <span class="cline-any cline-yes">68x</span>
560
+ <span class="cline-any cline-no">&nbsp;</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
562
  <span class="cline-any cline-yes">68x</span>
503
563
  <span class="cline-any cline-neutral">&nbsp;</span>
504
564
  <span class="cline-any cline-neutral">&nbsp;</span>
505
565
  <span class="cline-any cline-neutral">&nbsp;</span>
506
566
  <span class="cline-any cline-neutral">&nbsp;</span>
507
567
  <span class="cline-any cline-neutral">&nbsp;</span>
568
+ <span class="cline-any cline-yes">67x</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-neutral">&nbsp;</span>
573
+ <span class="cline-any cline-yes">67x</span>
574
+ <span class="cline-any cline-yes">67x</span>
575
+ <span class="cline-any cline-neutral">&nbsp;</span>
576
+ <span class="cline-any cline-neutral">&nbsp;</span>
508
577
  <span class="cline-any cline-neutral">&nbsp;</span>
509
578
  <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>
579
+ <span class="cline-any cline-neutral">&nbsp;</span>
580
+ <span class="cline-any cline-neutral">&nbsp;</span>
581
+ <span class="cline-any cline-neutral">&nbsp;</span>
582
+ <span class="cline-any cline-yes">61x</span>
583
+ <span class="cline-any cline-yes">61x</span>
584
+ <span class="cline-any cline-yes">59x</span>
513
585
  <span class="cline-any cline-yes">2x</span>
514
586
  <span class="cline-any cline-yes">2x</span>
515
587
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -518,18 +590,44 @@
518
590
  <span class="cline-any cline-neutral">&nbsp;</span>
519
591
  <span class="cline-any cline-neutral">&nbsp;</span>
520
592
  <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>
593
+ <span class="cline-any cline-yes">19x</span>
523
594
  <span class="cline-any cline-neutral">&nbsp;</span>
524
595
  <span class="cline-any cline-neutral">&nbsp;</span>
596
+ <span class="cline-any cline-yes">17x</span>
597
+ <span class="cline-any cline-yes">1x</span>
598
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
599
  <span class="cline-any cline-neutral">&nbsp;</span>
526
600
  <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
601
  <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>
602
+ <span class="cline-any cline-neutral">&nbsp;</span>
603
+ <span class="cline-any cline-yes">17x</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-neutral">&nbsp;</span>
607
+ <span class="cline-any cline-yes">17x</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-neutral">&nbsp;</span>
611
+ <span class="cline-any cline-yes">17x</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-neutral">&nbsp;</span>
615
+ <span class="cline-any cline-yes">17x</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-neutral">&nbsp;</span>
619
+ <span class="cline-any cline-yes">68x</span>
620
+ <span class="cline-any cline-yes">68x</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-neutral">&nbsp;</span>
625
+ <span class="cline-any cline-yes">58x</span>
626
+ <span class="cline-any cline-yes">17x</span>
627
+ <span class="cline-any cline-neutral">&nbsp;</span>
628
+ <span class="cline-any cline-yes">58x</span>
629
+ <span class="cline-any cline-yes">58x</span>
630
+ <span class="cline-any cline-yes">58x</span>
533
631
  <span class="cline-any cline-neutral">&nbsp;</span>
534
632
  <span class="cline-any cline-neutral">&nbsp;</span>
535
633
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -579,8 +677,8 @@
579
677
  <span class="cline-any cline-neutral">&nbsp;</span>
580
678
  <span class="cline-any cline-neutral">&nbsp;</span>
581
679
  <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>
680
+ <span class="cline-any cline-no">&nbsp;</span>
681
+ <span class="cline-any cline-no">&nbsp;</span>
584
682
  <span class="cline-any cline-neutral">&nbsp;</span>
585
683
  <span class="cline-any cline-neutral">&nbsp;</span>
586
684
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -608,45 +706,46 @@
608
706
  <span class="cline-any cline-neutral">&nbsp;</span>
609
707
  <span class="cline-any cline-neutral">&nbsp;</span>
610
708
  <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-yes">7x</span>
709
+ <span class="cline-any cline-yes">17x</span>
612
710
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import "./mocks"
613
711
  import * as dbConfig from "../db"
614
712
  dbConfig.init()
615
713
  import env from "../environment"
616
714
  import controllers from "./controllers"
617
715
  const supertest = require("supertest")
618
- import { Configs } from "../constants"
716
+ import { Config } from "../constants"
619
717
  import {
620
718
  users,
621
719
  tenancy,
622
- Cookies,
623
- Headers,
624
720
  sessions,
625
721
  auth,
722
+ constants,
723
+ env as coreEnv,
626
724
  } from "@budibase/backend-core"
627
- import { TENANT_ID, TENANT_1, CSRF_TOKEN } from "./structures"
628
- import structures from "./structures"
725
+ import structures, { TENANT_ID, TENANT_1, CSRF_TOKEN } from "./structures"
629
726
  import { CreateUserResponse, User, AuthToken } from "@budibase/types"
727
+ import API from "./api"
630
728
  &nbsp;
631
729
  enum Mode {
632
- ACCOUNT = "account",
730
+ CLOUD = "cloud",
633
731
  SELF = "self",
634
732
  }
635
733
  &nbsp;
636
734
  class TestConfiguration {
637
735
  server: any
638
736
  request: any
737
+ api: API
639
738
  defaultUser?: User
640
739
  tenant1User?: User
641
740
  &nbsp;
642
741
  constructor(
643
742
  opts: { openServer: boolean; mode: Mode } = {
644
743
  openServer: true,
645
- mode: Mode.ACCOUNT,
744
+ mode: Mode.CLOUD,
646
745
  }
647
746
  ) {
648
- if (opts.mode === Mode.ACCOUNT) {
649
- this.modeAccount()
747
+ if (opts.mode === Mode.CLOUD) {
748
+ this.modeCloud()
650
749
  } 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
750
  <span class="cstat-no" title="statement not covered" > this.modeSelf()</span>
652
751
  }
@@ -657,6 +756,8 @@ class TestConfiguration {
657
756
  // we need the request for logging in, involves cookies, hard to fake
658
757
  this.request = supertest(this.server)
659
758
  }
759
+ &nbsp;
760
+ this.api = new API(this)
660
761
  }
661
762
  &nbsp;
662
763
  <span class="fstat-no" title="function not covered" > getRequest(</span>) {
@@ -665,20 +766,24 @@ class TestConfiguration {
665
766
  &nbsp;
666
767
  // MODES
667
768
  &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
769
+ setMultiTenancy = (value: boolean) =&gt; {
770
+ env._set("MULTI_TENANCY", value)
771
+ coreEnv._set("MULTI_TENANCY", value)
772
+ }
773
+ &nbsp;
774
+ setSelfHosted = (value: boolean) =&gt; {
775
+ env._set("SELF_HOSTED", value)
776
+ coreEnv._set("SELF_HOSTED", value)
777
+ }
778
+ &nbsp;
779
+ modeCloud = () =&gt; {
780
+ this.setSelfHosted(false)
781
+ this.setMultiTenancy(true)
674
782
  }
675
783
  &nbsp;
676
784
  modeSelf = () =&gt; {
677
- env.SELF_HOSTED = true
678
- // @ts-ignore
679
- env.MULTI_TENANCY = false
680
- // @ts-ignore
681
- env.DISABLE_ACCOUNT_PORTAL = true
785
+ this.setSelfHosted(true)
786
+ this.setMultiTenancy(false)
682
787
  }
683
788
  &nbsp;
684
789
  // UTILS
@@ -724,6 +829,25 @@ class TestConfiguration {
724
829
  }
725
830
  &nbsp;
726
831
  // TENANCY
832
+ &nbsp;
833
+ createTenant = async (): Promise&lt;User&gt; =&gt; {
834
+ // create user / new tenant
835
+ const res = await this.api.users.createAdminUser()
836
+ &nbsp;
837
+ // return the created user
838
+ const userRes = await this.api.users.getUser(res.userId, {
839
+ headers: {
840
+ ...this.internalAPIHeaders(),
841
+ [constants.Header.TENANT_ID]: res.tenantId,
842
+ },
843
+ })
844
+ &nbsp;
845
+ // create a session for the new user
846
+ const user = userRes.body
847
+ await this.createSession(user)
848
+ &nbsp;
849
+ return user
850
+ }
727
851
  &nbsp;
728
852
  getTenantId() {
729
853
  try {
@@ -733,35 +857,32 @@ class TestConfiguration {
733
857
  }
734
858
  }
735
859
  &nbsp;
736
- // USER / AUTH
737
- &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
- }
860
+ // AUTH
745
861
  &nbsp;
746
- async createTenant1User() {
747
- const user = structures.users.adminUser({
748
- email: "tenant1@test.com",
749
- password: "test",
862
+ async _createSession({
863
+ userId,
864
+ tenantId,
865
+ }: {
866
+ userId: string
867
+ tenantId: string
868
+ }) {
869
+ await sessions.createASession(userId!, {
870
+ sessionId: "sessionid",
871
+ tenantId: tenantId,
872
+ csrfToken: CSRF_TOKEN,
750
873
  })
751
- this.tenant1User = await this.createUser(user)
752
874
  }
753
875
  &nbsp;
754
876
  async createSession(user: User) {
755
- await sessions.createASession(user._id!, {
756
- sessionId: "sessionid",
757
- tenantId: user.tenantId,
758
- csrfToken: CSRF_TOKEN,
759
- })
877
+ return this._createSession({ userId: user._id!, tenantId: user.tenantId })
760
878
  }
761
879
  &nbsp;
762
880
  cookieHeader(cookies: any) {
881
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!Array.isArray(cookies)) {
882
+ <span class="cstat-no" title="statement not covered" > cookies = [cookies]</span>
883
+ }
763
884
  return {
764
- Cookie: [cookies],
885
+ Cookie: cookies,
765
886
  }
766
887
  }
767
888
  &nbsp;
@@ -774,8 +895,8 @@ class TestConfiguration {
774
895
  const authCookie = auth.jwt.sign(authToken, env.JWT_SECRET)
775
896
  return {
776
897
  Accept: "application/json",
777
- ...this.cookieHeader([`${Cookies.Auth}=${authCookie}`]),
778
- [Headers.CSRF_TOKEN]: CSRF_TOKEN,
898
+ ...this.cookieHeader([`${constants.Cookie.Auth}=${authCookie}`]),
899
+ [constants.Header.CSRF_TOKEN]: CSRF_TOKEN,
779
900
  }
780
901
  }
781
902
  &nbsp;
@@ -789,6 +910,32 @@ class TestConfiguration {
789
910
  <span class="cstat-no" title="statement not covered" > throw new Error("could not determine auth headers to use")</span>
790
911
  }
791
912
  }
913
+ &nbsp;
914
+ internalAPIHeaders() {
915
+ return { [constants.Header.API_KEY]: env.INTERNAL_API_KEY }
916
+ }
917
+ &nbsp;
918
+ adminOnlyResponse = () =&gt; {
919
+ return { message: "Admin user only endpoint.", status: 403 }
920
+ }
921
+ &nbsp;
922
+ // USERS
923
+ &nbsp;
924
+ async createDefaultUser() {
925
+ const user = structures.users.adminUser({
926
+ email: "test@test.com",
927
+ password: "test",
928
+ })
929
+ this.defaultUser = await this.createUser(user)
930
+ }
931
+ &nbsp;
932
+ async createTenant1User() {
933
+ const user = structures.users.adminUser({
934
+ email: "tenant1@test.com",
935
+ password: "test",
936
+ })
937
+ this.tenant1User = await this.createUser(user)
938
+ }
792
939
  &nbsp;
793
940
  async getUser(email: string): Promise&lt;User&gt; {
794
941
  return tenancy.doInTenant(this.getTenantId(), () =&gt; {
@@ -834,7 +981,7 @@ class TestConfiguration {
834
981
  // CONFIGS - SETTINGS
835
982
  &nbsp;
836
983
  async saveSettingsConfig() {
837
- await this.deleteConfig(Configs.SETTINGS)
984
+ await this.deleteConfig(Config.SETTINGS)
838
985
  await this._req(
839
986
  structures.configs.settings(),
840
987
  null,
@@ -845,19 +992,19 @@ class TestConfiguration {
845
992
  // CONFIGS - GOOGLE
846
993
  &nbsp;
847
994
  async <span class="fstat-no" title="function not covered" >saveGoogleConfig(</span>) {
848
- <span class="cstat-no" title="statement not covered" > await this.deleteConfig(Configs.GOOGLE)</span>
995
+ <span class="cstat-no" title="statement not covered" > await this.deleteConfig(Config.GOOGLE)</span>
849
996
  <span class="cstat-no" title="statement not covered" > await this._req(structures.configs.google(), null, controllers.config.save)</span>
850
997
  }
851
998
  &nbsp;
852
999
  // CONFIGS - OIDC
853
1000
  &nbsp;
854
- getOIDConfigCookie(configId: string) {
855
- const token = auth.jwt.sign(configId, env.JWT_SECRET)
856
- return this.cookieHeader([[`${Cookies.OIDC_CONFIG}=${token}`]])
1001
+ <span class="fstat-no" title="function not covered" > getOIDConfigCookie(</span>configId: string) {
1002
+ const token = <span class="cstat-no" title="statement not covered" >auth.jwt.sign(configId, env.JWT_SECRET)</span>
1003
+ <span class="cstat-no" title="statement not covered" > return this.cookieHeader([[`${constants.Cookie.OIDC_CONFIG}=${token}`]])</span>
857
1004
  }
858
1005
  &nbsp;
859
1006
  async saveOIDCConfig() {
860
- await this.deleteConfig(Configs.OIDC)
1007
+ await this.deleteConfig(Config.OIDC)
861
1008
  const config = structures.configs.oidc()
862
1009
  &nbsp;
863
1010
  await this._req(config, null, controllers.config.save)
@@ -867,12 +1014,12 @@ class TestConfiguration {
867
1014
  // CONFIGS - SMTP
868
1015
  &nbsp;
869
1016
  async saveSmtpConfig() {
870
- await this.deleteConfig(Configs.SMTP)
1017
+ await this.deleteConfig(Config.SMTP)
871
1018
  await this._req(structures.configs.smtp(), null, controllers.config.save)
872
1019
  }
873
1020
  &nbsp;
874
1021
  async saveEtherealSmtpConfig() {
875
- await this.deleteConfig(Configs.SMTP)
1022
+ await this.deleteConfig(Config.SMTP)
876
1023
  await this._req(
877
1024
  structures.configs.smtpEthereal(),
878
1025
  null,
@@ -889,7 +1036,7 @@ export = TestConfiguration
889
1036
  <div class='footer quiet pad2 space-top1 center small'>
890
1037
  Code coverage generated by
891
1038
  <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)
1039
+ at Thu Nov 17 2022 16:59:05 GMT+0000 (Coordinated Universal Time)
893
1040
  </div>
894
1041
  <script src="../../prettify.js"></script>
895
1042
  <script>