@budibase/server 2.2.27-alpha.0 → 2.2.27-alpha.1

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 (507) hide show
  1. package/__mocks__/aws-sdk.ts +1 -1
  2. package/builder/assets/{index.f9b8b175.js → index.77ae0e4d.js} +1 -1
  3. package/builder/index.html +1 -1
  4. package/coverage/clover.xml +8688 -4268
  5. package/coverage/coverage-final.json +151 -68
  6. package/coverage/lcov-report/index.html +327 -117
  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 +1 -1
  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 +262 -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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +14419 -7208
  450. package/dist/app.js +1 -1
  451. package/dist/package.json +8 -6
  452. package/dist/tsconfig.build.tsbuildinfo +1 -1
  453. package/dist/utilities/retry.js +30 -0
  454. package/jest-testcontainers-config.js +8 -0
  455. package/jest.config.ts +28 -11
  456. package/package.json +9 -7
  457. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  458. package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
  459. package/src/api/routes/tests/analytics.spec.js +4 -1
  460. package/src/api/routes/tests/apikeys.spec.js +1 -1
  461. package/src/api/routes/tests/application.spec.ts +20 -6
  462. package/src/api/routes/tests/auth.spec.js +2 -2
  463. package/src/api/routes/tests/automation.spec.js +5 -1
  464. package/src/api/routes/tests/backup.spec.ts +4 -13
  465. package/src/api/routes/tests/{cloud.spec.ts → cloud.seq.spec.ts} +8 -14
  466. package/src/api/routes/tests/component.spec.js +1 -1
  467. package/src/api/routes/tests/datasource.spec.ts +20 -3
  468. package/src/api/routes/tests/dev.spec.js +1 -1
  469. package/src/api/routes/tests/integration.spec.js +1 -1
  470. package/src/api/routes/tests/layout.spec.js +1 -1
  471. package/src/api/routes/tests/metadata.spec.js +1 -1
  472. package/src/api/routes/tests/misc.spec.js +1 -1
  473. package/src/api/routes/tests/permissions.spec.js +4 -1
  474. package/src/api/routes/tests/{query.spec.js → query.seq.spec.js} +21 -1
  475. package/src/api/routes/tests/role.spec.js +6 -1
  476. package/src/api/routes/tests/routing.spec.js +1 -1
  477. package/src/api/routes/tests/row.spec.js +11 -3
  478. package/src/api/routes/tests/screen.spec.js +1 -1
  479. package/src/api/routes/tests/static.spec.js +2 -1
  480. package/src/api/routes/tests/table.spec.js +1 -1
  481. package/src/api/routes/tests/templates.spec.js +1 -1
  482. package/src/api/routes/tests/user.spec.js +3 -0
  483. package/src/api/routes/tests/utilities/TestFunctions.ts +25 -2
  484. package/src/api/routes/tests/utilities/index.ts +5 -3
  485. package/src/api/routes/tests/view.spec.js +4 -1
  486. package/src/api/routes/tests/webhook.spec.js +11 -2
  487. package/src/app.ts +2 -1
  488. package/src/automations/tests/automation.spec.js +4 -4
  489. package/src/automations/tests/bash.spec.js +1 -1
  490. package/src/automations/tests/discord.spec.js +1 -1
  491. package/src/automations/tests/executeQuery.spec.js +2 -3
  492. package/src/automations/tests/executeScript.spec.js +1 -1
  493. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  494. package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
  495. package/src/automations/tests/serverLog.spec.js +1 -1
  496. package/src/automations/tests/updateRow.spec.js +1 -1
  497. package/src/automations/tests/zapier.spec.js +1 -1
  498. package/src/db/tests/linkController.spec.js +4 -1
  499. package/src/db/tests/linkTests.spec.js +1 -1
  500. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  501. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  502. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
  503. package/src/migrations/tests/index.spec.ts +3 -2
  504. package/src/tests/jestEnv.ts +2 -6
  505. package/src/tests/jestSetup.ts +5 -6
  506. package/src/tests/utilities/TestConfiguration.ts +90 -34
  507. package/src/utilities/retry.ts +18 -0
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.retry = void 0;
13
+ function retry(fn, maxTry = 5, retryCount = 1) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ const currRetry = typeof retryCount === "number" ? retryCount : 1;
16
+ try {
17
+ const result = yield fn();
18
+ return result;
19
+ }
20
+ catch (e) {
21
+ console.log(`Retry ${currRetry} failed.`);
22
+ if (currRetry > maxTry) {
23
+ console.log(`All ${maxTry} retry attempts exhausted`);
24
+ throw e;
25
+ }
26
+ return retry(fn, maxTry, currRetry + 1);
27
+ }
28
+ });
29
+ }
30
+ exports.retry = retry;
@@ -0,0 +1,8 @@
1
+ const { join } = require("path")
2
+ require("dotenv").config({
3
+ path: join(__dirname, "..", "..", "hosting", ".env"),
4
+ })
5
+
6
+ const jestTestcontainersConfigGenerator = require("../../jestTestcontainersConfigGenerator")
7
+
8
+ module.exports = jestTestcontainersConfigGenerator()
package/jest.config.ts CHANGED
@@ -1,16 +1,13 @@
1
1
  import { Config } from "@jest/types"
