@budibase/worker 2.2.26 → 2.2.27

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 (166) hide show
  1. package/Dockerfile +1 -1
  2. package/coverage/clover.xml +1393 -1364
  3. package/coverage/coverage-final.json +83 -77
  4. package/coverage/lcov-report/index.html +133 -133
  5. package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +52 -52
  6. package/coverage/lcov-report/src/api/controllers/global/configs.ts.html +161 -218
  7. package/coverage/lcov-report/src/api/controllers/global/email.ts.html +4 -4
  8. package/coverage/lcov-report/src/api/controllers/global/events.ts.html +136 -0
  9. package/coverage/lcov-report/src/api/controllers/global/index.html +85 -70
  10. package/coverage/lcov-report/src/api/controllers/global/license.ts.html +16 -16
  11. package/coverage/lcov-report/src/api/controllers/global/roles.ts.html +77 -77
  12. package/coverage/lcov-report/src/api/controllers/global/self.ts.html +20 -20
  13. package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +54 -54
  14. package/coverage/lcov-report/src/api/controllers/global/users.ts.html +82 -43
  15. package/coverage/lcov-report/src/api/controllers/global/workspaces.ts.html +9 -9
  16. package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +5 -5
  17. package/coverage/lcov-report/src/api/controllers/system/environment.ts.html +4 -4
  18. package/coverage/lcov-report/src/api/controllers/system/index.html +11 -11
  19. package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +5 -5
  20. package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +4 -4
  21. package/coverage/lcov-report/src/api/controllers/system/status.ts.html +5 -5
  22. package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +7 -7
  23. package/coverage/lcov-report/src/api/index.html +1 -1
  24. package/coverage/lcov-report/src/api/index.ts.html +37 -25
  25. package/coverage/lcov-report/src/api/routes/global/auth.ts.html +14 -14
  26. package/coverage/lcov-report/src/api/routes/global/configs.ts.html +25 -25
  27. package/coverage/lcov-report/src/api/routes/global/email.ts.html +13 -13
  28. package/coverage/lcov-report/src/api/routes/global/events.ts.html +109 -0
  29. package/coverage/lcov-report/src/api/routes/global/index.html +37 -22
  30. package/coverage/lcov-report/src/api/routes/global/license.ts.html +9 -9
  31. package/coverage/lcov-report/src/api/routes/global/roles.ts.html +10 -10
  32. package/coverage/lcov-report/src/api/routes/global/self.ts.html +11 -11
  33. package/coverage/lcov-report/src/api/routes/global/templates.ts.html +14 -14
  34. package/coverage/lcov-report/src/api/routes/global/users.ts.html +62 -20
  35. package/coverage/lcov-report/src/api/routes/global/workspaces.ts.html +12 -12
  36. package/coverage/lcov-report/src/api/routes/index.html +7 -7
  37. package/coverage/lcov-report/src/api/routes/index.ts.html +29 -23
  38. package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +10 -10
  39. package/coverage/lcov-report/src/api/routes/system/environment.ts.html +9 -9
  40. package/coverage/lcov-report/src/api/routes/system/index.html +15 -15
  41. package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +10 -10
  42. package/coverage/lcov-report/src/api/routes/system/restore.ts.html +9 -9
  43. package/coverage/lcov-report/src/api/routes/system/status.ts.html +9 -9
  44. package/coverage/lcov-report/src/api/routes/system/tenants.ts.html +10 -10
  45. package/coverage/lcov-report/src/api/routes/validation/index.html +3 -3
  46. package/coverage/lcov-report/src/api/routes/validation/index.ts.html +2 -2
  47. package/coverage/lcov-report/src/api/routes/validation/users.ts.html +14 -14
  48. package/coverage/lcov-report/src/constants/index.html +17 -17
  49. package/coverage/lcov-report/src/constants/index.ts.html +77 -53
  50. package/coverage/lcov-report/src/constants/templates/index.html +19 -19
  51. package/coverage/lcov-report/src/constants/templates/index.ts.html +42 -42
  52. package/coverage/lcov-report/src/db/index.html +3 -3
  53. package/coverage/lcov-report/src/db/index.ts.html +10 -10
  54. package/coverage/lcov-report/src/environment.ts.html +44 -29
  55. package/coverage/lcov-report/src/index.html +27 -27
  56. package/coverage/lcov-report/src/index.ts.html +55 -55
  57. package/coverage/lcov-report/src/middleware/cloudRestricted.ts.html +5 -5
  58. package/coverage/lcov-report/src/middleware/index.html +1 -1
  59. package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +9 -9
  60. package/coverage/lcov-report/src/migrations/functions/index.html +11 -11
  61. package/coverage/lcov-report/src/migrations/index.html +15 -15
  62. package/coverage/lcov-report/src/migrations/index.ts.html +27 -27
  63. package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +13 -13
  64. package/coverage/lcov-report/src/sdk/accounts/index.html +13 -13
  65. package/coverage/lcov-report/src/sdk/accounts/index.ts.html +2 -2
  66. package/coverage/lcov-report/src/sdk/index.html +5 -5
  67. package/coverage/lcov-report/src/sdk/index.ts.html +6 -6
  68. package/coverage/lcov-report/src/sdk/users/events.ts.html +82 -58
  69. package/coverage/lcov-report/src/sdk/users/index.html +29 -29
  70. package/coverage/lcov-report/src/sdk/users/index.ts.html +2 -2
  71. package/coverage/lcov-report/src/sdk/users/users.ts.html +176 -119
  72. package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +119 -95
  73. package/coverage/lcov-report/src/tests/api/accounts.ts.html +7 -7
  74. package/coverage/lcov-report/src/tests/api/auth.ts.html +8 -8
  75. package/coverage/lcov-report/src/tests/api/base.ts.html +5 -5
  76. package/coverage/lcov-report/src/tests/api/configs.ts.html +9 -9
  77. package/coverage/lcov-report/src/tests/api/email.ts.html +6 -6
  78. package/coverage/lcov-report/src/tests/api/environment.ts.html +6 -6
  79. package/coverage/lcov-report/src/tests/api/groups.ts.html +163 -0
  80. package/coverage/lcov-report/src/tests/api/index.html +91 -31
  81. package/coverage/lcov-report/src/tests/api/index.ts.html +62 -29
  82. package/coverage/lcov-report/src/tests/api/license.ts.html +136 -0
  83. package/coverage/lcov-report/src/tests/api/migrations.ts.html +8 -8
  84. package/coverage/lcov-report/src/tests/api/restore.ts.html +7 -7
  85. package/coverage/lcov-report/src/tests/api/roles.ts.html +181 -0
  86. package/coverage/lcov-report/src/tests/api/self.ts.html +7 -7
  87. package/coverage/lcov-report/src/tests/api/status.ts.html +6 -6
  88. package/coverage/lcov-report/src/tests/api/templates.ts.html +175 -0
  89. package/coverage/lcov-report/src/tests/api/tenants.ts.html +10 -10
  90. package/coverage/lcov-report/src/tests/api/users.ts.html +28 -25
  91. package/coverage/lcov-report/src/tests/controllers.ts.html +14 -14
  92. package/coverage/lcov-report/src/tests/index.html +34 -34
  93. package/coverage/lcov-report/src/tests/index.ts.html +19 -55
  94. package/coverage/lcov-report/src/tests/mocks/{email.js.html → email.ts.html} +5 -5
  95. package/coverage/lcov-report/src/tests/mocks/index.html +6 -6
  96. package/coverage/lcov-report/src/tests/mocks/index.ts.html +10 -10
  97. package/coverage/lcov-report/src/tests/structures/configs.ts.html +11 -11
  98. package/coverage/lcov-report/src/tests/structures/groups.ts.html +15 -15
  99. package/coverage/lcov-report/src/tests/structures/index.html +25 -25
  100. package/coverage/lcov-report/src/tests/structures/index.ts.html +17 -17
  101. package/coverage/lcov-report/src/tests/structures/users.ts.html +16 -16
  102. package/coverage/lcov-report/src/utilities/appService.ts.html +45 -18
  103. package/coverage/lcov-report/src/utilities/email.ts.html +28 -28
  104. package/coverage/lcov-report/src/utilities/fileSystem.ts.html +4 -4
  105. package/coverage/lcov-report/src/utilities/index.html +27 -27
  106. package/coverage/lcov-report/src/utilities/index.ts.html +2 -2
  107. package/coverage/lcov-report/src/utilities/redis.ts.html +20 -20
  108. package/coverage/lcov-report/src/utilities/templates.ts.html +6 -6
  109. package/coverage/lcov-report/src/utilities/users.ts.html +3 -3
  110. package/coverage/lcov.info +2777 -2582
  111. package/jest.config.ts +7 -2
  112. package/package.json +10 -7
  113. package/scripts/dev/manage.js +2 -2
  114. package/src/api/controllers/global/auth.ts +1 -1
  115. package/src/api/controllers/global/configs.ts +112 -131
  116. package/src/api/controllers/global/events.ts +17 -0
  117. package/src/api/controllers/global/users.ts +14 -1
  118. package/src/api/index.ts +4 -0
  119. package/src/api/routes/global/auth.ts +1 -1
  120. package/src/api/routes/global/configs.ts +7 -7
  121. package/src/api/routes/global/email.ts +1 -1
  122. package/src/api/routes/global/events.ts +8 -0
  123. package/src/api/routes/global/license.ts +1 -1
  124. package/src/api/routes/global/roles.ts +1 -1
  125. package/src/api/routes/global/self.ts +1 -1
  126. package/src/api/routes/global/templates.ts +1 -1
  127. package/src/api/routes/global/tests/groups.spec.ts +58 -0
  128. package/src/api/routes/global/tests/license.spec.ts +0 -2
  129. package/src/api/routes/global/tests/roles.spec.ts +66 -5
  130. package/src/api/routes/global/tests/templates.spec.ts +81 -9
  131. package/src/api/routes/global/tests/users.spec.ts +2 -2
  132. package/src/api/routes/global/users.ts +15 -1
  133. package/src/api/routes/global/workspaces.ts +1 -1
  134. package/src/api/routes/index.ts +2 -0
  135. package/src/api/routes/system/accounts.ts +1 -1
  136. package/src/api/routes/system/environment.ts +1 -1
  137. package/src/api/routes/system/migrations.ts +1 -1
  138. package/src/api/routes/system/restore.ts +1 -1
  139. package/src/api/routes/system/status.ts +1 -1
  140. package/src/api/routes/system/tenants.ts +1 -1
  141. package/src/api/routes/system/tests/environment.spec.ts +1 -1
  142. package/src/constants/index.ts +13 -5
  143. package/src/db/index.ts +1 -1
  144. package/src/environment.ts +6 -1
  145. package/src/index.ts +5 -5
  146. package/src/middleware/cloudRestricted.ts +1 -1
  147. package/src/sdk/users/events.ts +8 -0
  148. package/src/sdk/users/users.ts +23 -4
  149. package/src/tests/TestConfiguration.ts +11 -3
  150. package/src/tests/api/groups.ts +26 -0
  151. package/src/tests/api/index.ts +12 -1
  152. package/src/tests/api/license.ts +17 -0
  153. package/src/tests/api/roles.ts +32 -0
  154. package/src/tests/api/templates.ts +30 -0
  155. package/src/tests/api/users.ts +2 -1
  156. package/src/tests/index.ts +6 -18
  157. package/src/tests/jestEnv.ts +11 -0
  158. package/src/tests/jestSetup.ts +3 -15
  159. package/src/tests/mocks/{email.js → email.ts} +1 -1
  160. package/src/tests/mocks/index.ts +4 -4
  161. package/src/tests/structures/configs.ts +2 -2
  162. package/src/tests/structures/groups.ts +1 -1
  163. package/src/tests/structures/index.ts +4 -4
  164. package/src/tests/structures/users.ts +1 -1
  165. package/src/utilities/appService.ts +12 -3
  166. package/tsconfig.json +2 -2
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95% </span>
26
+ <span class="strong">97.77% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>38/40</span>
28
+ <span class='fraction'>44/45</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">90% </span>
40
+ <span class="strong">96% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>9/10</span>
42
+ <span class='fraction'>24/25</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.28% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>33/35</span>
49
+ <span class='fraction'>35/35</span>
50
50
  </div>
