@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
@@ -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'>5/5</span>
28
+ <span class='fraction'>7/7</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,14 +39,14 @@
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'>2/2</span>
42
+ <span class='fraction'>3/3</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>5/5</span>
49
+ <span class='fraction'>7/7</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,37 +84,44 @@
84
84
  <a name='L19'></a><a href='#L19'>19</a>
85
85
  <a name='L20'></a><a href='#L20'>20</a>
86
86
  <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
88
93
  <span class="cline-any cline-neutral">&nbsp;</span>
94
+ <span class="cline-any cline-yes">17x</span>
89
95
  <span class="cline-any cline-neutral">&nbsp;</span>
90
- <span class="cline-any cline-yes">7x</span>
96
+ <span class="cline-any cline-yes">17x</span>
91
97
  <span class="cline-any cline-neutral">&nbsp;</span>
98
+ <span class="cline-any cline-yes">17x</span>
92
99
  <span class="cline-any cline-neutral">&nbsp;</span>
93
100
  <span class="cline-any cline-neutral">&nbsp;</span>
101
+ <span class="cline-any cline-yes">17x</span>
102
+ <span class="cline-any cline-yes">2x</span>
103
+ <span class="cline-any cline-neutral">&nbsp;</span>
94
104
  <span class="cline-any cline-neutral">&nbsp;</span>
95
- <span class="cline-any cline-yes">7x</span>
96
- <span class="cline-any cline-yes">7x</span>
97
105
  <span class="cline-any cline-neutral">&nbsp;</span>
98
106
  <span class="cline-any cline-neutral">&nbsp;</span>
99
- <span class="cline-any cline-yes">7x</span>
100
- <span class="cline-any cline-yes">2x</span>
101
107
  <span class="cline-any cline-neutral">&nbsp;</span>
102
108
  <span class="cline-any cline-neutral">&nbsp;</span>
103
109
  <span class="cline-any cline-neutral">&nbsp;</span>
110
+ <span class="cline-any cline-yes">17x</span>
111
+ <span class="cline-any cline-yes">1x</span>
112
+ <span class="cline-any cline-neutral">&nbsp;</span>
113
+ <span class="cline-any cline-neutral">&nbsp;</span>
104
114
  <span class="cline-any cline-neutral">&nbsp;</span>
105
115
  <span class="cline-any cline-neutral">&nbsp;</span>
106
116
  <span class="cline-any cline-neutral">&nbsp;</span>
107
117
  <span class="cline-any cline-neutral">&nbsp;</span>
108
118
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import TestConfiguration from "../TestConfiguration"
109
119
  import { User } from "@budibase/types"
120
+ import { TestAPI } from "./base"
110
121
  &nbsp;