2
+
2
3
  import * as fs from "fs"
4
+ const preset = require("ts-jest/jest-preset")
3
5
 
4
- const config: Config.InitialOptions = {
5
- testEnvironment: "node",
6
+ const baseConfig: Config.InitialProjectOptions = {
7
+ ...preset,
8
+ preset: "@trendyol/jest-testcontainers",
6
9
  setupFiles: ["./src/tests/jestEnv.ts"],
7
10
  setupFilesAfterEnv: ["./src/tests/jestSetup.ts"],
8
- collectCoverageFrom: [
9
- "src/**/*.{js,ts}",
10
- // The use of coverage with couchdb view functions breaks tests
11
- "!src/db/views/staticViews.*",
12
- ],
13
- coverageReporters: ["lcov", "json", "clover"],
14
11
  transform: {
15
12
  "^.+\\.ts?$": "@swc/jest",
16
13
  },
@@ -18,19 +15,39 @@ const config: Config.InitialOptions = {
18
15
 
19
16
  if (!process.env.CI) {
20
17
  // use sources when not in CI
21
- config.moduleNameMapper = {
18
+ baseConfig.moduleNameMapper = {
22
19
  "@budibase/backend-core/(.*)": "<rootDir>/../backend-core/$1",
23
20
  "@budibase/backend-core": "<rootDir>/../backend-core/src",
24
21
  "@budibase/types": "<rootDir>/../types/src",
25
- "^axios.*$": "<rootDir>/node_modules/axios/lib/axios.js",
26
22
  }
27
23
  // add pro sources if they exist
28
24
  if (fs.existsSync("../../../budibase-pro")) {
29
- config.moduleNameMapper["@budibase/pro"] =
25
+ baseConfig.moduleNameMapper["@budibase/pro"] =
30
26
  "<rootDir>/../../../budibase-pro/packages/pro/src"
31
27
  }
32
28
  } else {
33
29
  console.log("Running tests with compiled dependency sources")
34
30
  }
35
31
 
32
+ const config: Config.InitialOptions = {
33
+ projects: [
34
+ {
35
+ ...baseConfig,
36
+ displayName: "sequential test",
37
+ testMatch: ["<rootDir>/**/*.seq.spec.[jt]s"],
38
+ runner: "jest-serial-runner",
39
+ },
40
+ {
41
+ ...baseConfig,
42
+ testMatch: ["<rootDir>/**/!(*.seq).spec.[jt]s"],
43
+ },
44
+ ],
45
+ collectCoverageFrom: [
46
+ "src/**/*.{js,ts}",
47
+ // The use of coverage with couchdb view functions breaks tests
48
+ "!src/db/views/staticViews.*",
49
+ ],
50
+ coverageReporters: ["lcov", "json", "clover"],
51
+ }
52
+
36
53
  export default config
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "2.2.27-alpha.0",
4
+ "version": "2.2.27-alpha.1",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -43,11 +43,11 @@
43
43
  "license": "GPL-3.0",
44
44
  "dependencies": {
45
45
  "@apidevtools/swagger-parser": "10.0.3",
46
- "@budibase/backend-core": "2.2.27-alpha.0",
47
- "@budibase/client": "2.2.27-alpha.0",
48
- "@budibase/pro": "2.2.26",
49
- "@budibase/string-templates": "2.2.27-alpha.0",
50
- "@budibase/types": "2.2.27-alpha.0",
46
+ "@budibase/backend-core": "2.2.27-alpha.1",
47
+ "@budibase/client": "2.2.27-alpha.1",
48
+ "@budibase/pro": "2.2.27-alpha.0",
49
+ "@budibase/string-templates": "2.2.27-alpha.1",
50
+ "@budibase/types": "2.2.27-alpha.1",
51
51
  "@bull-board/api": "3.7.0",
52
52
  "@bull-board/koa": "3.9.4",
53
53
  "@elastic/elasticsearch": "7.10.0",
@@ -125,6 +125,7 @@
125
125
  "@jest/test-sequencer": "24.9.0",
126
126
  "@swc/core": "^1.3.25",
127
127
  "@swc/jest": "^0.2.24",
128
+ "@trendyol/jest-testcontainers": "^2.1.1",
128
129
  "@types/apidoc": "0.50.0",
129
130
  "@types/bson": "4.2.0",
130
131
  "@types/global-agent": "2.1.1",
@@ -151,6 +152,7 @@
151
152
  "is-wsl": "2.2.0",
152
153
  "jest": "28.1.1",
153
154
  "jest-openapi": "0.14.2",
155
+ "jest-serial-runner": "^1.2.1",
154
156
  "nodemon": "2.0.15",
155
157
  "openapi-types": "9.3.1",
156
158
  "openapi-typescript": "5.2.0",
@@ -169,5 +171,5 @@
169
171
  "optionalDependencies": {
170
172
  "oracledb": "5.3.0"
171
173
  },
172
- "gitHead": "58f20501ab6d74756b2b5301e11767d6abaa4b39"
174
+ "gitHead": "90a1d96a205fe5355653640655eb7844dba1d789"
173
175
  }
@@ -41,7 +41,7 @@ const datasets = {
41
41
  describe("Rest Importer", () => {
42
42
  const config = new TestConfig(false)
43
43
 
44
- beforeEach(async () => {
44
+ beforeAll(async () => {
45
45
  await config.init()
46
46
  })
47
47
 
@@ -7,7 +7,7 @@ Array [
7
7
  "entities": Array [
8
8
  Object {
9
9
  "_id": "ta_users",
10
- "_rev": "1-6f4013e796887f1771bf7837598d87e7",
10
+ "_rev": "1-2375e1bc58aeec664dc1b1f04ad43e44",
11
11
  "createdAt": "2020-01-01T00:00:00.000Z",
12
12
  "name": "Users",
13
13
  "primaryDisplay": "email",
@@ -10,8 +10,11 @@ describe("/static", () => {
10
10
 
11
11
  afterAll(setup.afterAll)
12
12
 
13
- beforeEach(async () => {
13
+ beforeAll(async () => {
14
14
  app = await config.init()
15
+ })
16
+
17
+ beforeEach(()=>{
15
18
  jest.clearAllMocks()
16
19
  })
17
20
 
@@ -7,7 +7,7 @@ describe("/api/keys", () => {
7
7
 
8
8
  afterAll(setup.afterAll)
9
9
 
10
- beforeEach(async () => {
10
+ beforeAll(async () => {
11
11
  await config.init()
12
12
  })
13
13
 
@@ -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
  })
@@ -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,20 @@
1
- import { db as dbCore } from "@budibase/backend-core"
2
1
  import { AppStatus } from "../../../db/utils"
3
2
 
4
3
  import * as setup from "./utilities"
5
4
 
5
+ import { wipeDb } from "./utilities/TestFunctions"
6
+
6
7
  describe("/cloud", () => {
7
8
  let request = setup.getRequest()
8
9
  let config = setup.getConfig()
9
10
 
10
11
  afterAll(setup.afterAll)
11
12
 
13
+ beforeAll(() => {
14
+ // Importing is only allowed in self hosted environments
15
+ config.modeSelf()
16
+ })
17
+
12
18
  beforeEach(async () => {
13
19
  await config.init()
14
20
  })
@@ -22,19 +28,7 @@ describe("/cloud", () => {
22
28
  it("should be able to import apps", async () => {
23
29
  // first we need to delete any existing apps on the system so it looks clean otherwise the
24
30
  // 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)
31
+ await wipeDb()
38
32
 
39
33
  // get a count of apps before the import
40
34
  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
  })
@@ -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}`)
@@ -239,6 +255,10 @@ describe("/queries", () => {
239
255
  })
240
256
 
241
257
  describe("execute", () => {
258
+ beforeEach(async() => {
259
+ await setupTest()
260
+ })
261
+
242
262
  it("should be able to execute the query", async () => {
243
263
  const res = await request
244
264
  .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