51
51
 
52
52
 
@@ -88,24 +88,24 @@
88
88
  <td data-value="100" class="pct high">100%</td>
89
89
  <td data-value="0" class="abs high">0/0</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
- <td data-value="5" class="abs high">5/5</td>
91
+ <td data-value="10" class="abs high">10/10</td>
92
92
  <td data-value="100" class="pct high">100%</td>
93
93
  <td data-value="12" class="abs high">12/12</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
- <td class="file medium" data-value="groups.ts"><a href="groups.ts.html">groups.ts</a></td>
98
- <td data-value="50" class="pic medium">
99
- <div class="chart"><div class="cover-fill" style="width: 50%"></div><div class="cover-empty" style="width: 50%"></div></div>
97
+ <td class="file high" data-value="groups.ts"><a href="groups.ts.html">groups.ts</a></td>
98
+ <td data-value="100" class="pic high">
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
- <td data-value="50" class="pct medium">50%</td>
102
- <td data-value="4" class="abs medium">2/4</td>
101
+ <td data-value="100" class="pct high">100%</td>
102
+ <td data-value="4" class="abs high">4/4</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
- <td data-value="0" class="pct low">0%</td>
106
- <td data-value="1" class="abs low">0/1</td>
107
- <td data-value="33.33" class="pct low">33.33%</td>
108
- <td data-value="3" class="abs low">1/3</td>
105
+ <td data-value="100" class="pct high">100%</td>
106
+ <td data-value="2" class="abs high">2/2</td>
107
+ <td data-value="100" class="pct high">100%</td>
108
+ <td data-value="3" class="abs high">3/3</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
@@ -114,26 +114,26 @@
114
114
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
115
115
  </td>
