@budibase/server 2.3.10 → 2.3.11-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 (549) 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.10df3878.js → index.a7877207.js} +146 -146
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +11930 -7194
  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 +38 -35
  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 +31 -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 +16 -16
  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 +21739 -14013
  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 +1 -1
  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/integrations/base/sql.js +10 -3
  465. package/dist/package.json +8 -6
  466. package/dist/sdk/app/backups/exports.js +8 -2
  467. package/dist/sdk/app/datasources/datasources.js +3 -0
  468. package/dist/tests/utilities/TestConfiguration.js +626 -0
  469. package/dist/tests/utilities/controllers.js +40 -0
  470. package/dist/tests/utilities/structures.js +234 -0
  471. package/dist/tsconfig.build.tsbuildinfo +1 -1
  472. package/dist/utilities/retry.js +30 -0
  473. package/jest-testcontainers-config.js +8 -0
  474. package/jest.config.ts +28 -11
  475. package/package.json +9 -7
  476. package/scripts/load/create-many-apps.js +24 -0
  477. package/scripts/load/create-many-rows.js +30 -0
  478. package/scripts/load/utils.js +66 -0
  479. package/specs/openapi.json +6 -6
  480. package/specs/openapi.yaml +3 -3
  481. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  482. package/src/api/controllers/query/index.ts +2 -0
  483. package/src/api/controllers/row/ExternalRequest.ts +6 -2
  484. package/src/api/controllers/row/external.ts +13 -1
  485. package/src/api/controllers/table/external.ts +3 -2
  486. package/src/api/routes/public/applications.ts +0 -1
  487. package/src/api/routes/public/tests/compare.spec.js +1 -1
  488. package/src/api/routes/public/tests/users.spec.js +1 -1
  489. package/src/api/routes/public/tests/utils.ts +25 -8
  490. package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
  491. package/src/api/routes/tests/analytics.spec.js +4 -1
  492. package/src/api/routes/tests/apikeys.spec.js +1 -1
  493. package/src/api/routes/tests/application.spec.ts +20 -6
  494. package/src/api/routes/tests/auth.spec.js +2 -2
  495. package/src/api/routes/tests/automation.spec.js +6 -2
  496. package/src/api/routes/tests/backup.spec.ts +4 -13
  497. package/src/api/routes/tests/{cloud.spec.ts → cloud.seq.spec.ts} +11 -15
  498. package/src/api/routes/tests/component.spec.js +1 -1
  499. package/src/api/routes/tests/datasource.spec.ts +20 -3
  500. package/src/api/routes/tests/dev.spec.js +1 -1
  501. package/src/api/routes/tests/environmentVariables.spec.ts +144 -0
  502. package/src/api/routes/tests/integration.spec.js +1 -1
  503. package/src/api/routes/tests/layout.spec.js +1 -1
  504. package/src/api/routes/tests/metadata.spec.js +1 -1
  505. package/src/api/routes/tests/misc.spec.js +1 -1
  506. package/src/api/routes/tests/permissions.spec.js +4 -1
  507. package/src/api/routes/tests/{query.spec.js → query.seq.spec.js} +22 -1
  508. package/src/api/routes/tests/role.spec.js +6 -1
  509. package/src/api/routes/tests/routing.spec.js +1 -1
  510. package/src/api/routes/tests/row.spec.js +11 -3
  511. package/src/api/routes/tests/screen.spec.js +1 -1
  512. package/src/api/routes/tests/static.spec.js +2 -1
  513. package/src/api/routes/tests/table.spec.js +1 -1
  514. package/src/api/routes/tests/templates.spec.js +1 -1
  515. package/src/api/routes/tests/user.spec.js +12 -12
  516. package/src/api/routes/tests/utilities/TestFunctions.ts +25 -2
  517. package/src/api/routes/tests/utilities/index.ts +5 -3
  518. package/src/api/routes/tests/view.spec.js +4 -1
  519. package/src/api/routes/tests/webhook.spec.js +11 -2
  520. package/src/app.ts +2 -1
  521. package/src/automations/tests/automation.spec.js +4 -4
  522. package/src/automations/tests/bash.spec.js +1 -1
  523. package/src/automations/tests/discord.spec.js +1 -1
  524. package/src/automations/tests/executeQuery.spec.js +2 -3
  525. package/src/automations/tests/executeScript.spec.js +1 -1
  526. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  527. package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
  528. package/src/automations/tests/serverLog.spec.js +1 -1
  529. package/src/automations/tests/updateRow.spec.js +1 -1
  530. package/src/automations/tests/zapier.spec.js +1 -1
  531. package/src/constants/index.ts +1 -23
  532. package/src/db/defaultData/datasource_bb_default.ts +6 -10
  533. package/src/db/linkedRows/LinkController.ts +2 -1
  534. package/src/db/tests/linkController.spec.js +4 -1
  535. package/src/db/tests/linkTests.spec.js +1 -1
  536. package/src/integration-test/postgres.spec.ts +752 -0
  537. package/src/integrations/base/sql.ts +15 -5
  538. package/src/integrations/oracle.ts +1 -1
  539. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  540. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  541. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
  542. package/src/migrations/tests/index.spec.ts +13 -20
  543. package/src/sdk/app/backups/exports.ts +8 -2
  544. package/src/sdk/app/datasources/datasources.ts +3 -0
  545. package/src/tests/jestEnv.ts +2 -6
  546. package/src/tests/jestSetup.ts +8 -7
  547. package/src/tests/utilities/TestConfiguration.ts +126 -50
  548. package/src/tests/utilities/structures.ts +16 -2
  549. package/src/utilities/retry.ts +18 -0
