@budibase/server 2.3.0 → 2.3.2-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (513) hide show
  1. package/__mocks__/aws-sdk.ts +1 -1
  2. package/builder/assets/{index.54ca0c91.js → index.38fddbcb.js} +214 -214
  3. package/builder/index.html +1 -1
  4. package/coverage/clover.xml +8707 -4285
  5. package/coverage/coverage-final.json +154 -71
  6. package/coverage/lcov-report/index.html +332 -122
  7. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +1 -1
  8. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +1 -1
  9. package/coverage/lcov-report/src/api/controllers/application.ts.html +114 -114
  10. package/coverage/lcov-report/src/api/controllers/auth.ts.html +1 -1
  11. package/coverage/lcov-report/src/api/controllers/automation.ts.html +25 -25
  12. package/coverage/lcov-report/src/api/controllers/backup.ts.html +1 -1
  13. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +15 -15
  14. package/coverage/lcov-report/src/api/controllers/component.ts.html +1 -1
  15. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +17 -17
  16. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +12 -12
  17. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +70 -70
  19. package/coverage/lcov-report/src/api/controllers/dev.ts.html +10 -10
  20. package/coverage/lcov-report/src/api/controllers/index.html +35 -35
  21. package/coverage/lcov-report/src/api/controllers/integration.ts.html +1 -1
  22. package/coverage/lcov-report/src/api/controllers/layout.ts.html +11 -11
  23. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +1 -1
  24. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +1 -1
  25. package/coverage/lcov-report/src/api/controllers/permission.ts.html +22 -22
  26. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +1 -1
  27. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +1 -1
  28. package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +8 -8
  30. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +1 -1
  31. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +1 -1
  32. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +1 -1
  33. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +1 -1
  34. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +1 -1
  35. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  36. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +1 -1
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +1 -1
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +1 -1
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +1 -1
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +1 -1
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +1 -1
  43. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +1 -1
  44. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +1 -1
  45. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +1 -1
  46. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +1 -1
  47. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +1 -1
  48. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +1 -1
  50. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +1 -1
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +1 -1
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +1 -1
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +1 -1
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +1 -1
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/curl.spec.js.html +391 -0
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/index.html +116 -0
  59. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/index.html +116 -0
  60. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js.html +796 -0
  61. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/index.html +116 -0
  62. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js.html +805 -0
  63. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.html +116 -0
  64. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.spec.js.html +568 -0
  65. package/coverage/lcov-report/src/api/controllers/query/index.html +1 -1
  66. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +13 -13
  67. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +1 -1
  68. package/coverage/lcov-report/src/api/controllers/role.ts.html +1 -1
  69. package/coverage/lcov-report/src/api/controllers/routing.ts.html +1 -1
  70. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +1 -1
  71. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +1 -1
  72. package/coverage/lcov-report/src/api/controllers/row/index.html +5 -5
  73. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +16 -16
  74. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +16 -16
  75. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +1 -1
  76. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +16 -16
  77. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +15 -15
  78. package/coverage/lcov-report/src/api/controllers/screen.ts.html +21 -21
  79. package/coverage/lcov-report/src/api/controllers/script.ts.html +1 -1
  80. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  81. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +1 -1
  82. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +43 -43
  83. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +1 -1
  84. package/coverage/lcov-report/src/api/controllers/table/index.html +20 -20
  85. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +18 -18
  86. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +49 -49
  87. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +34 -34
  88. package/coverage/lcov-report/src/api/controllers/templates.ts.html +1 -1
  89. package/coverage/lcov-report/src/api/controllers/user.ts.html +15 -15
  90. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +1 -1
  91. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  92. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +1 -1
  93. package/coverage/lcov-report/src/api/controllers/view/tests/index.html +116 -0
  94. package/coverage/lcov-report/src/api/controllers/view/tests/viewBuilder.spec.js.html +277 -0
  95. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +1 -1
  96. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +1 -1
  97. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +13 -13
  98. package/coverage/lcov-report/src/api/index.html +1 -1
  99. package/coverage/lcov-report/src/api/index.ts.html +5 -5
  100. package/coverage/lcov-report/src/api/routes/analytics.ts.html +1 -1
  101. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +1 -1
  102. package/coverage/lcov-report/src/api/routes/application.ts.html +1 -1
  103. package/coverage/lcov-report/src/api/routes/auth.ts.html +1 -1
  104. package/coverage/lcov-report/src/api/routes/automation.ts.html +1 -1
  105. package/coverage/lcov-report/src/api/routes/backup.ts.html +1 -1
  106. package/coverage/lcov-report/src/api/routes/cloud.ts.html +1 -1
  107. package/coverage/lcov-report/src/api/routes/component.ts.html +1 -1
  108. package/coverage/lcov-report/src/api/routes/datasource.ts.html +1 -1
  109. package/coverage/lcov-report/src/api/routes/deploy.ts.html +1 -1
  110. package/coverage/lcov-report/src/api/routes/dev.ts.html +1 -1
  111. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  112. package/coverage/lcov-report/src/api/routes/index.ts.html +1 -1
  113. package/coverage/lcov-report/src/api/routes/integration.ts.html +1 -1
  114. package/coverage/lcov-report/src/api/routes/layout.ts.html +1 -1
  115. package/coverage/lcov-report/src/api/routes/metadata.ts.html +1 -1
  116. package/coverage/lcov-report/src/api/routes/migrations.ts.html +1 -1
  117. package/coverage/lcov-report/src/api/routes/permission.ts.html +1 -1
  118. package/coverage/lcov-report/src/api/routes/plugin.ts.html +1 -1
  119. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +2 -5
  120. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  121. package/coverage/lcov-report/src/api/routes/public/index.ts.html +1 -1
  122. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  123. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +1 -1
  124. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +1 -1
  125. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +1 -1
  126. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +1 -1
  127. package/coverage/lcov-report/src/api/routes/public/tests/compare.spec.js.html +583 -0
  128. package/coverage/lcov-report/src/api/routes/public/tests/index.html +38 -8
  129. package/coverage/lcov-report/src/api/routes/public/tests/users.spec.js.html +199 -0
  130. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +1 -1
  131. package/coverage/lcov-report/src/api/routes/public/users.ts.html +1 -1
  132. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +1 -1
  133. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  134. package/coverage/lcov-report/src/api/routes/query.ts.html +1 -1
  135. package/coverage/lcov-report/src/api/routes/role.ts.html +1 -1
  136. package/coverage/lcov-report/src/api/routes/routing.ts.html +1 -1
  137. package/coverage/lcov-report/src/api/routes/row.ts.html +1 -1
  138. package/coverage/lcov-report/src/api/routes/screen.ts.html +1 -1
  139. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  140. package/coverage/lcov-report/src/api/routes/static.ts.html +1 -1
  141. package/coverage/lcov-report/src/api/routes/table.ts.html +1 -1
  142. package/coverage/lcov-report/src/api/routes/templates.ts.html +1 -1
  143. package/coverage/lcov-report/src/api/routes/tests/analytics.spec.js.html +271 -0
  144. package/coverage/lcov-report/src/api/routes/tests/apikeys.spec.js.html +259 -0
  145. package/coverage/lcov-report/src/api/routes/tests/application.spec.ts.html +1066 -0
  146. package/coverage/lcov-report/src/api/routes/tests/auth.spec.js.html +154 -0
  147. package/coverage/lcov-report/src/api/routes/tests/automation.spec.js.html +1123 -0
  148. package/coverage/lcov-report/src/api/routes/tests/backup.spec.ts.html +223 -0
  149. package/coverage/lcov-report/src/api/routes/tests/cloud.seq.spec.ts.html +268 -0
  150. package/coverage/lcov-report/src/api/routes/tests/component.spec.js.html +178 -0
  151. package/coverage/lcov-report/src/api/routes/tests/datasource.spec.ts.html +799 -0
  152. package/coverage/lcov-report/src/api/routes/tests/dev.spec.js.html +202 -0
  153. package/coverage/lcov-report/src/api/routes/tests/index.html +521 -0
  154. package/coverage/lcov-report/src/api/routes/tests/integration.spec.js.html +238 -0
  155. package/coverage/lcov-report/src/api/routes/tests/internalSearch.spec.js.html +670 -0
  156. package/coverage/lcov-report/src/api/routes/tests/layout.spec.js.html +259 -0
  157. package/coverage/lcov-report/src/api/routes/tests/metadata.spec.js.html +280 -0
  158. package/coverage/lcov-report/src/api/routes/tests/misc.spec.js.html +358 -0
  159. package/coverage/lcov-report/src/api/routes/tests/permissions.spec.js.html +484 -0
  160. package/coverage/lcov-report/src/api/routes/tests/plugin.spec.ts.html +622 -0
  161. package/coverage/lcov-report/src/api/routes/tests/query.seq.spec.js.html +1696 -0
  162. package/coverage/lcov-report/src/api/routes/tests/role.spec.js.html +478 -0
  163. package/coverage/lcov-report/src/api/routes/tests/routing.spec.js.html +430 -0
  164. package/coverage/lcov-report/src/api/routes/tests/row.spec.js.html +1804 -0
  165. package/coverage/lcov-report/src/api/routes/tests/screen.spec.js.html +391 -0
  166. package/coverage/lcov-report/src/api/routes/tests/static.spec.js.html +541 -0
  167. package/coverage/lcov-report/src/api/routes/tests/table.spec.js.html +991 -0
  168. package/coverage/lcov-report/src/api/routes/tests/templates.spec.js.html +154 -0
  169. package/coverage/lcov-report/src/api/routes/tests/user.spec.js.html +688 -0
  170. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +110 -41
  171. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +19 -19
  172. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +11 -5
  173. package/coverage/lcov-report/src/api/routes/tests/view.spec.js.html +1342 -0
  174. package/coverage/lcov-report/src/api/routes/tests/webhook.spec.js.html +484 -0
  175. package/coverage/lcov-report/src/api/routes/user.ts.html +1 -1
  176. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  177. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +1 -1
  178. package/coverage/lcov-report/src/api/routes/view.ts.html +1 -1
  179. package/coverage/lcov-report/src/api/routes/webhook.ts.html +1 -1
  180. package/coverage/lcov-report/src/app.ts.html +6 -3
  181. package/coverage/lcov-report/src/automations/actions.ts.html +1 -1
  182. package/coverage/lcov-report/src/automations/automationUtils.ts.html +1 -1
  183. package/coverage/lcov-report/src/automations/bullboard.ts.html +2 -2
  184. package/coverage/lcov-report/src/automations/index.html +27 -27
  185. package/coverage/lcov-report/src/automations/index.ts.html +5 -5
  186. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  187. package/coverage/lcov-report/src/automations/logging/index.ts.html +7 -7
  188. package/coverage/lcov-report/src/automations/steps/bash.ts.html +1 -1
  189. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +1 -1
  190. package/coverage/lcov-report/src/automations/steps/delay.ts.html +1 -1
  191. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +1 -1
  192. package/coverage/lcov-report/src/automations/steps/discord.ts.html +1 -1
  193. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +1 -1
  194. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +1 -1
  195. package/coverage/lcov-report/src/automations/steps/filter.ts.html +1 -1
  196. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  197. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +1 -1
  198. package/coverage/lcov-report/src/automations/steps/loop.ts.html +1 -1
  199. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +1 -1
  200. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +1 -1
  201. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +1 -1
  202. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +1 -1
  203. package/coverage/lcov-report/src/automations/steps/slack.ts.html +1 -1
  204. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +1 -1
  205. package/coverage/lcov-report/src/automations/steps/utils.ts.html +1 -1
  206. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +1 -1
  207. package/coverage/lcov-report/src/automations/tests/automation.spec.js.html +337 -0
  208. package/coverage/lcov-report/src/automations/tests/bash.spec.js.html +187 -0
  209. package/coverage/lcov-report/src/automations/tests/createRow.spec.ts.html +223 -0
  210. package/coverage/lcov-report/src/automations/tests/delay.spec.js.html +133 -0
  211. package/coverage/lcov-report/src/automations/tests/deleteRow.spec.ts.html +250 -0
  212. package/coverage/lcov-report/src/automations/tests/discord.spec.js.html +166 -0
  213. package/coverage/lcov-report/src/automations/tests/executeQuery.spec.js.html +229 -0
  214. package/coverage/lcov-report/src/automations/tests/executeScript.spec.js.html +229 -0
  215. package/coverage/lcov-report/src/automations/tests/filter.spec.js.html +232 -0
  216. package/coverage/lcov-report/src/automations/tests/index.html +341 -0
  217. package/coverage/lcov-report/src/automations/tests/loop.spec.ts.html +220 -0
  218. package/coverage/lcov-report/src/automations/tests/outgoingWebhook.spec.js.html +202 -0
  219. package/coverage/lcov-report/src/automations/tests/queryRows.spec.js.html +436 -0
  220. package/coverage/lcov-report/src/automations/tests/sendSmtpEmail.spec.js.html +298 -0
  221. package/coverage/lcov-report/src/automations/tests/serverLog.spec.js.html +151 -0
  222. package/coverage/lcov-report/src/automations/tests/updateRow.spec.js.html +217 -0
  223. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  224. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  225. package/coverage/lcov-report/src/automations/tests/zapier.spec.js.html +166 -0
  226. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +1 -1
  227. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +1 -1
  228. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  229. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +1 -1
  230. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +1 -1
  231. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +1 -1
  232. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +1 -1
  233. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +1 -1
  234. package/coverage/lcov-report/src/automations/triggers.ts.html +24 -24
  235. package/coverage/lcov-report/src/automations/unitTests/automationUtils.spec.ts.html +280 -0
  236. package/coverage/lcov-report/src/automations/unitTests/index.html +116 -0
  237. package/coverage/lcov-report/src/automations/utils.ts.html +38 -38
  238. package/coverage/lcov-report/src/constants/index.html +1 -1
  239. package/coverage/lcov-report/src/constants/index.ts.html +2 -2
  240. package/coverage/lcov-report/src/constants/layouts.ts.html +1 -1
  241. package/coverage/lcov-report/src/constants/screens.ts.html +3 -3
  242. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +1 -1
  243. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +1 -1
  244. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +1 -1
  245. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  246. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +1 -1
  247. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +1 -1
  248. package/coverage/lcov-report/src/db/dynamoClient.ts.html +1 -1
  249. package/coverage/lcov-report/src/db/inMemoryView.ts.html +1 -1
  250. package/coverage/lcov-report/src/db/index.html +16 -16
  251. package/coverage/lcov-report/src/db/index.ts.html +13 -13
  252. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +12 -12
  253. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +1 -1
  254. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  255. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +15 -15
  256. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +6 -6
  257. package/coverage/lcov-report/src/db/newid.ts.html +3 -3
  258. package/coverage/lcov-report/src/db/tests/index.html +131 -0
  259. package/coverage/lcov-report/src/db/tests/linkController.spec.js.html +793 -0
  260. package/coverage/lcov-report/src/db/tests/linkTests.spec.js.html +277 -0
  261. package/coverage/lcov-report/src/db/utils.ts.html +33 -33
  262. package/coverage/lcov-report/src/definitions/automations.ts.html +1 -1
  263. package/coverage/lcov-report/src/definitions/index.html +1 -1
  264. package/coverage/lcov-report/src/environment.ts.html +19 -19
  265. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +1 -1
  266. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +1 -1
  267. package/coverage/lcov-report/src/events/index.html +1 -1
  268. package/coverage/lcov-report/src/events/index.ts.html +1 -1
  269. package/coverage/lcov-report/src/events/utils.ts.html +1 -1
  270. package/coverage/lcov-report/src/index.html +16 -16
  271. package/coverage/lcov-report/src/index.ts.html +1 -1
  272. package/coverage/lcov-report/src/integrations/airtable.ts.html +1 -1
  273. package/coverage/lcov-report/src/integrations/arangodb.ts.html +1 -1
  274. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  275. package/coverage/lcov-report/src/integrations/base/query.ts.html +1 -1
  276. package/coverage/lcov-report/src/integrations/base/sql.ts.html +1 -1
  277. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +1 -1
  278. package/coverage/lcov-report/src/integrations/base/utils.ts.html +1 -1
  279. package/coverage/lcov-report/src/integrations/couchdb.ts.html +1 -1
  280. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +1 -1
  281. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +1 -1
  282. package/coverage/lcov-report/src/integrations/firebase.ts.html +1 -1
  283. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1 -1
  284. package/coverage/lcov-report/src/integrations/index.html +1 -1
  285. package/coverage/lcov-report/src/integrations/index.ts.html +10 -10
  286. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1 -1
  287. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1 -1
  288. package/coverage/lcov-report/src/integrations/mysql.ts.html +1 -1
  289. package/coverage/lcov-report/src/integrations/oracle.ts.html +1 -1
  290. package/coverage/lcov-report/src/integrations/postgres.ts.html +1 -1
  291. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  292. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  293. package/coverage/lcov-report/src/integrations/redis.ts.html +1 -1
  294. package/coverage/lcov-report/src/integrations/rest.ts.html +1 -1
  295. package/coverage/lcov-report/src/integrations/s3.ts.html +1 -1
  296. package/coverage/lcov-report/src/integrations/snowflake.ts.html +1 -1
  297. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  298. package/coverage/lcov-report/src/integrations/tests/airtable.spec.ts.html +310 -0
  299. package/coverage/lcov-report/src/integrations/tests/arangodb.spec.ts.html +199 -0
  300. package/coverage/lcov-report/src/integrations/tests/couchdb.spec.ts.html +349 -0
  301. package/coverage/lcov-report/src/integrations/tests/dynamodb.spec.ts.html +550 -0
  302. package/coverage/lcov-report/src/integrations/tests/elasticsearch.spec.ts.html +331 -0
  303. package/coverage/lcov-report/src/integrations/tests/firebase.spec.ts.html +376 -0
  304. package/coverage/lcov-report/src/integrations/tests/index.html +230 -5
  305. package/coverage/lcov-report/src/integrations/tests/microsoftSqlServer.spec.ts.html +253 -0
  306. package/coverage/lcov-report/src/integrations/tests/mongo.spec.ts.html +1087 -0
  307. package/coverage/lcov-report/src/integrations/tests/mysql.spec.ts.html +484 -0
  308. package/coverage/lcov-report/src/integrations/tests/oracle.spec.ts.html +373 -0
  309. package/coverage/lcov-report/src/integrations/tests/postgres.spec.ts.html +328 -0
  310. package/coverage/lcov-report/src/integrations/tests/redis.spec.ts.html +337 -0
  311. package/coverage/lcov-report/src/integrations/tests/rest.spec.ts.html +1870 -0
  312. package/coverage/lcov-report/src/integrations/tests/s3.spec.ts.html +421 -0
  313. package/coverage/lcov-report/src/integrations/tests/sql.spec.ts.html +1753 -0
  314. package/coverage/lcov-report/src/integrations/utils.ts.html +3 -3
  315. package/coverage/lcov-report/src/middleware/appInfo.ts.html +1 -1
  316. package/coverage/lcov-report/src/middleware/authorized.ts.html +19 -19
  317. package/coverage/lcov-report/src/middleware/builder.ts.html +13 -13
  318. package/coverage/lcov-report/src/middleware/currentapp.ts.html +47 -47
  319. package/coverage/lcov-report/src/middleware/index.html +15 -15
  320. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  321. package/coverage/lcov-report/src/middleware/publicApi.ts.html +1 -1
  322. package/coverage/lcov-report/src/middleware/resourceId.ts.html +1 -1
  323. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  324. package/coverage/lcov-report/src/middleware/tests/authorized.spec.js.html +574 -0
  325. package/coverage/lcov-report/src/middleware/tests/currentapp.spec.js.html +814 -0
  326. package/coverage/lcov-report/src/middleware/tests/index.html +161 -0
  327. package/coverage/lcov-report/src/middleware/tests/resourceId.spec.js.html +397 -0
  328. package/coverage/lcov-report/src/middleware/tests/selfhost.spec.js.html +214 -0
  329. package/coverage/lcov-report/src/middleware/utils.ts.html +3 -3
  330. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +1 -1
  331. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +1 -1
  332. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +1 -1
  333. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  334. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +1 -1
  335. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +1 -1
  336. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +1 -1
  337. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +1 -1
  338. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +1 -1
  339. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +1 -1
  340. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +1 -1
  341. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  342. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +1 -1
  343. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +1 -1
  344. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +1 -1
  345. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  346. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +1 -1
  347. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +1 -1
  348. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  349. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +1 -1
  350. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +1 -1
  351. package/coverage/lcov-report/src/migrations/functions/tests/appUrls.spec.js.html +163 -0
  352. package/coverage/lcov-report/src/migrations/functions/tests/index.html +161 -0
  353. package/coverage/lcov-report/src/migrations/functions/tests/syncQuotas.spec.js.html +163 -0
  354. package/coverage/lcov-report/src/migrations/functions/tests/tableSettings.spec.ts.html +517 -0
  355. package/coverage/lcov-report/src/migrations/functions/tests/userEmailViewCasing.spec.js.html +190 -0
  356. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  357. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +1 -1
  358. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +1 -1
  359. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +1 -1
  360. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +1 -1
  361. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/index.html +131 -0
  362. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts.html +190 -0
  363. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts.html +244 -0
  364. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +1 -1
  365. package/coverage/lcov-report/src/migrations/index.html +1 -1
  366. package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
  367. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  368. package/coverage/lcov-report/src/migrations/tests/index.html +23 -8
  369. package/coverage/lcov-report/src/migrations/tests/index.spec.ts.html +535 -0
  370. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  371. package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
  372. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +1 -1
  373. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +18 -18
  374. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +7 -7
  375. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  376. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +1 -1
  377. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +8 -8
  378. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +1 -1
  379. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +26 -8
  380. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +1 -1
  381. package/coverage/lcov-report/src/sdk/app/backups/index.html +10 -10
  382. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +1 -1
  383. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +1 -1
  384. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +15 -15
  385. package/coverage/lcov-report/src/sdk/app/datasources/index.html +1 -1
  386. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +1 -1
  387. package/coverage/lcov-report/src/sdk/app/queries/index.html +1 -1
  388. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +1 -1
  389. package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +1 -1
  390. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +1 -1
  391. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  392. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +1 -1
  393. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +1 -1
  394. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  395. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +5 -5
  396. package/coverage/lcov-report/src/sdk/index.html +1 -1
  397. package/coverage/lcov-report/src/sdk/index.ts.html +2 -2
  398. package/coverage/lcov-report/src/sdk/tests/attachments.spec.ts.html +313 -0
  399. package/coverage/lcov-report/src/sdk/tests/index.html +116 -0
  400. package/coverage/lcov-report/src/sdk/users/index.html +1 -1
  401. package/coverage/lcov-report/src/sdk/users/index.ts.html +1 -1
  402. package/coverage/lcov-report/src/sdk/users/utils.ts.html +24 -24
  403. package/coverage/lcov-report/src/sdk/utils/index.html +1 -1
  404. package/coverage/lcov-report/src/sdk/utils/index.ts.html +1 -1
  405. package/coverage/lcov-report/src/startup.ts.html +4 -4
  406. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +308 -140
  407. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +6 -6
  408. package/coverage/lcov-report/src/tests/utilities/index.html +18 -18
  409. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  410. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +18 -18
  411. package/coverage/lcov-report/src/threads/automation.ts.html +1 -1
  412. package/coverage/lcov-report/src/threads/index.html +1 -1
  413. package/coverage/lcov-report/src/threads/index.ts.html +1 -1
  414. package/coverage/lcov-report/src/threads/query.ts.html +1 -1
  415. package/coverage/lcov-report/src/threads/utils.ts.html +1 -1
  416. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +2 -2
  417. package/coverage/lcov-report/src/utilities/centralPath.ts.html +1 -1
  418. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +3 -3
  419. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +1 -1
  420. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +2 -2
  421. package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
  422. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1 -1
  423. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +1 -1
  424. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  425. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +1 -1
  426. package/coverage/lcov-report/src/utilities/global.ts.html +36 -36
  427. package/coverage/lcov-report/src/utilities/index.html +34 -19
  428. package/coverage/lcov-report/src/utilities/index.ts.html +19 -19
  429. package/coverage/lcov-report/src/utilities/redis.ts.html +1 -1
  430. package/coverage/lcov-report/src/utilities/retry.ts.html +139 -0
  431. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  432. package/coverage/lcov-report/src/utilities/routing/index.ts.html +1 -1
  433. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
  434. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +41 -41
  435. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +2 -2
  436. package/coverage/lcov-report/src/utilities/rowProcessor/tests/index.html +116 -0
  437. package/coverage/lcov-report/src/utilities/rowProcessor/tests/utils.spec.ts.html +256 -0
  438. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +12 -12
  439. package/coverage/lcov-report/src/utilities/schema.ts.html +1 -1
  440. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +1 -1
  441. package/coverage/lcov-report/src/utilities/security.ts.html +19 -19
  442. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  443. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +32 -32
  444. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  445. package/coverage/lcov-report/src/utilities/users.ts.html +1 -1
  446. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +15 -15
  447. package/coverage/lcov-report/src/watch.ts.html +1 -1
  448. package/coverage/lcov-report/src/websocket.ts.html +1 -1
  449. package/coverage/lcov.info +14433 -7220
  450. package/dist/app.js +1 -1
  451. package/dist/package.json +8 -6
  452. package/dist/sdk/app/backups/exports.js +8 -2
  453. package/dist/tsconfig.build.tsbuildinfo +1 -1
  454. package/dist/utilities/retry.js +30 -0
  455. package/jest-testcontainers-config.js +8 -0
  456. package/jest.config.ts +28 -11
  457. package/package.json +9 -7
  458. package/scripts/load/create-many-apps.js +24 -0
  459. package/scripts/load/create-many-rows.js +30 -0
  460. package/scripts/load/utils.js +66 -0
  461. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  462. package/src/api/routes/public/applications.ts +0 -1
  463. package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
  464. package/src/api/routes/tests/analytics.spec.js +4 -1
  465. package/src/api/routes/tests/apikeys.spec.js +1 -1
  466. package/src/api/routes/tests/application.spec.ts +20 -6
  467. package/src/api/routes/tests/auth.spec.js +2 -2
  468. package/src/api/routes/tests/automation.spec.js +6 -2
  469. package/src/api/routes/tests/backup.spec.ts +4 -13
  470. package/src/api/routes/tests/{cloud.spec.ts → cloud.seq.spec.ts} +10 -14
  471. package/src/api/routes/tests/component.spec.js +1 -1
  472. package/src/api/routes/tests/datasource.spec.ts +20 -3
  473. package/src/api/routes/tests/dev.spec.js +1 -1
  474. package/src/api/routes/tests/integration.spec.js +1 -1
  475. package/src/api/routes/tests/layout.spec.js +1 -1
  476. package/src/api/routes/tests/metadata.spec.js +1 -1
  477. package/src/api/routes/tests/misc.spec.js +1 -1
  478. package/src/api/routes/tests/permissions.spec.js +4 -1
  479. package/src/api/routes/tests/{query.spec.js → query.seq.spec.js} +21 -1
  480. package/src/api/routes/tests/role.spec.js +6 -1
  481. package/src/api/routes/tests/routing.spec.js +1 -1
  482. package/src/api/routes/tests/row.spec.js +11 -3
  483. package/src/api/routes/tests/screen.spec.js +1 -1
  484. package/src/api/routes/tests/static.spec.js +2 -1
  485. package/src/api/routes/tests/table.spec.js +1 -1
  486. package/src/api/routes/tests/templates.spec.js +1 -1
  487. package/src/api/routes/tests/user.spec.js +3 -0
  488. package/src/api/routes/tests/utilities/TestFunctions.ts +25 -2
  489. package/src/api/routes/tests/utilities/index.ts +5 -3
  490. package/src/api/routes/tests/view.spec.js +4 -1
  491. package/src/api/routes/tests/webhook.spec.js +11 -2
  492. package/src/app.ts +2 -1
  493. package/src/automations/tests/automation.spec.js +4 -4
  494. package/src/automations/tests/bash.spec.js +1 -1
  495. package/src/automations/tests/discord.spec.js +1 -1
  496. package/src/automations/tests/executeQuery.spec.js +2 -3
  497. package/src/automations/tests/executeScript.spec.js +1 -1
  498. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  499. package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
  500. package/src/automations/tests/serverLog.spec.js +1 -1
  501. package/src/automations/tests/updateRow.spec.js +1 -1
  502. package/src/automations/tests/zapier.spec.js +1 -1
  503. package/src/db/tests/linkController.spec.js +4 -1
  504. package/src/db/tests/linkTests.spec.js +1 -1
  505. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  506. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  507. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
  508. package/src/migrations/tests/index.spec.ts +3 -2
  509. package/src/sdk/app/backups/exports.ts +8 -2
  510. package/src/tests/jestEnv.ts +2 -6
  511. package/src/tests/jestSetup.ts +5 -6
  512. package/src/tests/utilities/TestConfiguration.ts +90 -34
  513. package/src/utilities/retry.ts +18 -0