116
116
  <td data-value="100" class="pct high">100%</td>
117
- <td data-value="10" class="abs high">10/10</td>
117
+ <td data-value="14" class="abs high">14/14</td>
118
118
  <td data-value="100" class="pct high">100%</td>
119
119
  <td data-value="0" class="abs high">0/0</td>
120
120
  <td data-value="100" class="pct high">100%</td>
121
- <td data-value="0" class="abs high">0/0</td>
121
+ <td data-value="4" class="abs high">4/4</td>
122
122
  <td data-value="100" class="pct high">100%</td>
123
123
  <td data-value="10" class="abs high">10/10</td>
124
124
  </tr>
125
125
 
126
126
  <tr>
127
127
  <td class="file high" data-value="users.ts"><a href="users.ts.html">users.ts</a></td>
128
- <td data-value="100" class="pic high">
129
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
128
+ <td data-value="93.33" class="pic high">
129
+ <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
130
130
  </td>
131
- <td data-value="100" class="pct high">100%</td>
132
- <td data-value="14" class="abs high">14/14</td>
131
+ <td data-value="93.33" class="pct high">93.33%</td>
132
+ <td data-value="15" class="abs high">14/15</td>
133
133
  <td data-value="100" class="pct high">100%</td>
134
134
  <td data-value="0" class="abs high">0/0</td>
