@budibase/server 2.3.13 → 2.3.14-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 (551) hide show
  1. package/__mocks__/aws-sdk.ts +1 -1
  2. package/builder/assets/{index.4488f38d.css → index.a534ca24.css} +1 -1
  3. package/builder/assets/{index.b1cc0b01.js → index.d7529be1.js} +204 -204
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +11936 -7197
  6. package/coverage/coverage-final.json +356 -271
  7. package/coverage/lcov-report/index.html +420 -195
  8. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +6 -6
  9. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
  10. package/coverage/lcov-report/src/api/controllers/application.ts.html +140 -140
  11. package/coverage/lcov-report/src/api/controllers/auth.ts.html +9 -9
  12. package/coverage/lcov-report/src/api/controllers/automation.ts.html +47 -47
  13. package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
  14. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +26 -26
  15. package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
  16. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +37 -37
  17. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +14 -14
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  19. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +81 -81
  20. package/coverage/lcov-report/src/api/controllers/dev.ts.html +26 -26
  21. package/coverage/lcov-report/src/api/controllers/index.html +37 -37
  22. package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
  23. package/coverage/lcov-report/src/api/controllers/layout.ts.html +15 -15
  24. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
  25. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
  26. package/coverage/lcov-report/src/api/controllers/permission.ts.html +34 -34
  27. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +2 -2
  28. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +4 -4
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +18 -18
  31. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +5 -5
  32. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
  33. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +3 -3
  34. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +3 -3
  35. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +6 -6
  36. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +2 -2
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +7 -7
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +2 -2
  44. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +4 -4
  45. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +5 -5
  46. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +4 -4
  47. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +6 -6
  48. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +4 -4
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +7 -7
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +3 -3
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +7 -7
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +9 -9
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +13 -13
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/curl.spec.js.html +391 -0
  59. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/index.html +116 -0
  60. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/index.html +116 -0
  61. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js.html +796 -0
  62. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/index.html +116 -0
  63. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js.html +805 -0
  64. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.html +116 -0
  65. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.spec.js.html +568 -0
  66. package/coverage/lcov-report/src/api/controllers/query/index.html +10 -10
  67. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +61 -55
  68. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
  69. package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
  70. package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
  71. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +431 -419
  72. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +211 -175
  73. package/coverage/lcov-report/src/api/controllers/row/index.html +42 -42
  74. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +79 -79
  75. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +34 -34
  76. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +6 -6
  77. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +22 -22
  78. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +31 -31
  79. package/coverage/lcov-report/src/api/controllers/screen.ts.html +26 -26
  80. package/coverage/lcov-report/src/api/controllers/script.ts.html +2 -2
  81. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  82. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +22 -22
  83. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +51 -51
  84. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +198 -195
  85. package/coverage/lcov-report/src/api/controllers/table/index.html +47 -47
  86. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +42 -42
  87. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +61 -61
  88. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +63 -63
  89. package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
  90. package/coverage/lcov-report/src/api/controllers/user.ts.html +28 -28
  91. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +2 -2
  92. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  93. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +16 -16
  94. package/coverage/lcov-report/src/api/controllers/view/tests/index.html +116 -0
  95. package/coverage/lcov-report/src/api/controllers/view/tests/viewBuilder.spec.js.html +277 -0
  96. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +5 -5
  97. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +7 -7
  98. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +25 -25
  99. package/coverage/lcov-report/src/api/index.html +1 -1
  100. package/coverage/lcov-report/src/api/index.ts.html +27 -27
  101. package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
  102. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
  103. package/coverage/lcov-report/src/api/routes/application.ts.html +10 -10
  104. package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
  105. package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
  106. package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
  107. package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
  108. package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
  109. package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
  110. package/coverage/lcov-report/src/api/routes/deploy.ts.html +8 -8
  111. package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
  112. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  113. package/coverage/lcov-report/src/api/routes/index.ts.html +35 -35
  114. package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
  115. package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
  116. package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
  117. package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
  118. package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
  119. package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
  120. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +14 -17
  121. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  122. package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
  123. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  124. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +4 -4
  125. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
  126. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
  127. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
  128. package/coverage/lcov-report/src/api/routes/public/tests/compare.spec.js.html +583 -0
  129. package/coverage/lcov-report/src/api/routes/public/tests/index.html +42 -12
  130. package/coverage/lcov-report/src/api/routes/public/tests/users.spec.js.html +199 -0
  131. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +78 -27
  132. package/coverage/lcov-report/src/api/routes/public/users.ts.html +12 -12
  133. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
  134. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  135. package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
  136. package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
  137. package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
  138. package/coverage/lcov-report/src/api/routes/row.ts.html +11 -11
  139. package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
  140. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  141. package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
  142. package/coverage/lcov-report/src/api/routes/table.ts.html +11 -11
  143. package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
  144. package/coverage/lcov-report/src/api/routes/tests/analytics.spec.js.html +271 -0
  145. package/coverage/lcov-report/src/api/routes/tests/apikeys.spec.js.html +259 -0
  146. package/coverage/lcov-report/src/api/routes/tests/application.spec.ts.html +1066 -0
  147. package/coverage/lcov-report/src/api/routes/tests/auth.spec.js.html +154 -0
  148. package/coverage/lcov-report/src/api/routes/tests/automation.spec.js.html +1123 -0
  149. package/coverage/lcov-report/src/api/routes/tests/backup.spec.ts.html +223 -0
  150. package/coverage/lcov-report/src/api/routes/tests/cloud.seq.spec.ts.html +268 -0
  151. package/coverage/lcov-report/src/api/routes/tests/component.spec.js.html +178 -0
  152. package/coverage/lcov-report/src/api/routes/tests/datasource.spec.ts.html +799 -0
  153. package/coverage/lcov-report/src/api/routes/tests/dev.spec.js.html +202 -0
  154. package/coverage/lcov-report/src/api/routes/tests/environmentVariables.spec.ts.html +517 -0
  155. package/coverage/lcov-report/src/api/routes/tests/index.html +536 -0
  156. package/coverage/lcov-report/src/api/routes/tests/integration.spec.js.html +238 -0
  157. package/coverage/lcov-report/src/api/routes/tests/internalSearch.spec.js.html +670 -0
  158. package/coverage/lcov-report/src/api/routes/tests/layout.spec.js.html +259 -0
  159. package/coverage/lcov-report/src/api/routes/tests/metadata.spec.js.html +280 -0
  160. package/coverage/lcov-report/src/api/routes/tests/misc.spec.js.html +358 -0
  161. package/coverage/lcov-report/src/api/routes/tests/permissions.spec.js.html +484 -0
  162. package/coverage/lcov-report/src/api/routes/tests/plugin.spec.ts.html +622 -0
  163. package/coverage/lcov-report/src/api/routes/tests/query.seq.spec.js.html +1699 -0
  164. package/coverage/lcov-report/src/api/routes/tests/role.spec.js.html +478 -0
  165. package/coverage/lcov-report/src/api/routes/tests/routing.spec.js.html +430 -0
  166. package/coverage/lcov-report/src/api/routes/tests/row.spec.js.html +1804 -0
  167. package/coverage/lcov-report/src/api/routes/tests/screen.spec.js.html +391 -0
  168. package/coverage/lcov-report/src/api/routes/tests/static.spec.js.html +541 -0
  169. package/coverage/lcov-report/src/api/routes/tests/table.spec.js.html +991 -0
  170. package/coverage/lcov-report/src/api/routes/tests/templates.spec.js.html +154 -0
  171. package/coverage/lcov-report/src/api/routes/tests/user.spec.js.html +679 -0
  172. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +110 -41
  173. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +19 -19
  174. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +29 -23
  175. package/coverage/lcov-report/src/api/routes/tests/view.spec.js.html +1342 -0
  176. package/coverage/lcov-report/src/api/routes/tests/webhook.spec.js.html +484 -0
  177. package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
  178. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  179. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +42 -42
  180. package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
  181. package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
  182. package/coverage/lcov-report/src/app.ts.html +59 -44
  183. package/coverage/lcov-report/src/automations/actions.ts.html +24 -24
  184. package/coverage/lcov-report/src/automations/automationUtils.ts.html +4 -4
  185. package/coverage/lcov-report/src/automations/bullboard.ts.html +9 -9
  186. package/coverage/lcov-report/src/automations/index.html +27 -27
  187. package/coverage/lcov-report/src/automations/index.ts.html +5 -5
  188. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  189. package/coverage/lcov-report/src/automations/logging/index.ts.html +10 -10
  190. package/coverage/lcov-report/src/automations/steps/bash.ts.html +8 -8
  191. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
  192. package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
  193. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
  194. package/coverage/lcov-report/src/automations/steps/discord.ts.html +8 -8
  195. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +7 -7
  196. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +7 -7
  197. package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
  198. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  199. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  200. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  201. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +9 -9
  202. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +13 -13
  203. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +6 -6
  204. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +4 -4
  205. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  206. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
  207. package/coverage/lcov-report/src/automations/steps/utils.ts.html +1 -1
  208. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +6 -6
  209. package/coverage/lcov-report/src/automations/tests/automation.spec.js.html +337 -0
  210. package/coverage/lcov-report/src/automations/tests/bash.spec.js.html +187 -0
  211. package/coverage/lcov-report/src/automations/tests/createRow.spec.ts.html +223 -0
  212. package/coverage/lcov-report/src/automations/tests/delay.spec.js.html +133 -0
  213. package/coverage/lcov-report/src/automations/tests/deleteRow.spec.ts.html +250 -0
  214. package/coverage/lcov-report/src/automations/tests/discord.spec.js.html +166 -0
  215. package/coverage/lcov-report/src/automations/tests/executeQuery.spec.js.html +229 -0
  216. package/coverage/lcov-report/src/automations/tests/executeScript.spec.js.html +229 -0
  217. package/coverage/lcov-report/src/automations/tests/filter.spec.js.html +232 -0
  218. package/coverage/lcov-report/src/automations/tests/index.html +341 -0
  219. package/coverage/lcov-report/src/automations/tests/loop.spec.ts.html +220 -0
  220. package/coverage/lcov-report/src/automations/tests/outgoingWebhook.spec.js.html +202 -0
  221. package/coverage/lcov-report/src/automations/tests/queryRows.spec.js.html +436 -0
  222. package/coverage/lcov-report/src/automations/tests/sendSmtpEmail.spec.js.html +298 -0
  223. package/coverage/lcov-report/src/automations/tests/serverLog.spec.js.html +151 -0
  224. package/coverage/lcov-report/src/automations/tests/updateRow.spec.js.html +217 -0
  225. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  226. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  227. package/coverage/lcov-report/src/automations/tests/zapier.spec.js.html +166 -0
  228. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
  229. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
  230. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  231. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
  232. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
  233. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
  234. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
  235. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
  236. package/coverage/lcov-report/src/automations/triggers.ts.html +44 -44
  237. package/coverage/lcov-report/src/automations/unitTests/automationUtils.spec.ts.html +280 -0
  238. package/coverage/lcov-report/src/automations/unitTests/index.html +116 -0
  239. package/coverage/lcov-report/src/automations/utils.ts.html +63 -63
  240. package/coverage/lcov-report/src/constants/index.html +16 -16
  241. package/coverage/lcov-report/src/constants/index.ts.html +33 -99
  242. package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
  243. package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
  244. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +33 -45
  245. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
  246. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
  247. package/coverage/lcov-report/src/db/defaultData/index.html +11 -11
  248. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
  249. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
  250. package/coverage/lcov-report/src/db/dynamoClient.ts.html +15 -15
  251. package/coverage/lcov-report/src/db/inMemoryView.ts.html +4 -4
  252. package/coverage/lcov-report/src/db/index.html +16 -16
  253. package/coverage/lcov-report/src/db/index.ts.html +19 -19
  254. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +26 -23
  255. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  256. package/coverage/lcov-report/src/db/linkedRows/index.html +10 -10
  257. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +23 -23
  258. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +10 -10
  259. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  260. package/coverage/lcov-report/src/db/tests/index.html +131 -0
  261. package/coverage/lcov-report/src/db/tests/linkController.spec.js.html +793 -0
  262. package/coverage/lcov-report/src/db/tests/linkTests.spec.js.html +277 -0
  263. package/coverage/lcov-report/src/db/utils.ts.html +52 -52
  264. package/coverage/lcov-report/src/definitions/automations.ts.html +2 -2
  265. package/coverage/lcov-report/src/definitions/index.html +1 -1
  266. package/coverage/lcov-report/src/environment.ts.html +34 -31
  267. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +6 -6
  268. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +6 -6
  269. package/coverage/lcov-report/src/events/index.html +1 -1
  270. package/coverage/lcov-report/src/events/index.ts.html +4 -4
  271. package/coverage/lcov-report/src/events/utils.ts.html +10 -10
  272. package/coverage/lcov-report/src/index.html +23 -23
  273. package/coverage/lcov-report/src/index.ts.html +1 -1
  274. package/coverage/lcov-report/src/integration-test/index.html +116 -0
  275. package/coverage/lcov-report/src/integration-test/postgres.spec.ts.html +2341 -0
  276. package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
  277. package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
  278. package/coverage/lcov-report/src/integrations/base/index.html +30 -30
  279. package/coverage/lcov-report/src/integrations/base/query.ts.html +9 -9
  280. package/coverage/lcov-report/src/integrations/base/sql.ts.html +217 -187
  281. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +107 -107
  282. package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
  283. package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
  284. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +6 -6
  285. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
  286. package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
  287. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +11 -11
  288. package/coverage/lcov-report/src/integrations/index.html +27 -27
  289. package/coverage/lcov-report/src/integrations/index.ts.html +40 -40
  290. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
  291. package/coverage/lcov-report/src/integrations/mongodb.ts.html +11 -11
  292. package/coverage/lcov-report/src/integrations/mysql.ts.html +10 -10
  293. package/coverage/lcov-report/src/integrations/oracle.ts.html +14 -14
  294. package/coverage/lcov-report/src/integrations/postgres.ts.html +68 -68
  295. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  296. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +8 -8
  297. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  298. package/coverage/lcov-report/src/integrations/rest.ts.html +15 -15
  299. package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
  300. package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
  301. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  302. package/coverage/lcov-report/src/integrations/tests/airtable.spec.ts.html +310 -0
  303. package/coverage/lcov-report/src/integrations/tests/arangodb.spec.ts.html +199 -0
  304. package/coverage/lcov-report/src/integrations/tests/couchdb.spec.ts.html +349 -0
  305. package/coverage/lcov-report/src/integrations/tests/dynamodb.spec.ts.html +550 -0
  306. package/coverage/lcov-report/src/integrations/tests/elasticsearch.spec.ts.html +331 -0
  307. package/coverage/lcov-report/src/integrations/tests/firebase.spec.ts.html +376 -0
  308. package/coverage/lcov-report/src/integrations/tests/index.html +230 -5
  309. package/coverage/lcov-report/src/integrations/tests/microsoftSqlServer.spec.ts.html +253 -0
  310. package/coverage/lcov-report/src/integrations/tests/mongo.spec.ts.html +1087 -0
  311. package/coverage/lcov-report/src/integrations/tests/mysql.spec.ts.html +484 -0
  312. package/coverage/lcov-report/src/integrations/tests/oracle.spec.ts.html +373 -0
  313. package/coverage/lcov-report/src/integrations/tests/postgres.spec.ts.html +328 -0
  314. package/coverage/lcov-report/src/integrations/tests/redis.spec.ts.html +337 -0
  315. package/coverage/lcov-report/src/integrations/tests/rest.spec.ts.html +1870 -0
  316. package/coverage/lcov-report/src/integrations/tests/s3.spec.ts.html +421 -0
  317. package/coverage/lcov-report/src/integrations/tests/sql.spec.ts.html +1753 -0
  318. package/coverage/lcov-report/src/integrations/utils.ts.html +77 -77
  319. package/coverage/lcov-report/src/middleware/appInfo.ts.html +5 -5
  320. package/coverage/lcov-report/src/middleware/authorized.ts.html +29 -29
  321. package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
  322. package/coverage/lcov-report/src/middleware/currentapp.ts.html +53 -53
  323. package/coverage/lcov-report/src/middleware/index.html +15 -15
  324. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  325. package/coverage/lcov-report/src/middleware/publicApi.ts.html +4 -4
  326. package/coverage/lcov-report/src/middleware/resourceId.ts.html +28 -28
  327. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  328. package/coverage/lcov-report/src/middleware/tests/authorized.spec.js.html +574 -0
  329. package/coverage/lcov-report/src/middleware/tests/currentapp.spec.js.html +814 -0
  330. package/coverage/lcov-report/src/middleware/tests/index.html +161 -0
  331. package/coverage/lcov-report/src/middleware/tests/resourceId.spec.js.html +397 -0
  332. package/coverage/lcov-report/src/middleware/tests/selfhost.spec.js.html +214 -0
  333. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  334. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  335. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
  336. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
  337. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  338. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
  339. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  340. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
  341. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
  342. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
  343. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
  344. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
  345. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  346. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
  347. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
  348. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
  349. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  350. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
  351. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
  352. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  353. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
  354. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +6 -6
  355. package/coverage/lcov-report/src/migrations/functions/tests/appUrls.spec.js.html +163 -0
  356. package/coverage/lcov-report/src/migrations/functions/tests/index.html +161 -0
  357. package/coverage/lcov-report/src/migrations/functions/tests/syncQuotas.spec.js.html +163 -0
  358. package/coverage/lcov-report/src/migrations/functions/tests/tableSettings.spec.ts.html +517 -0
  359. package/coverage/lcov-report/src/migrations/functions/tests/userEmailViewCasing.spec.js.html +190 -0
  360. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  361. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  362. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
  363. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
  364. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
  365. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/index.html +131 -0
  366. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts.html +190 -0
  367. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts.html +244 -0
  368. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  369. package/coverage/lcov-report/src/migrations/index.html +1 -1
  370. package/coverage/lcov-report/src/migrations/index.ts.html +32 -32
  371. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  372. package/coverage/lcov-report/src/migrations/tests/index.html +23 -8
  373. package/coverage/lcov-report/src/migrations/tests/index.spec.ts.html +511 -0
  374. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  375. package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
  376. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +4 -4
  377. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +22 -22
  378. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +9 -9
  379. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  380. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  381. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +10 -10
  382. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  383. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +41 -23
  384. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +18 -18
  385. package/coverage/lcov-report/src/sdk/app/backups/index.html +10 -10
  386. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
  387. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
  388. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +69 -60
  389. package/coverage/lcov-report/src/sdk/app/datasources/index.html +19 -19
  390. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +3 -3
  391. package/coverage/lcov-report/src/sdk/app/queries/index.html +1 -1
  392. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +3 -3
  393. package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +11 -11
  394. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +6 -6
  395. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  396. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +4 -4
  397. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  398. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  399. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +10 -10
  400. package/coverage/lcov-report/src/sdk/index.html +1 -1
  401. package/coverage/lcov-report/src/sdk/index.ts.html +11 -11
  402. package/coverage/lcov-report/src/sdk/tests/attachments.spec.ts.html +313 -0
  403. package/coverage/lcov-report/src/sdk/tests/index.html +116 -0
  404. package/coverage/lcov-report/src/sdk/users/index.html +1 -1
  405. package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
  406. package/coverage/lcov-report/src/sdk/users/utils.ts.html +31 -31
  407. package/coverage/lcov-report/src/sdk/utils/index.html +1 -1
  408. package/coverage/lcov-report/src/sdk/utils/index.ts.html +11 -11
  409. package/coverage/lcov-report/src/startup.ts.html +42 -42
  410. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +421 -193
  411. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
  412. package/coverage/lcov-report/src/tests/utilities/index.html +28 -28
  413. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  414. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +77 -35
  415. package/coverage/lcov-report/src/threads/automation.ts.html +22 -22
  416. package/coverage/lcov-report/src/threads/index.html +1 -1
  417. package/coverage/lcov-report/src/threads/index.ts.html +24 -24
  418. package/coverage/lcov-report/src/threads/query.ts.html +76 -76
  419. package/coverage/lcov-report/src/threads/utils.ts.html +12 -12
  420. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +3 -3
  421. package/coverage/lcov-report/src/utilities/centralPath.ts.html +2 -2
  422. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +17 -17
  423. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +8 -8
  424. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +25 -25
  425. package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
  426. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +6 -6
  427. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +8 -8
  428. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  429. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +7 -7
  430. package/coverage/lcov-report/src/utilities/global.ts.html +40 -40
  431. package/coverage/lcov-report/src/utilities/index.html +34 -19
  432. package/coverage/lcov-report/src/utilities/index.ts.html +26 -26
  433. package/coverage/lcov-report/src/utilities/redis.ts.html +12 -12
  434. package/coverage/lcov-report/src/utilities/retry.ts.html +139 -0
  435. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  436. package/coverage/lcov-report/src/utilities/routing/index.ts.html +4 -4
  437. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +19 -19
  438. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +49 -49
  439. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
  440. package/coverage/lcov-report/src/utilities/rowProcessor/tests/index.html +116 -0
  441. package/coverage/lcov-report/src/utilities/rowProcessor/tests/utils.spec.ts.html +256 -0
  442. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +38 -38
  443. package/coverage/lcov-report/src/utilities/schema.ts.html +3 -3
  444. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +5 -5
  445. package/coverage/lcov-report/src/utilities/security.ts.html +22 -22
  446. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  447. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +35 -35
  448. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  449. package/coverage/lcov-report/src/utilities/users.ts.html +4 -4
  450. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +15 -15
  451. package/coverage/lcov-report/src/watch.ts.html +7 -7
  452. package/coverage/lcov-report/src/websocket.ts.html +5 -5
  453. package/coverage/lcov.info +20061 -12327
  454. package/dist/api/controllers/query/index.js +2 -0
  455. package/dist/api/controllers/row/ExternalRequest.js +4 -2
  456. package/dist/api/controllers/row/external.js +12 -1
  457. package/dist/api/controllers/table/external.js +8 -8
  458. package/dist/api/routes/public/tests/utils.js +29 -2
  459. package/dist/api/routes/tests/utilities/index.js +131 -0
  460. package/dist/app.js +8 -4
  461. package/dist/constants/index.js +4 -24
  462. package/dist/db/defaultData/datasource_bb_default.js +6 -5
  463. package/dist/db/linkedRows/LinkController.js +9 -8
  464. package/dist/environment.js +1 -0
  465. package/dist/integrations/base/sql.js +10 -3
  466. package/dist/package.json +8 -6
  467. package/dist/sdk/app/backups/exports.js +8 -2
  468. package/dist/sdk/app/datasources/datasources.js +3 -0
  469. package/dist/tests/utilities/TestConfiguration.js +626 -0
  470. package/dist/tests/utilities/controllers.js +40 -0
  471. package/dist/tests/utilities/structures.js +234 -0
  472. package/dist/tsconfig.build.tsbuildinfo +1 -1
  473. package/dist/utilities/retry.js +30 -0
  474. package/jest-testcontainers-config.js +8 -0
  475. package/jest.config.ts +28 -11
  476. package/package.json +9 -7
  477. package/scripts/load/create-many-apps.js +24 -0
  478. package/scripts/load/create-many-rows.js +30 -0
  479. package/scripts/load/utils.js +66 -0
  480. package/specs/openapi.json +6 -6
  481. package/specs/openapi.yaml +3 -3
  482. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  483. package/src/api/controllers/query/index.ts +2 -0
  484. package/src/api/controllers/row/ExternalRequest.ts +6 -2
  485. package/src/api/controllers/row/external.ts +13 -1
  486. package/src/api/controllers/table/external.ts +3 -2
  487. package/src/api/routes/public/applications.ts +0 -1
  488. package/src/api/routes/public/tests/compare.spec.js +1 -1
  489. package/src/api/routes/public/tests/users.spec.js +1 -1
  490. package/src/api/routes/public/tests/utils.ts +25 -8
  491. package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
  492. package/src/api/routes/tests/analytics.spec.js +4 -1
  493. package/src/api/routes/tests/apikeys.spec.js +1 -1
  494. package/src/api/routes/tests/application.spec.ts +20 -6
  495. package/src/api/routes/tests/auth.spec.js +2 -2
  496. package/src/api/routes/tests/automation.spec.js +6 -2
  497. package/src/api/routes/tests/backup.spec.ts +4 -13
  498. package/src/api/routes/tests/{cloud.spec.ts → cloud.seq.spec.ts} +11 -15
  499. package/src/api/routes/tests/component.spec.js +1 -1
  500. package/src/api/routes/tests/datasource.spec.ts +20 -3
  501. package/src/api/routes/tests/dev.spec.js +1 -1
  502. package/src/api/routes/tests/environmentVariables.spec.ts +144 -0
  503. package/src/api/routes/tests/integration.spec.js +1 -1
  504. package/src/api/routes/tests/layout.spec.js +1 -1
  505. package/src/api/routes/tests/metadata.spec.js +1 -1
  506. package/src/api/routes/tests/misc.spec.js +1 -1
  507. package/src/api/routes/tests/permissions.spec.js +4 -1
  508. package/src/api/routes/tests/{query.spec.js → query.seq.spec.js} +22 -1
  509. package/src/api/routes/tests/role.spec.js +6 -1
  510. package/src/api/routes/tests/routing.spec.js +1 -1
  511. package/src/api/routes/tests/row.spec.js +11 -3
  512. package/src/api/routes/tests/screen.spec.js +1 -1
  513. package/src/api/routes/tests/static.spec.js +2 -1
  514. package/src/api/routes/tests/table.spec.js +1 -1
  515. package/src/api/routes/tests/templates.spec.js +1 -1
  516. package/src/api/routes/tests/user.spec.js +12 -12
  517. package/src/api/routes/tests/utilities/TestFunctions.ts +25 -2
  518. package/src/api/routes/tests/utilities/index.ts +5 -3
  519. package/src/api/routes/tests/view.spec.js +4 -1
  520. package/src/api/routes/tests/webhook.spec.js +11 -2
  521. package/src/app.ts +9 -4
  522. package/src/automations/tests/automation.spec.js +4 -4
  523. package/src/automations/tests/bash.spec.js +1 -1
  524. package/src/automations/tests/discord.spec.js +1 -1
  525. package/src/automations/tests/executeQuery.spec.js +2 -3
  526. package/src/automations/tests/executeScript.spec.js +1 -1
  527. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  528. package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
  529. package/src/automations/tests/serverLog.spec.js +1 -1
  530. package/src/automations/tests/updateRow.spec.js +1 -1
  531. package/src/automations/tests/zapier.spec.js +1 -1
  532. package/src/constants/index.ts +1 -23
  533. package/src/db/defaultData/datasource_bb_default.ts +6 -10
  534. package/src/db/linkedRows/LinkController.ts +2 -1
  535. package/src/db/tests/linkController.spec.js +4 -1
  536. package/src/db/tests/linkTests.spec.js +1 -1
  537. package/src/environment.ts +1 -0
  538. package/src/integration-test/postgres.spec.ts +752 -0
  539. package/src/integrations/base/sql.ts +15 -5
  540. package/src/integrations/oracle.ts +1 -1
  541. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  542. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  543. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
  544. package/src/migrations/tests/index.spec.ts +13 -20
  545. package/src/sdk/app/backups/exports.ts +8 -2
  546. package/src/sdk/app/datasources/datasources.ts +3 -0
  547. package/src/tests/jestEnv.ts +2 -6
  548. package/src/tests/jestSetup.ts +8 -7
  549. package/src/tests/utilities/TestConfiguration.ts +126 -50
  550. package/src/tests/utilities/structures.ts +16 -2
  551. package/src/utilities/retry.ts +18 -0