111
- export class SelfAPI {
112
- config: TestConfiguration
113
- request: any
114
- &nbsp;
122
+ export class SelfAPI extends TestAPI {
115
123
  constructor(config: TestConfiguration) {
116
- this.config = config
117
- this.request = config.request
124
+ super(config)
118
125
  }
119
126
  &nbsp;
120
127
  updateSelf = (user: User) =&gt; {
@@ -125,6 +132,14 @@ export class SelfAPI {
125
132
  .expect("Content-Type", /json/)
126
133
  .expect(200)
127
134
  }
135
+ &nbsp;
136
+ getSelf = (user: User) =&gt; {
137
+ return this.request
138
+ .get(`/api/global/self`)
139
+ .set(this.config.authHeaders(user))
140
+ .expect("Content-Type", /json/)
141
+ .expect(200)
142
+ }
128
143
  }
129
144
  &nbsp;</pre></td></tr></table></pre>
130
145
 
@@ -133,7 +148,7 @@ export class SelfAPI {
133
148
  <div class='footer quiet pad2 space-top1 center small'>
134
149
  Code coverage generated by
135
150
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
136
- at Wed Nov 16 2022 12:02:15 GMT+0000 (Coordinated Universal Time)
151
+ at Wed Nov 16 2022 13:31:07 GMT+0000 (Coordinated Universal Time)
137
152
  </div>
138
153
  <script src="../../../prettify.js"></script>
139
154
  <script>
@@ -0,0 +1,121 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/tests/api/status.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/tests/api</a> status.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>5/5</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/2</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>5/5</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
79
+ <span class="cline-any cline-yes">17x</span>
80
+ <span class="cline-any cline-neutral">&nbsp;</span>
81
+ <span class="cline-any cline-yes">17x</span>
82
+ <span class="cline-any cline-neutral">&nbsp;</span>
83
+ <span class="cline-any cline-yes">17x</span>
84
+ <span class="cline-any cline-neutral">&nbsp;</span>
85
+ <span class="cline-any cline-neutral">&nbsp;</span>
86
+ <span class="cline-any cline-yes">17x</span>
87
+ <span class="cline-any cline-yes">2x</span>
88
+ <span class="cline-any cline-neutral">&nbsp;</span>
89
+ <span class="cline-any cline-neutral">&nbsp;</span>
90
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import TestConfiguration from "../TestConfiguration"
91
+ import { TestAPI } from "./base"
92
+ &nbsp;
93
+ export class StatusAPI extends TestAPI {
94
+ constructor(config: TestConfiguration) {
95
+ super(config)
96
+ }
97
+ &nbsp;
98
+ getStatus = () =&gt; {
99
+ return this.request.get(`/api/system/status`).expect(200)
100
+ }
101
+ }
102
+ &nbsp;</pre></td></tr></table></pre>
103
+
104
+ <div class='push'></div><!-- for sticky footer -->
105
+ </div><!-- /wrapper -->
106
+ <div class='footer quiet pad2 space-top1 center small'>
107
+ Code coverage generated by
108
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
+ at Wed Nov 16 2022 13:31:07 GMT+0000 (Coordinated Universal Time)
110
+ </div>
111
+ <script src="../../../prettify.js"></script>
112
+ <script>
113
+ window.onload = function () {
114
+ prettyPrint();
115
+ };
116
+ </script>
117
+ <script src="../../../sorter.js"></script>
118
+ <script src="../../../block-navigation.js"></script>
119
+ </body>
120
+ </html>
121
+
@@ -0,0 +1,130 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/tests/api/tenants.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/tests/api</a> tenants.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>5/5</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">80% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>8/10</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/2</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>5/5</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
82
+ <span class="cline-any cline-yes">17x</span>
83
+ <span class="cline-any cline-neutral">&nbsp;</span>
84
+ <span class="cline-any cline-yes">17x</span>
85
+ <span class="cline-any cline-neutral">&nbsp;</span>
86
+ <span class="cline-any cline-yes">17x</span>
87
+ <span class="cline-any cline-neutral">&nbsp;</span>
88
+ <span class="cline-any cline-neutral">&nbsp;</span>
89
+ <span class="cline-any cline-yes">17x</span>
90
+ <span class="cline-any cline-yes">3x</span>
91
+ <span class="cline-any cline-neutral">&nbsp;</span>
92
+ <span class="cline-any cline-neutral">&nbsp;</span>
93
+ <span class="cline-any cline-neutral">&nbsp;</span>
94
+ <span class="cline-any cline-neutral">&nbsp;</span>
95
+ <span class="cline-any cline-neutral">&nbsp;</span>
96
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import TestConfiguration from "../TestConfiguration"
97
+ import { TestAPI, TestAPIOpts } from "./base"
98
+ &nbsp;
99
+ export class TenantAPI extends TestAPI {
100
+ constructor(config: TestConfiguration) {
101
+ super(config)
102
+ }
103
+ &nbsp;
104
+ delete = (tenantId: string, opts?: TestAPIOpts) =&gt; {
105
+ return this.request
106
+ .delete(`/api/system/tenants/${tenantId}`)
107
+ .set(opts<span class="branch-0 cbranch-no" title="branch not covered" >?.h</span>eaders)
108
+ .expect(opts<span class="branch-0 cbranch-no" title="branch not covered" >?.s</span>tatus ? opts.status : 204)
109
+ }
110
+ }
111
+ &nbsp;</pre></td></tr></table></pre>
112
+
113
+ <div class='push'></div><!-- for sticky footer -->
114
+ </div><!-- /wrapper -->
115
+ <div class='footer quiet pad2 space-top1 center small'>
116
+ Code coverage generated by
117
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
118
+ at Wed Nov 16 2022 13:31:07 GMT+0000 (Coordinated Universal Time)
119
+ </div>
120
+ <script src="../../../prettify.js"></script>
121
+ <script>
122
+ window.onload = function () {
123
+ prettyPrint();
124
+ };
125
+ </script>
126
+ <script src="../../../sorter.js"></script>
127
+ <script src="../../../block-navigation.js"></script>
128
+ </body>
129
+ </html>
130
+
@@ -25,28 +25,28 @@
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'>35/35</span>
28
+ <span class='fraction'>45/45</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">79.31% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>10/10</span>
35
+ <span class='fraction'>23/29</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'>12/12</span>
42
+ <span class='fraction'>15/15</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>31/31</span>
49
+ <span class='fraction'>41/41</span>
50
50
  </div>
51
51
 
52
52
 
@@ -173,26 +173,58 @@
173
173
  <a name='L108'></a><a href='#L108'>108</a>
174
174
  <a name='L109'></a><a href='#L109'>109</a>
175
175
  <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
177
- <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-neutral">&nbsp;</span>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
179
209
  <span class="cline-any cline-neutral">&nbsp;</span>
180
210
  <span class="cline-any cline-neutral">&nbsp;</span>
181
211
  <span class="cline-any cline-neutral">&nbsp;</span>
182
212
  <span class="cline-any cline-neutral">&nbsp;</span>
183
213
  <span class="cline-any cline-neutral">&nbsp;</span>
184
- <span class="cline-any cline-yes">7x</span>
185
214
  <span class="cline-any cline-neutral">&nbsp;</span>
215
+ <span class="cline-any cline-yes">17x</span>
216
+ <span class="cline-any cline-yes">17x</span>
186
217
  <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-yes">17x</span>
187
219
  <span class="cline-any cline-neutral">&nbsp;</span>
220
+ <span class="cline-any cline-yes">17x</span>
188
221
  <span class="cline-any cline-neutral">&nbsp;</span>
189
- <span class="cline-any cline-yes">7x</span>
190
- <span class="cline-any cline-yes">7x</span>
222
+ <span class="cline-any cline-yes">17x</span>
191
223
  <span class="cline-any cline-neutral">&nbsp;</span>
192
224
  <span class="cline-any cline-neutral">&nbsp;</span>
193
225
  <span class="cline-any cline-neutral">&nbsp;</span>
194
226
  <span class="cline-any cline-neutral">&nbsp;</span>
195
- <span class="cline-any cline-yes">7x</span>
227
+ <span class="cline-any cline-yes">17x</span>
196
228
  <span class="cline-any cline-yes">3x</span>
197
229
  <span class="cline-any cline-yes">3x</span>
198
230
  <span class="cline-any cline-yes">3x</span>
@@ -217,7 +249,7 @@
217
249
  <span class="cline-any cline-yes">2x</span>
218
250
  <span class="cline-any cline-neutral">&nbsp;</span>
219
251
  <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-yes">7x</span>
252
+ <span class="cline-any cline-yes">17x</span>
221
253
  <span class="cline-any cline-yes">1x</span>
222
254
  <span class="cline-any cline-neutral">&nbsp;</span>
223
255
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -228,7 +260,7 @@
228
260
  <span class="cline-any cline-neutral">&nbsp;</span>
229
261
  <span class="cline-any cline-neutral">&nbsp;</span>
230
262
  <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-yes">7x</span>
263
+ <span class="cline-any cline-yes">17x</span>
232
264
  <span class="cline-any cline-yes">2x</span>
233
265
  <span class="cline-any cline-yes">2x</span>
234
266
  <span class="cline-any cline-yes">2x</span>
@@ -241,7 +273,7 @@
241
273
  <span class="cline-any cline-neutral">&nbsp;</span>
242
274
  <span class="cline-any cline-neutral">&nbsp;</span>
243
275
  <span class="cline-any cline-neutral">&nbsp;</span>
244
- <span class="cline-any cline-yes">7x</span>
276
+ <span class="cline-any cline-yes">17x</span>
245
277
  <span class="cline-any cline-yes">6x</span>
246
278
  <span class="cline-any cline-yes">6x</span>
247
279
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -253,7 +285,7 @@
253
285
  <span class="cline-any cline-yes">6x</span>
254
286
  <span class="cline-any cline-neutral">&nbsp;</span>
255
287
  <span class="cline-any cline-neutral">&nbsp;</span>
256
- <span class="cline-any cline-yes">7x</span>
288
+ <span class="cline-any cline-yes">17x</span>
257
289
  <span class="cline-any cline-yes">3x</span>
258
290
  <span class="cline-any cline-yes">3x</span>
259
291
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -266,7 +298,31 @@
266
298
  <span class="cline-any cline-neutral">&nbsp;</span>
267
299
  <span class="cline-any cline-neutral">&nbsp;</span>
268
300
  <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-yes">7x</span>
301
+ <span class="cline-any cline-yes">17x</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-neutral">&nbsp;</span>
304
+ <span class="cline-any cline-yes">6x</span>
305
+ <span class="cline-any cline-yes">6x</span>
306
+ <span class="cline-any cline-yes">6x</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-yes">6x</span>
313
+ <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-yes">6x</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-yes">17x</span>
270
326
  <span class="cline-any cline-yes">20x</span>
271
327
  <span class="cline-any cline-neutral">&nbsp;</span>
272
328
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -275,7 +331,7 @@
275
331
  <span class="cline-any cline-neutral">&nbsp;</span>
276
332
  <span class="cline-any cline-neutral">&nbsp;</span>
277
333
  <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-yes">7x</span>
334
+ <span class="cline-any cline-yes">17x</span>
279
335
  <span class="cline-any cline-yes">5x</span>
280
336
  <span class="cline-any cline-neutral">&nbsp;</span>
281
337
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -283,21 +339,29 @@
283
339
  <span class="cline-any cline-neutral">&nbsp;</span>
284
340
  <span class="cline-any cline-neutral">&nbsp;</span>
285
341
  <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-yes">17x</span>
343
+ <span class="cline-any cline-yes">6x</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
350
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
287
351
  BulkUserResponse,
288
352
  BulkUserRequest,
289
353
  InviteUsersRequest,
290
354
  User,
355
+ CreateAdminUserRequest,
291
356
  } from "@budibase/types"
357
+ import * as structures from "../structures"
358
+ import { generator } from "@budibase/backend-core/tests"
292
359
  import TestConfiguration from "../TestConfiguration"
360
+ import { TestAPI, TestAPIOpts } from "./base"
293
361
  &nbsp;
294
- export class UserAPI {
295
- config: TestConfiguration
296
- request: any
297
- &nbsp;
362
+ export class UserAPI extends TestAPI {
298
363
  constructor(config: TestConfiguration) {
299
- this.config = config
300
- this.request = config.request
364
+ super(config)
301
365
  }
302
366
  &nbsp;
303
367
  // INVITE
@@ -375,6 +439,30 @@ export class UserAPI {
375
439
  }
376
440
  &nbsp;
377
441
  // USER
442
+ &nbsp;
443
+ createAdminUser = async (
444
+ request?: CreateAdminUserRequest,
445
+ opts?: TestAPIOpts
446
+ ) =&gt; {
447
+ if (!request) {
448
+ request = {
449
+ email: structures.email(),
450
+ password: generator.string(),
451
+ tenantId: structures.uuid(),
452
+ }
453
+ }
454
+ const res = await this.request
455
+ .post(`/api/global/users/init`)
456
+ .send(request)
457
+ .set(this.config.internalAPIHeaders())
458
+ .expect("Content-Type", /json/)
459
+ .expect(<span class="branch-1 cbranch-no" title="branch not covered" >opts?.status </span>? <span class="branch-0 cbranch-no" title="branch not covered" >opts.status </span>: 200)
460
+ &nbsp;
461
+ return {
462
+ ...request,
463
+ userId: res.body._id,
464
+ }
465
+ }
378
466
  &nbsp;
379
467
  saveUser = (user: User, status?: number) =&gt; {
380
468
  return this.request
@@ -392,6 +480,14 @@ export class UserAPI {
392
480
  .expect("Content-Type", /json/)
393
481
  .expect(status ? status : 200)
394
482
  }
483
+ &nbsp;
484
+ getUser = (userId: string, opts?: TestAPIOpts) =&gt; {
485
+ return this.request
486
+ .get(`/api/global/users/${userId}`)
487
+ .set(opts<span class="branch-0 cbranch-no" title="branch not covered" >?.h</span>eaders ? opts.headers : <span class="branch-1 cbranch-no" title="branch not covered" >this.config.defaultHeaders())</span>
488
+ .expect("Content-Type", /json/)
489
+ .expect(opts<span class="branch-0 cbranch-no" title="branch not covered" >?.s</span>tatus ? <span class="branch-0 cbranch-no" title="branch not covered" >opts.status </span>: 200)
490
+ }
395
491
  }
396
492
  &nbsp;</pre></td></tr></table></pre>
397
493
 
@@ -400,7 +496,7 @@ export class UserAPI {
400
496
  <div class='footer quiet pad2 space-top1 center small'>
401
497
  Code coverage generated by
402
498
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
403
- at Wed Nov 16 2022 12:02:15 GMT+0000 (Coordinated Universal Time)
499
+ at Wed Nov 16 2022 13:31:07 GMT+0000 (Coordinated Universal Time)
404
500
  </div>
405
501
  <script src="../../../prettify.js"></script>
406
502
  <script>
@@ -70,7 +70,7 @@
70
70
  <a name='L5'></a><a href='#L5'>5</a>
71
71
  <a name='L6'></a><a href='#L6'>6</a>
72
72
  <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
73
+ <a name='L8'></a><a href='#L8'>8</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
74
74
  <span class="cline-any cline-neutral">&nbsp;</span>
75
75
  <span class="cline-any cline-neutral">&nbsp;</span>
76
76
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -91,7 +91,7 @@
91
91
  <div class='footer quiet pad2 space-top1 center small'>
92
92
  Code coverage generated by
93
93
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
94
- at Wed Nov 16 2022 12:02:15 GMT+0000 (Coordinated Universal Time)
94
+ at Wed Nov 16 2022 13:31:07 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  <script src="../../prettify.js"></script>
97
97
  <script>