135
- <td data-value="100" class="pct high">100%</td>
136
- <td data-value="4" class="abs high">4/4</td>
135
+ <td data-value="88.88" class="pct high">88.88%</td>
136
+ <td data-value="9" class="abs high">8/9</td>
137
137
  <td data-value="100" class="pct high">100%</td>
138
138
  <td data-value="10" class="abs high">10/10</td>
139
139
  </tr>
@@ -146,7 +146,7 @@
146
146
  <div class='footer quiet pad2 space-top1 center small'>
147
147
  Code coverage generated by
148
148
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
149
+ at Sun Feb 05 2023 23:57:08 GMT+0000 (Coordinated Universal Time)
150
150
  </div>
151
151
  <script src="../../../prettify.js"></script>
152
152
  <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'>10/10</span>
28
+ <span class='fraction'>14/14</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,7 +39,7 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/0</span>
42
+ <span class='fraction'>4/4</span>
43
43
  </div>
44
44
 
45
45
 
@@ -85,17 +85,17 @@
85
85
  <a name='L20'></a><a href='#L20'>20</a>
86
86
  <a name='L21'></a><a href='#L21'>21</a>
87
87
  <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
89
- <span class="cline-any cline-yes">17x</span>
90
- <span class="cline-any cline-yes">17x</span>
91
- <span class="cline-any cline-yes">17x</span>
92
- <span class="cline-any cline-yes">17x</span>
88
+ <a name='L23'></a><a href='#L23'>23</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
89
+ <span class="cline-any cline-yes">18x</span>
90
+ <span class="cline-any cline-yes">18x</span>
91
+ <span class="cline-any cline-yes">18x</span>
92
+ <span class="cline-any cline-yes">18x</span>
93
93
  <span class="cline-any cline-neutral">&nbsp;</span>
94
- <span class="cline-any cline-yes">17x</span>
95
- <span class="cline-any cline-yes">17x</span>
96
- <span class="cline-any cline-yes">17x</span>
94
+ <span class="cline-any cline-yes">485x</span>
95
+ <span class="cline-any cline-yes">18x</span>
96
+ <span class="cline-any cline-yes">134x</span>
97
97
  <span class="cline-any cline-neutral">&nbsp;</span>
98
- <span class="cline-any cline-yes">17x</span>
98
+ <span class="cline-any cline-yes">18x</span>
99
99
  <span class="cline-any cline-neutral">&nbsp;</span>
100
100
  <span class="cline-any cline-neutral">&nbsp;</span>
101
101
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -106,16 +106,16 @@
106
106
  <span class="cline-any cline-neutral">&nbsp;</span>
107
107
  <span class="cline-any cline-neutral">&nbsp;</span>
108
108
  <span class="cline-any cline-neutral">&nbsp;</span>
109
- <span class="cline-any cline-yes">17x</span>
109
+ <span class="cline-any cline-yes">152x</span>
110
110
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { structures } from "@budibase/backend-core/tests"
111
111
  import * as configs from "./configs"
112
112
  import * as users from "./users"
113
113
  import * as groups from "./groups"
114
114
  import { v4 as uuid } from "uuid"