@@ -14,18 +14,22 @@ jest.mock("../../../utilities/redis", () => ({
14
14
  import { clearAllApps, checkBuilderEndpoint } from "./utilities/TestFunctions"
15
15
  import * as setup from "./utilities"
16
16
  import { AppStatus } from "../../../db/utils"
17
- import { events } from "@budibase/backend-core"
17
+ import { events, utils } from "@budibase/backend-core"
18
18
  import env from "../../../environment"
19
19
 
20
+ jest.setTimeout(15000)
21
+
20
22
  describe("/applications", () => {
21
23
  let request = setup.getRequest()
22
24
  let config = setup.getConfig()
23
25
 
24
26
  afterAll(setup.afterAll)
25
27
 
26
- beforeEach(async () => {
27
- await clearAllApps()
28
+ beforeAll(async () => {
28
29
  await config.init()
30
+ })
31
+
32
+ beforeEach(async () => {
29
33
  jest.clearAllMocks()
30
34
  })
31
35
 
@@ -33,7 +37,7 @@ describe("/applications", () => {
33
37
  it("creates empty app", async () => {
34
38
  const res = await request
35
39
  .post("/api/applications")
36
- .field("name", "My App")
40
+ .field("name", utils.newid())
37
41
  .set(config.defaultHeaders())
38
42
  .expect("Content-Type", /json/)
39
43
  .expect(200)
@@ -44,7 +48,7 @@ describe("/applications", () => {
44
48
  it("creates app from template", async () => {
45
49
  const res = await request
46
50
  .post("/api/applications")
47
- .field("name", "My App")
51
+ .field("name", utils.newid())
48
52
  .field("useTemplate", "true")
49
53
  .field("templateKey", "test")
50
54
  .field("templateString", "{}") // override the file download
@@ -59,7 +63,7 @@ describe("/applications", () => {
59
63
  it("creates app from file", async () => {
60
64
  const res = await request
61
65
  .post("/api/applications")
62
- .field("name", "My App")
66
+ .field("name", utils.newid())
63
67
  .field("useTemplate", "true")
64
68
  .set(config.defaultHeaders())
65
69
  .attach("templateFile", "src/api/routes/tests/data/export.txt")
@@ -106,6 +110,11 @@ describe("/applications", () => {
106
110
  })
107
111
 
108
112
  describe("fetch", () => {
113
+ beforeEach(async () => {
114
+ // Clean all apps but the onde from config
115
+ await clearAllApps(config.getTenantId(), [config.getAppId()!])
116
+ })
117
+
109
118
  it("lists all applications", async () => {
110
119
  await config.createApp("app1")
111
120
  await config.createApp("app2")
@@ -266,6 +275,11 @@ describe("/applications", () => {
266
275
  })
267
276
 
268
277
  describe("unpublish", () => {
278
+ beforeEach(async () => {
279
+ // We want to republish as the unpublish will delete the prod app
280
+ await config.publish()
281
+ })
282
+
269
283
  it("should unpublish app with dev app ID", async () => {
270
284
  const appId = config.getAppId()
271
285
  await request
@@ -7,7 +7,7 @@ describe("/authenticate", () => {
7
7
 
8
8
  afterAll(setup.afterAll)
9
9
 
10
- beforeEach(async () => {
10
+ beforeAll(async () => {
11
11
  await config.init()
12
12
  })
13
13
 
@@ -18,7 +18,7 @@ describe("/authenticate", () => {
18
18
  .set(config.defaultHeaders())
19
19
  .expect("Content-Type", /json/)
20
20
  .expect(200)
21
- expect(res.body._id).toEqual(generateUserMetadataID("us_uuid1"))
21
+ expect(res.body._id).toEqual(generateUserMetadataID(config.user._id))
22
22
  })
23
23
  })
24
24
  })
@@ -10,12 +10,16 @@ const MAX_RETRIES = 4
10
10
  const { TRIGGER_DEFINITIONS, ACTION_DEFINITIONS } = require("../../../automations")
11
11
  const { events } = require("@budibase/backend-core")
12
12
 
13
+
14
+ jest.setTimeout(30000)
15
+
13
16
  describe("/automations", () => {
14
17
  let request = setup.getRequest()
15
18
  let config = setup.getConfig()
16
19
 
17
20
  afterAll(setup.afterAll)
18
21
 
22
+ // For some reason this cannot be a beforeAll or the test "tests the automation successfully" fail
19
23
  beforeEach(async () => {
20
24
  await config.init()
21
25
  })
@@ -145,7 +149,7 @@ describe("/automations", () => {
145
149
  let elements = await getAllTableRows(config)
146
150
  // don't test it unless there are values to test
147
151
  if (elements.length > 1) {
148
- expect(elements.length).toEqual(5)
152
+ expect(elements.length).toBeGreaterThanOrEqual(MAX_RETRIES)
149
153
  expect(elements[0].name).toEqual("Test")
150
154
  expect(elements[0].description).toEqual("TEST")
151
155
  return
@@ -305,7 +309,7 @@ describe("/automations", () => {
305
309
  .expect('Content-Type', /json/)
306
310
  .expect(200)
307
311
 
308
- expect(res.body[0]).toEqual(expect.objectContaining(autoConfig))
312
+ expect(res.body[0]).toEqual(expect.objectContaining(autoConfig))
309
313
  })
310
314
 
311
315
  it("should apply authorization to endpoint", async () => {
@@ -1,17 +1,8 @@
1
- jest.mock("@budibase/backend-core", () => {
2
- const core = jest.requireActual("@budibase/backend-core")
3
- return {
4
- ...core,
5
- objectStore: {
6
- budibaseTempDir: core.objectStore.budibaseTempDir,
7
- },
8
- }
9
- })
10
-
11
1
  import * as setup from "./utilities"
12
2
  import { events } from "@budibase/backend-core"
13
3
  import sdk from "../../../sdk"
14
4
  import { checkBuilderEndpoint } from "./utilities/TestFunctions"
5
+
15
6
  describe("/backups", () => {
16
7
  let request = setup.getRequest()
17
8
  let config = setup.getConfig()
@@ -44,9 +35,9 @@ describe("/backups", () => {
44
35
 
45
36
  describe("calculateBackupStats", () => {
46
37
  it("should be able to calculate the backup statistics", async () => {
47
- config.createAutomation()
48
- config.createScreen()
49
- let res = await sdk.backups.calculateBackupStats(config.getAppId())
38
+ await config.createAutomation()
39
+ await config.createScreen()
40
+ let res = await sdk.backups.calculateBackupStats(config.getAppId()!)
50
41
  expect(res.automations).toEqual(1)
51
42
  expect(res.datasources).toEqual(1)
52
43
  expect(res.screens).toEqual(1)
@@ -1,14 +1,22 @@
1
- import { db as dbCore } from "@budibase/backend-core"
1
+ jest.setTimeout(30000)
2
+
2
3
  import { AppStatus } from "../../../db/utils"
3
4
 
4
5
  import * as setup from "./utilities"
5
6
 
7
+ import { wipeDb } from "./utilities/TestFunctions"
8
+
6
9
  describe("/cloud", () => {
7
- let request = setup.getRequest()
10
+ let request = setup.getRequest()!
8
11
  let config = setup.getConfig()
9
12
 
10
13
  afterAll(setup.afterAll)
11
14
 
15
+ beforeAll(() => {
16
+ // Importing is only allowed in self hosted environments
17
+ config.modeSelf()
18
+ })
19
+
12
20
  beforeEach(async () => {
13
21
  await config.init()
14
22
  })
@@ -22,19 +30,7 @@ describe("/cloud", () => {
22
30
  it("should be able to import apps", async () => {
23
31
  // first we need to delete any existing apps on the system so it looks clean otherwise the
24
32
  // import will not run
25
- await request
26
- .post(
27
- `/api/applications/${dbCore.getProdAppID(
28
- config.getAppId()
29
- )}/unpublish`
30
- )
31
- .set(config.defaultHeaders())
32
- .expect(204)
33
- await request
34
- .delete(`/api/applications/${config.getAppId()}`)
35
- .set(config.defaultHeaders())
36
- .expect("Content-Type", /json/)
37
- .expect(200)
33
+ await wipeDb()
38
34
 
39
35
  // get a count of apps before the import
40
36
  const preImportApps = await request
@@ -7,7 +7,7 @@ describe("/component", () => {
7
7
 
8
8
  afterAll(setup.afterAll)
9
9
 
10
- beforeEach(async () => {
10
+ beforeAll(async () => {
11
11
  await config.init()
12
12
  })
13
13
 
@@ -5,6 +5,10 @@ import { checkCacheForDynamicVariable } from "../../../threads/utils"
5
5
  import { context, events } from "@budibase/backend-core"
6
6
  import sdk from "../../../sdk"
7
7
 
8
+ import tk from "timekeeper"
9
+ import { mocks } from "@budibase/backend-core/tests"
10
+ tk.freeze(mocks.date.MOCK_DATE)
11
+
8
12
  let { basicDatasource } = setup.structures
9
13
  const pg = require("pg")
10
14
 
@@ -15,11 +19,13 @@ describe("/datasources", () => {
15
19
 
16
20
  afterAll(setup.afterAll)
17
21
 
18
- beforeEach(async () => {
22
+ async function setupTest() {
19
23
  await config.init()
20
24
  datasource = await config.createDatasource()
21
25
  jest.clearAllMocks()
22
- })
26
+ }
27
+
28
+ beforeAll(setupTest)
23
29
 
24
30
  describe("create", () => {
25
31
  it("should create a new datasource", async () => {
@@ -56,7 +62,14 @@ describe("/datasources", () => {
56
62
  datasource: any,
57
63
  fields: { path: string; queryString: string }
58
64
  ) {
59
- return config.previewQuery(request, config, datasource, fields)
65
+ return config.previewQuery(
66
+ request,
67
+ config,
68
+ datasource,
69
+ fields,
70
+ undefined,
71
+ ""
72
+ )
60
73
  }
61
74
 
62
75
  it("should invalidate changed or removed variables", async () => {
@@ -91,6 +104,8 @@ describe("/datasources", () => {
91
104
  })
92
105
 
93
106
  describe("fetch", () => {
107
+ beforeAll(setupTest)
108
+
94
109
  it("returns all the datasources from the server", async () => {
95
110
  const res = await request
96
111
  .get(`/api/datasources`)
@@ -159,6 +174,8 @@ describe("/datasources", () => {
159
174
  })
160
175
 
161
176
  describe("destroy", () => {
177
+ beforeAll(setupTest)
178
+
162
179
  it("deletes queries for the datasource after deletion and returns a success message", async () => {
163
180
  await config.createQuery()
164
181
 
@@ -8,7 +8,7 @@ describe("/dev", () => {
8
8
 
9
9
  afterAll(setup.afterAll)
10
10
 
11
- beforeEach(async () => {
11
+ beforeAll(async () => {
12
12
  await config.init()
13
13
  jest.clearAllMocks()
14
14
  })
@@ -0,0 +1,144 @@
1
+ const pg = require("pg")
2
+ jest.mock("pg", () => {
3
+ return {
4
+ Client: jest.fn().mockImplementation(() => ({
5
+ connect: jest.fn(),
6
+ query: jest.fn().mockImplementation(() => ({ rows: [] })),
7
+ end: jest.fn().mockImplementation((fn: any) => fn()),
8
+ })),
9
+ queryMock: jest.fn().mockImplementation(() => {}),
10
+ on: jest.fn(),
11
+ }
12
+ })
13
+ import * as setup from "./utilities"
14
+ import { mocks } from "@budibase/backend-core/tests"
15
+ import { env, events } from "@budibase/backend-core"
16
+ const structures = setup.structures
17
+
18
+ env._set("ENCRYPTION_KEY", "budibase")
19
+ mocks.licenses.useEnvironmentVariables()
20
+
21
+ describe("/api/env/variables", () => {
22
+ let request = setup.getRequest()
23
+ let config = setup.getConfig()
24
+
25
+ afterAll(setup.afterAll)
26
+
27
+ beforeAll(async () => {
28
+ await config.init()
29
+ })
30
+
31
+ it("should be able check the status of env var API", async () => {
32
+ const res = await request
33
+ .get(`/api/env/variables/status`)
34
+ .set(config.defaultHeaders())
35
+ .expect("Content-Type", /json/)
36
+ .expect(200)
37
+
38
+ expect(res.body.encryptionKeyAvailable).toEqual(true)
39
+ })
40
+
41
+ it("should be able to create an environment variable", async () => {
42
+ await request
43
+ .post(`/api/env/variables`)
44
+ .send(structures.basicEnvironmentVariable("test", "test"))
45
+ .set(config.defaultHeaders())
46
+ .expect(200)
47
+ })
48
+
49
+ it("should be able to fetch the 'test' variable name", async () => {
50
+ const res = await request
51
+ .get(`/api/env/variables`)
52
+ .set(config.defaultHeaders())
53
+ .expect("Content-Type", /json/)
54
+ .expect(200)
55
+ expect(res.body.variables.length).toEqual(1)
56
+ expect(res.body.variables[0]).toEqual("test")
57
+ })
58
+
59
+ it("should be able to update the environment variable 'test'", async () => {
60
+ const varName = "test"
61
+ await request
62
+ .patch(`/api/env/variables/${varName}`)
63
+ .send(structures.basicEnvironmentVariable("test", "test1"))
64
+ .set(config.defaultHeaders())
65
+ .expect(200)
66
+ })
67
+
68
+ it("should be able to delete the environment variable 'test'", async () => {
69
+ const varName = "test"
70
+ await request
71
+ .delete(`/api/env/variables/${varName}`)
72
+ .set(config.defaultHeaders())
73
+ .expect(200)
74
+ })
75
+
76
+ it("should create a datasource (using the environment variable) and query", async () => {
77
+ const datasourceBase = structures.basicDatasource()
78
+ await request
79
+ .post(`/api/env/variables`)
80
+ .send(structures.basicEnvironmentVariable("test", "test"))
81
+ .set(config.defaultHeaders())
82
+
83
+ datasourceBase.datasource.config = {
84
+ password: "{{ env.test }}",
85
+ }
86
+ const response = await request
87
+ .post(`/api/datasources`)
88
+ .send(datasourceBase)
89
+ .set(config.defaultHeaders())
90
+ .expect("Content-Type", /json/)
91
+ .expect(200)
92
+ expect(response.body.datasource._id).toBeDefined()
93
+
94
+ const response2 = await request
95
+ .post(`/api/queries`)
96
+ .send(structures.basicQuery(response.body.datasource._id))
97
+ .set(config.defaultHeaders())
98
+ .expect("Content-Type", /json/)
99
+ .expect(200)
100
+ expect(response2.body._id).toBeDefined()
101
+ })
102
+
103
+ it("should run a query preview and check the mocked results", async () => {
104
+ const datasourceBase = structures.basicDatasource()
105
+ await request
106
+ .post(`/api/env/variables`)
107
+ .send(structures.basicEnvironmentVariable("test", "test"))
108
+ .set(config.defaultHeaders())
109
+
110
+ datasourceBase.datasource.config = {
111
+ password: "{{ env.test }}",
112
+ }
113
+ const response = await request
114
+ .post(`/api/datasources`)
115
+ .send(datasourceBase)
116
+ .set(config.defaultHeaders())
117
+ .expect("Content-Type", /json/)
118
+ .expect(200)
119
+ expect(response.body.datasource._id).toBeDefined()
120
+
121
+ const query = {
122
+ datasourceId: response.body.datasource._id,
123
+ parameters: {},
124
+ fields: {},
125
+ queryVerb: "read",
126
+ name: response.body.datasource.name,
127
+ }
128
+ const res = await request
129
+ .post(`/api/queries/preview`)
130
+ .send(query)
131
+ .set(config.defaultHeaders())
132
+ .expect("Content-Type", /json/)
133
+ .expect(200)
134
+ expect(res.body.rows.length).toEqual(0)
135
+ expect(events.query.previewed).toBeCalledTimes(1)
136
+ // API doesn't include config in response
137
+ delete response.body.datasource.config
138
+ expect(events.query.previewed).toBeCalledWith(
139
+ response.body.datasource,
140
+ query
141
+ )
142
+ expect(pg.Client).toHaveBeenCalledWith({ password: "test", ssl: undefined })
143
+ })
144
+ })
@@ -7,7 +7,7 @@ describe("/integrations", () => {
7
7
 
8
8
  afterAll(setup.afterAll)
9
9
 
10
- beforeEach(async () => {
10
+ beforeAll(async () => {
11
11
  await config.init()
12
12
  })
13
13
 
@@ -10,7 +10,7 @@ describe("/layouts", () => {
10
10
 
11
11
  afterAll(setup.afterAll)
12
12
 
13
- beforeEach(async () => {
13
+ beforeAll(async () => {
14
14
  await config.init()
15
15
  layout = await config.createLayout()
16
16
  jest.clearAllMocks()
@@ -9,7 +9,7 @@ describe("/metadata", () => {
9
9
 
10
10
  afterAll(setup.afterAll)
11
11
 
12
- beforeEach(async () => {
12
+ beforeAll(async () => {
13
13
  await config.init()
14
14
  automation = await config.createAutomation()
15
15
  })
@@ -7,7 +7,7 @@ describe("run misc tests", () => {
7
7
 
8
8
  afterAll(setup.afterAll)
9
9
 
10
- beforeEach(async () => {
10
+ beforeAll(async () => {
11
11
  await config.init()
12
12
  })
13
13
 
@@ -15,8 +15,11 @@ describe("/permission", () => {
15
15
 
16
16
  afterAll(setup.afterAll)
17
17
 
18
- beforeEach(async () => {
18
+ beforeAll(async () => {
19
19
  await config.init()
20
+ })
21
+
22
+ beforeEach(async () => {
20
23
  table = await config.createTable()
21
24
  row = await config.createRow()
22
25
  perms = await config.addPermission(STD_ROLE_ID, table._id)
@@ -1,3 +1,6 @@
1
+ const tk = require( "timekeeper")
2
+ tk.freeze(Date.now())
3
+
1
4
  // Mock out postgres for this
2
5
  jest.mock("pg")
3
6
  jest.mock("node-fetch")
@@ -27,10 +30,15 @@ describe("/queries", () => {
27
30
 
28
31
  afterAll(setup.afterAll)
29
32
 
30
- beforeEach(async () => {
33
+ const setupTest = async()=>{
34
+
31
35
  await config.init()
32
36
  datasource = await config.createDatasource()
33
37
  query = await config.createQuery()
38
+ }
39
+
40
+ beforeAll(async () => {
41
+ await setupTest()
34
42
  })
35
43
 
36
44
  async function createInvalidIntegration() {
@@ -101,6 +109,10 @@ describe("/queries", () => {
101
109
  })
102
110
 
103
111
  describe("fetch", () => {
112
+ beforeEach(async() => {
113
+ await setupTest()
114
+ })
115
+
104
116
  it("returns all the queries from the server", async () => {
105
117
  const res = await request
106
118
  .get(`/api/queries`)
@@ -178,6 +190,10 @@ describe("/queries", () => {
178
190
  })
179
191
 
180
192
  describe("destroy", () => {
193
+ beforeEach(async() => {
194
+ await setupTest()
195
+ })
196
+
181
197
  it("deletes a query and returns a success message", async () => {
182
198
  await request
183
199
  .delete(`/api/queries/${query._id}/${query._rev}`)
@@ -226,6 +242,7 @@ describe("/queries", () => {
226
242
  })
227
243
  expect(res.body.rows.length).toEqual(1)
228
244
  expect(events.query.previewed).toBeCalledTimes(1)
245
+ delete datasource.config
229
246
  expect(events.query.previewed).toBeCalledWith(datasource, query)
230
247
  })
231
248
 
@@ -239,6 +256,10 @@ describe("/queries", () => {
239
256
  })
240
257
 
241
258
  describe("execute", () => {
259
+ beforeEach(async() => {
260
+ await setupTest()
261
+ })
262
+
242
263
  it("should be able to execute the query", async () => {
243
264
  const res = await request
244
265
  .post(`/api/queries/${query._id}`)
@@ -10,7 +10,7 @@ describe("/roles", () => {
10
10
 
11
11
  afterAll(setup.afterAll)
12
12
 
13
- beforeEach(async () => {
13
+ beforeAll(async () => {
14
14
  await config.init()
15
15
  })
16
16
 
@@ -60,6 +60,11 @@ describe("/roles", () => {
60
60
  })
61
61
 
62
62
  describe("fetch", () => {
63
+ beforeAll(async () => {
64
+ // Recreate the app
65
+ await config.init()
66
+ })
67
+
63
68
  it("should list custom roles, plus 2 default roles", async () => {
64
69
  const customRole = await config.createRole()
65
70
 
@@ -16,7 +16,7 @@ describe("/routing", () => {
16
16
 
17
17
  afterAll(setup.afterAll)
18
18
 
19
- beforeEach(async () => {
19
+ beforeAll(async () => {
20
20
  await config.init()
21
21
  screen = basicScreen()
22
22
  screen.routing.route = route
@@ -1,3 +1,8 @@
1
+ const tk = require( "timekeeper")
2
+ const timestamp = new Date("2023-01-26T11:48:57.597Z").toISOString()
3
+ tk.freeze(timestamp)
4
+
5
+
1
6
  const { outputProcessing } = require("../../../utilities/rowProcessor")
2
7
  const setup = require("./utilities")
3
8
  const { basicRow } = setup.structures
@@ -20,8 +25,11 @@ describe("/rows", () => {
20
25
 
21
26
  afterAll(setup.afterAll)
22
27
 
23
- beforeEach(async () => {
28
+ beforeAll(async () => {
24
29
  await config.init()
30
+ })
31
+
32
+ beforeEach(async()=>{
25
33
  table = await config.createTable()
26
34
  row = basicRow(table._id)
27
35
  })
@@ -111,8 +119,8 @@ describe("/rows", () => {
111
119
  _id: existing._id,
112
120
  _rev: existing._rev,
113
121
  type: "row",
114
- createdAt: "2020-01-01T00:00:00.000Z",
115
- updatedAt: "2020-01-01T00:00:00.000Z",
122
+ createdAt: timestamp,
123
+ updatedAt: timestamp,
116
124
  })
117
125
  await assertQueryUsage(queryUsage + 1)
118
126
  })
@@ -10,7 +10,7 @@ describe("/screens", () => {
10
10
 
11
11
  afterAll(setup.afterAll)
12
12
 
13
- beforeEach(async () => {
13
+ beforeAll(async () => {
14
14
  await config.init()
15
15
  screen = await config.createScreen()
16
16
  })
@@ -8,7 +8,8 @@ describe("/static", () => {
8
8
 
9
9
  afterAll(setup.afterAll)
10
10
 
11
- beforeEach(async () => {
11
+ beforeAll(async () => {
12
+ config.modeSelf()
12
13
  app = await config.init()
13
14
  })
14
15
 
@@ -10,7 +10,7 @@ describe("/tables", () => {
10
10
 
11
11
  afterAll(setup.afterAll)
12
12
 
13
- beforeEach(async () => {
13
+ beforeAll(async () => {
14
14
  const app = await config.init()
15
15
  appId = app.appId
16
16
  })
@@ -6,7 +6,7 @@ describe("/templates", () => {
6
6
 
7
7
  afterAll(setup.afterAll)
8
8
 
9
- beforeEach(async () => {
9
+ beforeAll(async () => {
10
10
  await config.init()
11
11
  })
12
12