@@ -0,0 +1,484 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/api/routes/tests/permissions.spec.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/api/routes/tests</a> permissions.spec.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">0% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>0/64</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/18</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">0% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>0/63</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
200
+ <span class="cline-any cline-no">&nbsp;</span>
201
+ <span class="cline-any cline-no">&nbsp;</span>
202
+ <span class="cline-any cline-no">&nbsp;</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-no">&nbsp;</span>
205
+ <span class="cline-any cline-no">&nbsp;</span>
206
+ <span class="cline-any cline-neutral">&nbsp;</span>
207
+ <span class="cline-any cline-no">&nbsp;</span>
208
+ <span class="cline-any cline-no">&nbsp;</span>
209
+ <span class="cline-any cline-no">&nbsp;</span>
210
+ <span class="cline-any cline-neutral">&nbsp;</span>
211
+ <span class="cline-any cline-neutral">&nbsp;</span>
212
+ <span class="cline-any cline-neutral">&nbsp;</span>
213
+ <span class="cline-any cline-neutral">&nbsp;</span>
214
+ <span class="cline-any cline-no">&nbsp;</span>
215
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-no">&nbsp;</span>
217
+ <span class="cline-any cline-no">&nbsp;</span>
218
+ <span class="cline-any cline-neutral">&nbsp;</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
220
+ <span class="cline-any cline-no">&nbsp;</span>
221
+ <span class="cline-any cline-no">&nbsp;</span>
222
+ <span class="cline-any cline-no">&nbsp;</span>
223
+ <span class="cline-any cline-no">&nbsp;</span>
224
+ <span class="cline-any cline-neutral">&nbsp;</span>
225
+ <span class="cline-any cline-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-neutral">&nbsp;</span>
227
+ <span class="cline-any cline-no">&nbsp;</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-neutral">&nbsp;</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-no">&nbsp;</span>
235
+ <span class="cline-any cline-no">&nbsp;</span>
236
+ <span class="cline-any cline-no">&nbsp;</span>
237
+ <span class="cline-any cline-neutral">&nbsp;</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-no">&nbsp;</span>
242
+ <span class="cline-any cline-no">&nbsp;</span>
243
+ <span class="cline-any cline-no">&nbsp;</span>
244
+ <span class="cline-any cline-no">&nbsp;</span>
245
+ <span class="cline-any cline-no">&nbsp;</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
+ <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-neutral">&nbsp;</span>
249
+ <span class="cline-any cline-no">&nbsp;</span>
250
+ <span class="cline-any cline-no">&nbsp;</span>
251
+ <span class="cline-any cline-no">&nbsp;</span>
252
+ <span class="cline-any cline-no">&nbsp;</span>
253
+ <span class="cline-any cline-neutral">&nbsp;</span>
254
+ <span class="cline-any cline-neutral">&nbsp;</span>
255
+ <span class="cline-any cline-no">&nbsp;</span>
256
+ <span class="cline-any cline-no">&nbsp;</span>
257
+ <span class="cline-any cline-neutral">&nbsp;</span>
258
+ <span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-no">&nbsp;</span>
262
+ <span class="cline-any cline-no">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-no">&nbsp;</span>
266
+ <span class="cline-any cline-no">&nbsp;</span>
267
+ <span class="cline-any cline-no">&nbsp;</span>
268
+ <span class="cline-any cline-no">&nbsp;</span>
269
+ <span class="cline-any cline-no">&nbsp;</span>
270
+ <span class="cline-any cline-no">&nbsp;</span>
271
+ <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-no">&nbsp;</span>
276
+ <span class="cline-any cline-no">&nbsp;</span>
277
+ <span class="cline-any cline-neutral">&nbsp;</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-no">&nbsp;</span>
281
+ <span class="cline-any cline-no">&nbsp;</span>
282
+ <span class="cline-any cline-no">&nbsp;</span>
283
+ <span class="cline-any cline-neutral">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-no">&nbsp;</span>
288
+ <span class="cline-any cline-no">&nbsp;</span>
289
+ <span class="cline-any cline-no">&nbsp;</span>
290
+ <span class="cline-any cline-neutral">&nbsp;</span>
291
+ <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-no">&nbsp;</span>
294
+ <span class="cline-any cline-no">&nbsp;</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-no">&nbsp;</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-no">&nbsp;</span>
299
+ <span class="cline-any cline-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-neutral">&nbsp;</span>
301
+ <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-no">&nbsp;</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-no">&nbsp;</span>
307
+ <span class="cline-any cline-no">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-neutral">&nbsp;</span>
313
+ <span class="cline-any cline-no">&nbsp;</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-no">&nbsp;</span>
318
+ <span class="cline-any cline-no">&nbsp;</span>
319
+ <span class="cline-any cline-no">&nbsp;</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-no">&nbsp;</span>
325
+ <span class="cline-any cline-no">&nbsp;</span>
326
+ <span class="cline-any cline-no">&nbsp;</span>
327
+ <span class="cline-any cline-no">&nbsp;</span>
328
+ <span class="cline-any cline-no">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { roles } = <span class="cstat-no" title="statement not covered" >require("@budibase/backend-core")</span>
333
+ const setup = <span class="cstat-no" title="statement not covered" >require("./utilities")</span>
334
+ const { basicRow } = <span class="cstat-no" title="statement not covered" >setup.structures</span>
335
+ const { BUILTIN_ROLE_IDS } = <span class="cstat-no" title="statement not covered" >roles</span>
336
+ &nbsp;
337
+ const HIGHER_ROLE_ID = <span class="cstat-no" title="statement not covered" >BUILTIN_ROLE_IDS.BASIC</span>
338
+ const STD_ROLE_ID = <span class="cstat-no" title="statement not covered" >BUILTIN_ROLE_IDS.PUBLIC</span>
339
+ &nbsp;
340
+ <span class="cstat-no" title="statement not covered" >describe("/permission", <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
341
+ let request = <span class="cstat-no" title="statement not covered" >setup.getRequest()</span>
342
+ let config = <span class="cstat-no" title="statement not covered" >setup.getConfig()</span>
343
+ let table
344
+ let perms
345
+ let row
346
+ &nbsp;
347
+ <span class="cstat-no" title="statement not covered" > afterAll(setup.afterAll)</span>
348
+ &nbsp;
349
+ <span class="cstat-no" title="statement not covered" > beforeAll(<span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
350
+ <span class="cstat-no" title="statement not covered" > await config.init()</span>
351
+ })
352
+
353
+ <span class="cstat-no" title="statement not covered" > beforeEach(<span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
354
+ <span class="cstat-no" title="statement not covered" > table = await config.createTable()</span>
355
+ <span class="cstat-no" title="statement not covered" > row = await config.createRow()</span>
356
+ <span class="cstat-no" title="statement not covered" > perms = await config.addPermission(STD_ROLE_ID, table._id)</span>
357
+ })
358
+ &nbsp;
359
+ async function <span class="fstat-no" title="function not covered" >getTablePermissions(</span>) {
360
+ <span class="cstat-no" title="statement not covered" > return request</span>
361
+ .get(`/api/permission/${table._id}`)
362
+ .set(config.defaultHeaders())
363
+ .expect("Content-Type", /json/)
364
+ .expect(200)
365
+ }
366
+ &nbsp;
367
+ <span class="cstat-no" title="statement not covered" > describe("levels", <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
368
+ <span class="cstat-no" title="statement not covered" > it("should be able to get levels", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
369
+ const res = <span class="cstat-no" title="statement not covered" >await request</span>
370
+ .get(`/api/permission/levels`)
371
+ .set(config.defaultHeaders())
372
+ .expect("Content-Type", /json/)
373
+ .expect(200)
374
+ <span class="cstat-no" title="statement not covered" > expect(res.body).toBeDefined()</span>
375
+ <span class="cstat-no" title="statement not covered" > expect(res.body.length).toEqual(3)</span>
376
+ <span class="cstat-no" title="statement not covered" > expect(res.body).toContain("read")</span>
377
+ <span class="cstat-no" title="statement not covered" > expect(res.body).toContain("write")</span>
378
+ <span class="cstat-no" title="statement not covered" > expect(res.body).toContain("execute")</span>
379
+ })
380
+ })
381
+ &nbsp;
382
+ <span class="cstat-no" title="statement not covered" > describe("add", <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
383
+ <span class="cstat-no" title="statement not covered" > it("should be able to add permission to a role for the table", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
384
+ <span class="cstat-no" title="statement not covered" > expect(perms.length).toEqual(1)</span>
385
+ <span class="cstat-no" title="statement not covered" > expect(perms[0]._id).toEqual(`${STD_ROLE_ID}`)</span>
386
+ })
387
+ &nbsp;
388
+ <span class="cstat-no" title="statement not covered" > it("should get the resource permissions", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
389
+ const res = <span class="cstat-no" title="statement not covered" >await request</span>
390
+ .get(`/api/permission/${table._id}`)
391
+ .set(config.defaultHeaders())
392
+ .expect("Content-Type", /json/)
393
+ .expect(200)
394
+ <span class="cstat-no" title="statement not covered" > expect(res.body["read"]).toEqual(STD_ROLE_ID)</span>
395
+ <span class="cstat-no" title="statement not covered" > expect(res.body["write"]).toEqual(HIGHER_ROLE_ID)</span>
396
+ })
397
+ &nbsp;
398
+ <span class="cstat-no" title="statement not covered" > it("should get resource permissions with multiple roles", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
399
+ <span class="cstat-no" title="statement not covered" > perms = await config.addPermission(HIGHER_ROLE_ID, table._id, "write")</span>
400
+ const res = <span class="cstat-no" title="statement not covered" >await getTablePermissions()</span>
401
+ <span class="cstat-no" title="statement not covered" > expect(res.body["read"]).toEqual(STD_ROLE_ID)</span>
402
+ <span class="cstat-no" title="statement not covered" > expect(res.body["write"]).toEqual(HIGHER_ROLE_ID)</span>
403
+ const allRes = <span class="cstat-no" title="statement not covered" >await request</span>
404
+ .get(`/api/permission`)
405
+ .set(config.defaultHeaders())
406
+ .expect("Content-Type", /json/)
407
+ .expect(200)
408
+ <span class="cstat-no" title="statement not covered" > expect(allRes.body[table._id]["write"]).toEqual(HIGHER_ROLE_ID)</span>
409
+ <span class="cstat-no" title="statement not covered" > expect(allRes.body[table._id]["read"]).toEqual(STD_ROLE_ID)</span>
410
+ })
411
+ })
412
+ &nbsp;
413
+ <span class="cstat-no" title="statement not covered" > describe("remove", <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
414
+ <span class="cstat-no" title="statement not covered" > it("should be able to remove the permission", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
415
+ const res = <span class="cstat-no" title="statement not covered" >await request</span>
416
+ .delete(`/api/permission/${STD_ROLE_ID}/${table._id}/read`)
417
+ .set(config.defaultHeaders())
418
+ .expect("Content-Type", /json/)
419
+ .expect(200)
420
+ <span class="cstat-no" title="statement not covered" > expect(res.body[0]._id).toEqual(STD_ROLE_ID)</span>
421
+ const permsRes = <span class="cstat-no" title="statement not covered" >await getTablePermissions()</span>
422
+ <span class="cstat-no" title="statement not covered" > expect(permsRes.body[STD_ROLE_ID]).toBeUndefined()</span>
423
+ })
424
+ })
425
+ &nbsp;
426
+ <span class="cstat-no" title="statement not covered" > describe("check public user allowed", <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
427
+ <span class="cstat-no" title="statement not covered" > it("should be able to read the row", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
428
+ // replicate changes before checking permissions
429
+ <span class="cstat-no" title="statement not covered" > await config.publish()</span>
430
+ &nbsp;
431
+ const res = <span class="cstat-no" title="statement not covered" >await request</span>
432
+ .get(`/api/${table._id}/rows`)
433
+ .set(config.publicHeaders())
434
+ .expect("Content-Type", /json/)
435
+ .expect(200)
436
+ <span class="cstat-no" title="statement not covered" > expect(res.body[0]._id).toEqual(row._id)</span>
437
+ })
438
+ &nbsp;
439
+ <span class="cstat-no" title="statement not covered" > it("shouldn't allow writing from a public user", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
440
+ const res = <span class="cstat-no" title="statement not covered" >await request</span>
441
+ .post(`/api/${table._id}/rows`)
442
+ .send(basicRow(table._id))
443
+ .set(config.publicHeaders())
444
+ .expect("Content-Type", /json/)
445
+ .expect(403)
446
+ <span class="cstat-no" title="statement not covered" > expect(res.status).toEqual(403)</span>
447
+ })
448
+ })
449
+ &nbsp;
450
+ <span class="cstat-no" title="statement not covered" > describe("fetch builtins", <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
451
+ <span class="cstat-no" title="statement not covered" > it("should be able to fetch builtin definitions", <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {</span>
452
+ const res = <span class="cstat-no" title="statement not covered" >await request</span>
453
+ .get(`/api/permission/builtin`)
454
+ .set(config.defaultHeaders())
455
+ .expect("Content-Type", /json/)
456
+ .expect(200)
457
+ <span class="cstat-no" title="statement not covered" > expect(Array.isArray(res.body)).toEqual(true)</span>
458
+ const publicPerm = <span class="cstat-no" title="statement not covered" >res.body.find(<span class="fstat-no" title="function not covered" >pe</span>rm =&gt; <span class="cstat-no" title="statement not covered" >perm._id === "public")</span></span>
459
+ <span class="cstat-no" title="statement not covered" > expect(publicPerm).toBeDefined()</span>
460
+ <span class="cstat-no" title="statement not covered" > expect(publicPerm.permissions).toBeDefined()</span>
461
+ <span class="cstat-no" title="statement not covered" > expect(publicPerm.name).toBeDefined()</span>
462
+ })
463
+ })
464
+ })
465
+ &nbsp;</pre></td></tr></table></pre>
466
+
467
+ <div class='push'></div><!-- for sticky footer -->
468
+ </div><!-- /wrapper -->
469
+ <div class='footer quiet pad2 space-top1 center small'>
470
+ Code coverage generated by
471
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
472
+ at Fri Feb 10 2023 19:13:10 GMT+0000 (Coordinated Universal Time)
473
+ </div>
474
+ <script src="../../../../prettify.js"></script>
475
+ <script>
476
+ window.onload = function () {
477
+ prettyPrint();
478
+ };
479
+ </script>
480
+ <script src="../../../../sorter.js"></script>
481
+ <script src="../../../../block-navigation.js"></script>
482
+ </body>
483
+ </html>
484
+