115
115
  &nbsp;
116
- const TENANT_ID = "default"
117
- const TENANT_1 = "tenant1"
118
- const CSRF_TOKEN = "e3727778-7af0-4226-b5eb-f43cbe60a306"
116
+ export const TENANT_ID = "default"
117
+ export const TENANT_1 = "tenant1"
118
+ export const CSRF_TOKEN = "e3727778-7af0-4226-b5eb-f43cbe60a306"
119
119
  &nbsp;
120
120
  const pkg = {
121
121
  ...structures,
@@ -128,7 +128,7 @@ const pkg = {
128
128
  groups,
129
129
  }
130
130
  &nbsp;
131
- export = pkg
131
+ export default pkg
132
132
  &nbsp;</pre></td></tr></table></pre>
133
133
 
134
134
  <div class='push'></div><!-- for sticky footer -->
@@ -136,7 +136,7 @@ export = pkg
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
139
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
139
+ at Sun Feb 05 2023 23:57:08 GMT+0000 (Coordinated Universal Time)
140
140
  </div>
141
141
  <script src="../../../prettify.js"></script>
142
142
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">93.33% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>14/14</span>
28
+ <span class='fraction'>14/15</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,9 +37,9 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">88.88% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/4</span>
42
+ <span class='fraction'>8/9</span>
43
43
  </div>
44
44
 
45
45
 
@@ -100,16 +100,16 @@
100
100
  <a name='L35'></a><a href='#L35'>35</a>
101
101
  <a name='L36'></a><a href='#L36'>36</a>
102
102
  <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
103
+ <a name='L38'></a><a href='#L38'>38</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
104
104
  <span class="cline-any cline-neutral">&nbsp;</span>
105
- <span class="cline-any cline-yes">17x</span>
105
+ <span class="cline-any cline-yes">18x</span>
106
106
  <span class="cline-any cline-neutral">&nbsp;</span>
107
- <span class="cline-any cline-yes">17x</span>
108
- <span class="cline-any cline-yes">82x</span>
107
+ <span class="cline-any cline-yes">18x</span>
108
+ <span class="cline-any cline-yes">85x</span>
109
109
  <span class="cline-any cline-neutral">&nbsp;</span>
110
110
  <span class="cline-any cline-neutral">&nbsp;</span>
111
- <span class="cline-any cline-yes">17x</span>
112
- <span class="cline-any cline-yes">78x</span>
111
+ <span class="cline-any cline-yes">31x</span>
112
+ <span class="cline-any cline-yes">81x</span>
113
113
  <span class="cline-any cline-neutral">&nbsp;</span>
114
114
  <span class="cline-any cline-neutral">&nbsp;</span>
115
115
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -117,8 +117,8 @@
117
117
  <span class="cline-any cline-neutral">&nbsp;</span>
118
118
  <span class="cline-any cline-neutral">&nbsp;</span>
119
119
  <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-yes">17x</span>
121
- <span class="cline-any cline-yes">40x</span>
120
+ <span class="cline-any cline-yes">42x</span>
121
+ <span class="cline-any cline-yes">42x</span>
122
122
  <span class="cline-any cline-neutral">&nbsp;</span>
123
123
  <span class="cline-any cline-neutral">&nbsp;</span>
124
124
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -129,7 +129,7 @@
129
129
  <span class="cline-any cline-neutral">&nbsp;</span>
130
130
  <span class="cline-any cline-neutral">&nbsp;</span>
131
131
  <span class="cline-any cline-neutral">&nbsp;</span>
132
- <span class="cline-any cline-yes">17x</span>
132
+ <span class="cline-any cline-yes">18x</span>
133
133
  <span class="cline-any cline-yes">8x</span>
134
134
  <span class="cline-any cline-neutral">&nbsp;</span>
135
135
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -137,7 +137,7 @@
137
137
  <span class="cline-any cline-neutral">&nbsp;</span>
138
138
  <span class="cline-any cline-neutral">&nbsp;</span>
139
139
  <span class="cline-any cline-neutral">&nbsp;</span>
140
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export const email = "test@test.com"
140
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export const <span class="cstat-no" title="statement not covered" >email<span class="fstat-no" title="function not covered" > </span>= "</span>test@test.com"
141
141
  import { AdminUser, BuilderUser, User } from "@budibase/types"
142
142
  import { v4 as uuid } from "uuid"
143
143
  &nbsp;
@@ -149,7 +149,7 @@ export const user = (userProps?: any): User =&gt; {
149
149
  return {
150
150
  email: newEmail(),
151
151
  password: "test",
152
- roles: {},
152
+ roles: { app_test: "admin" },
153
153
  ...userProps,
154
154
  }
155
155
  }
@@ -181,7 +181,7 @@ export const builderUser = (userProps?: any): BuilderUser =&gt; {
181
181
  <div class='footer quiet pad2 space-top1 center small'>
182
182
  Code coverage generated by
183
183
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
184
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
184
+ at Sun Feb 05 2023 23:57:08 GMT+0000 (Coordinated Universal Time)
185
185
  </div>
186
186
  <script src="../../../prettify.js"></script>
187
187
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">47.36% </span>
26
+ <span class="strong">47.61% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>9/19</span>
28
+ <span class='fraction'>10/21</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">47.36% </span>
47
+ <span class="strong">47.61% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>9/19</span>
49
+ <span class='fraction'>10/21</span>
50
50
  </div>
51
51
 
52
52
 
@@ -95,14 +95,24 @@
95
95
  <a name='L30'></a><a href='#L30'>30</a>
96
96
  <a name='L31'></a><a href='#L31'>31</a>
97
97
  <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
99
- <span class="cline-any cline-yes">17x</span>
100
- <span class="cline-any cline-yes">17x</span>
101
- <span class="cline-any cline-yes">17x</span>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
108
+ <span class="cline-any cline-yes">18x</span>
109
+ <span class="cline-any cline-yes">18x</span>
110
+ <span class="cline-any cline-yes">18x</span>
102
111
  <span class="cline-any cline-neutral">&nbsp;</span>
103
112
  <span class="cline-any cline-neutral">&nbsp;</span>
104
- <span class="cline-any cline-yes">98x</span>
105
- <span class="cline-any cline-yes">98x</span>
113
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
+ <span class="cline-any cline-yes">101x</span>
115
+ <span class="cline-any cline-yes">101x</span>
106
116
  <span class="cline-any cline-neutral">&nbsp;</span>
107
117
  <span class="cline-any cline-no">&nbsp;</span>
108
118
  <span class="cline-any cline-no">&nbsp;</span>
@@ -114,23 +124,32 @@
114
124
  <span class="cline-any cline-no">&nbsp;</span>
115
125
  <span class="cline-any cline-neutral">&nbsp;</span>
116
126
  <span class="cline-any cline-no">&nbsp;</span>
127
+ <span class="cline-any cline-neutral">&nbsp;</span>
128
+ <span class="cline-any cline-neutral">&nbsp;</span>
129
+ <span class="cline-any cline-no">&nbsp;</span>
130
+ <span class="cline-any cline-neutral">&nbsp;</span>
117
131
  <span class="cline-any cline-no">&nbsp;</span>
118
132
  <span class="cline-any cline-neutral">&nbsp;</span>
119
133
  <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-yes">17x</span>
121
- <span class="cline-any cline-yes">98x</span>
134
+ <span class="cline-any cline-yes">101x</span>
135
+ <span class="cline-any cline-yes">101x</span>
136
+ <span class="cline-any cline-neutral">&nbsp;</span>
122
137
  <span class="cline-any cline-neutral">&nbsp;</span>
123
138
  <span class="cline-any cline-neutral">&nbsp;</span>
139
+ <span class="cline-any cline-yes">101x</span>
124
140
  <span class="cline-any cline-neutral">&nbsp;</span>
125
141
  <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-yes">98x</span>
142
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-yes">101x</span>
127
145
  <span class="cline-any cline-no">&nbsp;</span>
128
146
  <span class="cline-any cline-neutral">&nbsp;</span>
129
147
  <span class="cline-any cline-neutral">&nbsp;</span>
130
148
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import fetch from "node-fetch"
131
- import { constants, tenancy } from "@budibase/backend-core"
149
+ import { constants, tenancy, logging } from "@budibase/backend-core"
132
150
  import { checkSlashesInUrl } from "../utilities"
133
151
  import env from "../environment"
152
+ import { SyncUserRequest, User } from "@budibase/types"
134
153
  &nbsp;
135
154
  async function makeAppRequest(url: string, method: string, body: any) {
136
155
  if (env.isTest()) {
@@ -146,16 +165,24 @@ async function makeAppRequest(url: string, method: string, body: any) {
146
165
  <span class="cstat-no" title="statement not covered" > request.body = JSON.stringify(body)</span>
147
166
  }
148
167
  <span class="cstat-no" title="statement not covered" > request.method = method</span>
168
+ &nbsp;
169
+ // add x-budibase-correlation-id header
170
+ <span class="cstat-no" title="statement not covered" > logging.correlation.setHeader(request.headers)</span>
171
+ &nbsp;
149
172
  <span class="cstat-no" title="statement not covered" > return fetch(checkSlashesInUrl(env.APPS_URL + url), request)</span>
150
173
  }
151
174
  &nbsp;
152
- export async function syncUserInApps(userId: string) {
175
+ export async function syncUserInApps(userId: string, previousUser?: User) {
176
+ const body: SyncUserRequest = {
177
+ previousUser,
178
+ }
179
+ &nbsp;
153
180
  const response = await makeAppRequest(
154
181
  `/api/users/metadata/sync/${userId}`,
155
182
  "POST",
156
- {}
183
+ body
157
184
  )
158
- <span class="missing-if-branch" title="if path not taken" >I</span>if (response &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >response.status !== 200)</span> {
185
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (response &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >response.status !== 200) {</span>
159
186
  <span class="cstat-no" title="statement not covered" > throw "Unable to sync user."</span>
160
187
  }
161
188
  }
@@ -166,7 +193,7 @@ export async function syncUserInApps(userId: string) {
166
193
  <div class='footer quiet pad2 space-top1 center small'>
167
194
  Code coverage generated by
168
195
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
169
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
196
+ at Sun Feb 05 2023 23:57:08 GMT+0000 (Coordinated Universal Time)
170
197
  </div>
171
198
  <script src="../../prettify.js"></script>
172
199
  <script>
@@ -30,16 +30,16 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">67.05% </span>
33
+ <span class="strong">60% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>57/85</span>
35
+ <span class='fraction'>27/45</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>7/7</span>
42
+ <span class='fraction'>10/10</span>
43
43
  </div>
44
44
 
45
45
 
@@ -318,15 +318,15 @@
318
318
  <a name='L253'></a><a href='#L253'>253</a>
319
319
  <a name='L254'></a><a href='#L254'>254</a>
320
320
  <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
322
- <span class="cline-any cline-yes">17x</span>
323
- <span class="cline-any cline-yes">17x</span>
324
- <span class="cline-any cline-yes">17x</span>
325
- <span class="cline-any cline-yes">17x</span>
326
- <span class="cline-any cline-yes">17x</span>
321
+ <a name='L256'></a><a href='#L256'>256</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
322
+ <span class="cline-any cline-yes">18x</span>
323
+ <span class="cline-any cline-yes">18x</span>
324
+ <span class="cline-any cline-yes">18x</span>
325
+ <span class="cline-any cline-yes">18x</span>
326
+ <span class="cline-any cline-yes">18x</span>
327
327
  <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-yes">17x</span>
329
- <span class="cline-any cline-yes">17x</span>
328
+ <span class="cline-any cline-yes">18x</span>
329
+ <span class="cline-any cline-yes">18x</span>
330
330
  <span class="cline-any cline-neutral">&nbsp;</span>
331
331
  <span class="cline-any cline-neutral">&nbsp;</span>
332
332
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -346,10 +346,10 @@
346
346
  <span class="cline-any cline-neutral">&nbsp;</span>
347
347
  <span class="cline-any cline-neutral">&nbsp;</span>
348
348
  <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-yes">17x</span>
350
- <span class="cline-any cline-yes">17x</span>
349
+ <span class="cline-any cline-yes">18x</span>
350
+ <span class="cline-any cline-yes">18x</span>
351
351
  <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-yes">17x</span>
352
+ <span class="cline-any cline-yes">18x</span>
353
353
  <span class="cline-any cline-neutral">&nbsp;</span>
354
354
  <span class="cline-any cline-neutral">&nbsp;</span>
355
355
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -498,7 +498,7 @@
498
498
  <span class="cline-any cline-neutral">&nbsp;</span>
499
499
  <span class="cline-any cline-neutral">&nbsp;</span>
500
500
  <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-yes">17x</span>
501
+ <span class="cline-any cline-yes">2x</span>
502
502
  <span class="cline-any cline-neutral">&nbsp;</span>
503
503
  <span class="cline-any cline-yes">2x</span>
504
504
  <span class="cline-any cline-no">&nbsp;</span>
@@ -517,7 +517,7 @@
517
517
  <span class="cline-any cline-neutral">&nbsp;</span>
518
518
  <span class="cline-any cline-neutral">&nbsp;</span>
519
519
  <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-yes">17x</span>
520
+ <span class="cline-any cline-yes">7x</span>
521
521
  <span class="cline-any cline-neutral">&nbsp;</span>
522
522
  <span class="cline-any cline-neutral">&nbsp;</span>
523
523
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -569,7 +569,7 @@
569
569
  <span class="cline-any cline-neutral">&nbsp;</span>
570
570
  <span class="cline-any cline-neutral">&nbsp;</span>
571
571
  <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-yes">17x</span>
572
+ <span class="cline-any cline-yes">15x</span>
573
573
  <span class="cline-any cline-yes">15x</span>
574
574
  <span class="cline-any cline-yes">15x</span>
575
575
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -779,36 +779,36 @@ export async function sendEmail(
779
779
  ) {
780
780
  const db = tenancy.getGlobalDB()
781
781
  let config =
782
- (await getSmtpConfiguration(db, opts<span class="branch-0 cbranch-no" title="branch not covered" >?.w</span>orkspaceId, opts<span class="branch-0 cbranch-no" title="branch not covered" >?.a</span>utomation)) || <span class="branch-1 cbranch-no" title="branch not covered" >{}</span>
783
- <span class="missing-if-branch" title="if path not taken" >I</span>if (Object.keys(config).length === 0 &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!TEST_MODE)</span> {
782
+ (await getSmtpConfiguration(db, opts?.workspaceId, opts?.automation)) || <span class="branch-1 cbranch-no" title="branch not covered" >{}</span>
783
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (Object.keys(config).length === 0 &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!TEST_MODE) {</span>
784
784
  <span class="cstat-no" title="statement not covered" > throw "Unable to find SMTP configuration."</span>
785
785
  }
786
786
  const transport = createSMTPTransport(config)
787
787
  // if there is a link code needed this will retrieve it
788
- const code = await getLinkCode(purpose, email, opts.user, opts<span class="branch-0 cbranch-no" title="branch not covered" >?.i</span>nfo)
788
+ const code = await getLinkCode(purpose, email, opts.user, opts?.info)
789
789
  let context
790
790
  if (code) {
791
791
  context = await getSettingsTemplateContext(purpose, code)
792
792
  }
793
793
  &nbsp;
794
794
  let message: any = {
795
- from: opts<span class="branch-0 cbranch-no" title="branch not covered" >?.f</span>rom || config.from,
795
+ from: opts?.from || config.from,
796
796
  html: await buildEmail(purpose, email, context, {
797
- user: opts<span class="branch-0 cbranch-no" title="branch not covered" >?.u</span>ser,
798
- contents: opts<span class="branch-0 cbranch-no" title="branch not covered" >?.c</span>ontents,
797
+ user: opts?.user,
798
+ contents: opts?.contents,
799
799
  }),
800
800
  }
801
801
  &nbsp;
802
802
  message = {
803
803
  ...message,
804
804
  to: email,
805
- cc: opts<span class="branch-0 cbranch-no" title="branch not covered" >?.c</span>c,
806
- bcc: opts<span class="branch-0 cbranch-no" title="branch not covered" >?.b</span>cc,
805
+ cc: opts?.cc,
806
+ bcc: opts?.bcc,
807
807
  }
808
808
  &nbsp;
809
- if (opts<span class="branch-0 cbranch-no" title="branch not covered" >?.s</span>ubject || config.subject) {
809
+ if (opts?.subject || config.subject) {
810
810
  message.subject = await processString(
811
- opts<span class="branch-0 cbranch-no" title="branch not covered" >?.s</span>ubject || config.subject,
811
+ opts?.subject || config.subject,
812
812
  context
813
813
  )
814
814
  }
@@ -835,7 +835,7 @@ export async function verifyConfig(config: any) {
835
835
  <div class='footer quiet pad2 space-top1 center small'>
836
836
  Code coverage generated by
837
837
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
838
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
838
+ at Sun Feb 05 2023 23:57:08 GMT+0000 (Coordinated Universal Time)
839
839
  </div>
840
840
  <script src="../../prettify.js"></script>
841
841
  <script>
@@ -68,10 +68,10 @@
68
68
  <a name='L3'></a><a href='#L3'>3</a>
69
69
  <a name='L4'></a><a href='#L4'>4</a>
70
70
  <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
71
+ <a name='L6'></a><a href='#L6'>6</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
72
72
  <span class="cline-any cline-neutral">&nbsp;</span>
73
- <span class="cline-any cline-yes">17x</span>
74
- <span class="cline-any cline-yes">85x</span>
73
+ <span class="cline-any cline-yes">90x</span>
74
+ <span class="cline-any cline-yes">90x</span>
75
75
  <span class="cline-any cline-neutral">&nbsp;</span>
76
76
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { readFileSync } from "fs"
77
77
  &nbsp;
@@ -85,7 +85,7 @@ export function readStaticFile(path: string) {
85
85
  <div class='footer quiet pad2 space-top1 center small'>
86
86
  Code coverage generated by
87
87
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
88
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
88
+ at Sun Feb 05 2023 23:57:08 GMT+0000 (Coordinated Universal Time)
89
89
  </div>
90
90
  <script src="../../prettify.js"></script>
91
91
  <script>