@@ -1,4 +1,4 @@
1
- import { mocks } from "@budibase/backend-core/tests"
1
+ import { generator, mocks, structures } from "@budibase/backend-core/tests"
2
2
 
3
3
  // init the licensing mock
4
4
  import * as pro from "@budibase/pro"
@@ -10,6 +10,7 @@ mocks.licenses.useUnlimited()
10
10
  import { init as dbInit } from "../../db"
11
11
  dbInit()
12
12
  import env from "../../environment"
13
+ import { env as coreEnv } from "@budibase/backend-core"
13
14
  import {
14
15
  basicTable,
15
16
  basicRow,
@@ -38,13 +39,16 @@ import { cleanup } from "../../utilities/fileSystem"
38
39
  import newid from "../../db/newid"
39
40
  import { generateUserMetadataID } from "../../db/utils"
40
41
  import { startup } from "../../startup"
42
+ import { AuthToken, Database } from "@budibase/types"
41
43
  const supertest = require("supertest")
42
44
 
43
- const GLOBAL_USER_ID = "us_uuid1"
44
- const EMAIL = "babs@babs.com"
45
- const FIRSTNAME = "Barbara"
46
- const LASTNAME = "Barbington"
47
- const CSRF_TOKEN = "e3727778-7af0-4226-b5eb-f43cbe60a306"
45
+ type DefaultUserValues = {
46
+ globalUserId: string
47
+ email: string
48
+ firstName: string
49
+ lastName: string
50
+ csrfToken: string
51
+ }
48
52
 
49
53
  class TestConfiguration {
50
54
  server: any
@@ -62,6 +66,8 @@ class TestConfiguration {
62
66
  linkedTable: any
63
67
  automation: any
64
68
  datasource: any
69
+ tenantId: string | null
70
+ defaultUserValues: DefaultUserValues
65
71
 
66
72
  constructor(openServer = true) {
67
73
  if (openServer) {
@@ -76,6 +82,18 @@ class TestConfiguration {
76
82
  }
77
83
  this.appId = null
78
84
  this.allApps = []
85
+ this.tenantId = null
86
+ this.defaultUserValues = this.populateDefaultUserValues()
87
+ }
88
+
89
+ populateDefaultUserValues(): DefaultUserValues {
90
+ return {
91
+ globalUserId: `us_${newid()}`,
92
+ email: generator.email(),
93
+ firstName: generator.first(),
94
+ lastName: generator.last(),
95
+ csrfToken: generator.hash(),
96
+ }
79
97
  }
80
98
 
81
99
  getRequest() {
@@ -100,10 +118,10 @@ class TestConfiguration {
100
118
 
101
119
  getUserDetails() {
102
120
  return {
103
- globalId: GLOBAL_USER_ID,
104
- email: EMAIL,
105
- firstName: FIRSTNAME,
106
- lastName: LASTNAME,
121
+ globalId: this.defaultUserValues.globalUserId,
122
+ email: this.defaultUserValues.email,
123
+ firstName: this.defaultUserValues.firstName,
124
+ lastName: this.defaultUserValues.lastName,
107
125
  }
108
126
  }
109
127
 
@@ -111,7 +129,9 @@ class TestConfiguration {
111
129
  if (!appId) {
112
130
  appId = this.appId
113
131
  }
114
- return tenancy.doInTenant(TENANT_ID, () => {
132
+
133
+ const tenant = this.getTenantId()
134
+ return tenancy.doInTenant(tenant, () => {
115
135
  // check if already in a context
116
136
  if (context.getAppId() == null && appId !== null) {
117
137
  return context.doInAppContext(appId, async () => {
@@ -127,6 +147,11 @@ class TestConfiguration {
127
147
 
128
148
  // use a new id as the name to avoid name collisions
129
149
  async init(appName = newid()) {
150
+ this.defaultUserValues = this.populateDefaultUserValues()
151
+ if (context.isMultiTenant()) {
152
+ this.tenantId = structures.tenant.id()
153
+ }
154
+
130
155
  if (!this.started) {
131
156
  await startup()
132
157
  }
@@ -149,6 +174,27 @@ class TestConfiguration {
149
174
  }
150
175
  }
151
176
 
177
+ // MODES
178
+ #setMultiTenancy = (value: boolean) => {
179
+ env._set("MULTI_TENANCY", value)
180
+ coreEnv._set("MULTI_TENANCY", value)
181
+ }
182
+
183
+ #setSelfHosted = (value: boolean) => {
184
+ env._set("SELF_HOSTED", value)
185
+ coreEnv._set("SELF_HOSTED", value)
186
+ }
187
+
188
+ modeCloud = () => {
189
+ this.#setSelfHosted(false)
190
+ this.#setMultiTenancy(true)
191
+ }
192
+
193
+ modeSelf = () => {
194
+ this.#setSelfHosted(true)
195
+ this.#setMultiTenancy(false)
196
+ }
197
+
152
198
  // UTILS
153
199
 
154
200
  async _req(body: any, params: any, controlFunc: any) {
@@ -159,7 +205,7 @@ class TestConfiguration {
159
205
  // fake cookies, we don't need them
160
206
  request.cookies = { set: () => {}, get: () => {} }
161
207
  request.config = { jwtSecret: env.JWT_SECRET }
162
- request.user = { appId, tenantId: TENANT_ID }
208
+ request.user = { appId, tenantId: this.getTenantId() }
163
209
  request.query = {}
164
210
  request.request = {
165
211
  body,
@@ -175,15 +221,15 @@ class TestConfiguration {
175
221
 
176
222
  // USER / AUTH
177
223
  async globalUser({
178
- id = GLOBAL_USER_ID,
179
- firstName = FIRSTNAME,
180
- lastName = LASTNAME,
224
+ id = this.defaultUserValues.globalUserId,
225
+ firstName = this.defaultUserValues.firstName,
226
+ lastName = this.defaultUserValues.lastName,
181
227
  builder = true,
182
228
  admin = false,
183
- email = EMAIL,
229
+ email = this.defaultUserValues.email,
184
230
  roles,
185
231
  }: any = {}) {
186
- return tenancy.doWithGlobalDB(TENANT_ID, async (db: any) => {
232
+ return tenancy.doWithGlobalDB(this.getTenantId(), async (db: Database) => {
187
233
  let existing
188
234
  try {
189
235
  existing = await db.get(id)
@@ -194,14 +240,14 @@ class TestConfiguration {
194
240
  _id: id,
195
241
  ...existing,
196
242
  roles: roles || {},
197
- tenantId: TENANT_ID,
243
+ tenantId: this.getTenantId(),
198
244
  firstName,
199
245
  lastName,
200
246
  }
201
247
  await sessions.createASession(id, {
202
248
  sessionId: "sessionid",
203
- tenantId: TENANT_ID,
204
- csrfToken: CSRF_TOKEN,
249
+ tenantId: this.getTenantId(),
250
+ csrfToken: this.defaultUserValues.csrfToken,
205
251
  })
206
252
  if (builder) {
207
253
  user.builder = { global: true }
@@ -215,7 +261,7 @@ class TestConfiguration {
215
261
  }
216
262
  const resp = await db.put(user)
217
263
  return {
218
- _rev: resp._rev,
264
+ _rev: resp.rev,
219
265
  ...user,
220
266
  }
221
267
  })
@@ -223,9 +269,9 @@ class TestConfiguration {
223
269
 
224
270
  async createUser(
225
271
  id = null,
226
- firstName = FIRSTNAME,
227
- lastName = LASTNAME,
228
- email = EMAIL,
272
+ firstName = this.defaultUserValues.firstName,
273
+ lastName = this.defaultUserValues.lastName,
274
+ email = this.defaultUserValues.email,
229
275
  builder = true,
230
276
  admin = false,
231
277
  roles = {}
@@ -264,13 +310,13 @@ class TestConfiguration {
264
310
  }
265
311
  await sessions.createASession(userId, {
266
312
  sessionId: "sessionid",
267
- tenantId: TENANT_ID,
313
+ tenantId: this.getTenantId(),
268
314
  })
269
315
  // have to fake this
270
316
  const authObj = {
271
317
  userId,
272
318
  sessionId: "sessionid",
273
- tenantId: TENANT_ID,
319
+ tenantId: this.getTenantId(),
274
320
  }
275
321
  const app = {
276
322
  roleId: roleId,
@@ -293,10 +339,11 @@ class TestConfiguration {
293
339
  }
294
340
 
295
341
  defaultHeaders(extras = {}) {
296
- const authObj = {
297
- userId: GLOBAL_USER_ID,
342
+ const tenantId = this.getTenantId()
343
+ const authObj: AuthToken = {
344
+ userId: this.defaultUserValues.globalUserId,
298
345
  sessionId: "sessionid",
299
- tenantId: TENANT_ID,
346
+ tenantId,
300
347
  }
301
348
  const app = {
302
349
  roleId: roles.BUILTIN_ROLE_IDS.ADMIN,
@@ -310,7 +357,7 @@ class TestConfiguration {
310
357
  `${constants.Cookie.Auth}=${authToken}`,
311
358
  `${constants.Cookie.CurrentApp}=${appToken}`,
312
359
  ],
313
- [constants.Header.CSRF_TOKEN]: CSRF_TOKEN,
360
+ [constants.Header.CSRF_TOKEN]: this.defaultUserValues.csrfToken,
314
361
  ...extras,
315
362
  }
316
363
  if (this.appId) {
@@ -319,6 +366,10 @@ class TestConfiguration {
319
366
  return headers
320
367
  }
321
368
 
369
+ getTenantId() {
370
+ return this.tenantId || TENANT_ID
371
+ }
372
+
322
373
  publicHeaders({ prodApp = true } = {}) {
323
374
  const appId = prodApp ? this.prodAppId : this.appId
324
375
 
@@ -328,11 +379,16 @@ class TestConfiguration {
328
379
  if (appId) {
329
380
  headers[constants.Header.APP_ID] = appId
330
381
  }
382
+
383
+ if (this.tenantId) {
384
+ headers[constants.Header.TENANT_ID] = this.tenantId
385
+ }
386
+
331
387
  return headers
332
388
  }
333
389
 
334
390
  async roleHeaders({
335
- email = EMAIL,
391
+ email = this.defaultUserValues.email,
336
392
  roleId = roles.BUILTIN_ROLE_IDS.ADMIN,
337
393
  builder = false,
338
394
  prodApp = true,
@@ -342,8 +398,8 @@ class TestConfiguration {
342
398
 
343
399
  // API
344
400
 
345
- async generateApiKey(userId = GLOBAL_USER_ID) {
346
- return tenancy.doWithGlobalDB(TENANT_ID, async (db: any) => {
401
+ async generateApiKey(userId = this.defaultUserValues.globalUserId) {
402
+ return tenancy.doWithGlobalDB(this.getTenantId(), async (db: any) => {
347
403
  const id = dbCore.generateDevInfoID(userId)
348
404
  let devInfo
349
405
  try {
@@ -352,7 +408,7 @@ class TestConfiguration {
352
408
  devInfo = { _id: id, userId }
353
409
  }
354
410
  devInfo.apiKey = encryption.encrypt(
355
- `${TENANT_ID}${dbCore.SEPARATOR}${newid()}`
411
+ `${this.getTenantId()}${dbCore.SEPARATOR}${newid()}`
356
412
  )
357
413
  await db.put(devInfo)
358
414
  return devInfo.apiKey
@@ -0,0 +1,18 @@
1
+ export async function retry<T extends (...arg0: any[]) => any>(
2
+ fn: T,
3
+ maxTry: number = 5,
4
+ retryCount = 1
5
+ ): Promise<Awaited<ReturnType<T>>> {
6
+ const currRetry = typeof retryCount === "number" ? retryCount : 1
7
+ try {
8
+ const result = await fn()
9
+ return result
10
+ } catch (e) {
11
+ console.log(`Retry ${currRetry} failed.`)
12
+ if (currRetry > maxTry) {
13
+ console.log(`All ${maxTry} retry attempts exhausted`)
14
+ throw e
15
+ }
16
+ return retry(fn, maxTry, currRetry + 1)
17
+ }
18
+ }