@defra/forms-engine-plugin 4.7.2 → 4.8.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 (407) hide show
  1. package/.public/javascripts/shared.min.js +1 -1
  2. package/.public/javascripts/shared.min.js.map +1 -1
  3. package/.server/client/javascripts/geospatial-map.d.ts +6 -6
  4. package/.server/client/javascripts/geospatial-map.js +3 -3
  5. package/.server/client/javascripts/location-map.d.ts +1 -1
  6. package/.server/client/javascripts/location-map.js +1 -1
  7. package/.server/client/javascripts/map.d.ts +5 -1
  8. package/.server/client/javascripts/map.js +10 -2
  9. package/.server/client/javascripts/map.js.map +1 -1
  10. package/.server/client/javascripts/shared.d.ts +7 -7
  11. package/.server/server/index.d.ts +1 -1
  12. package/.server/server/plugins/crumb.d.ts +1 -1
  13. package/.server/server/plugins/engine/beta/form-context.d.ts +6 -6
  14. package/.server/server/plugins/engine/components/AutocompleteField.d.ts +4 -4
  15. package/.server/server/plugins/engine/components/CheckboxesField.d.ts +2 -2
  16. package/.server/server/plugins/engine/components/CheckboxesField.js +2 -2
  17. package/.server/server/plugins/engine/components/CheckboxesField.js.map +1 -1
  18. package/.server/server/plugins/engine/components/ComponentBase.d.ts +5 -5
  19. package/.server/server/plugins/engine/components/ComponentCollection.d.ts +8 -8
  20. package/.server/server/plugins/engine/components/DatePartsField.d.ts +11 -11
  21. package/.server/server/plugins/engine/components/DeclarationField.d.ts +3 -3
  22. package/.server/server/plugins/engine/components/Details.d.ts +1 -1
  23. package/.server/server/plugins/engine/components/EastingNorthingField.d.ts +22 -22
  24. package/.server/server/plugins/engine/components/EmailAddressField.d.ts +4 -4
  25. package/.server/server/plugins/engine/components/FileUploadField.d.ts +3 -3
  26. package/.server/server/plugins/engine/components/FormComponent.d.ts +10 -10
  27. package/.server/server/plugins/engine/components/GeospatialField.d.ts +6 -6
  28. package/.server/server/plugins/engine/components/HiddenField.d.ts +2 -2
  29. package/.server/server/plugins/engine/components/Html.d.ts +1 -1
  30. package/.server/server/plugins/engine/components/InsetText.d.ts +1 -1
  31. package/.server/server/plugins/engine/components/LatLongField.d.ts +22 -22
  32. package/.server/server/plugins/engine/components/List.d.ts +8 -8
  33. package/.server/server/plugins/engine/components/ListFormComponent.d.ts +10 -10
  34. package/.server/server/plugins/engine/components/LocationFieldBase.d.ts +6 -6
  35. package/.server/server/plugins/engine/components/LocationFieldHelpers.d.ts +14 -14
  36. package/.server/server/plugins/engine/components/Markdown.d.ts +1 -1
  37. package/.server/server/plugins/engine/components/MonthYearField.d.ts +11 -11
  38. package/.server/server/plugins/engine/components/MultilineTextField.d.ts +5 -5
  39. package/.server/server/plugins/engine/components/NationalGridFieldNumberField.d.ts +1 -1
  40. package/.server/server/plugins/engine/components/NumberField.d.ts +3 -3
  41. package/.server/server/plugins/engine/components/OsGridRefField.d.ts +1 -1
  42. package/.server/server/plugins/engine/components/PaymentField.d.ts +12 -12
  43. package/.server/server/plugins/engine/components/RadiosField.d.ts +1 -1
  44. package/.server/server/plugins/engine/components/SelectField.d.ts +4 -4
  45. package/.server/server/plugins/engine/components/SelectionControlField.d.ts +10 -10
  46. package/.server/server/plugins/engine/components/TelephoneNumberField.d.ts +4 -4
  47. package/.server/server/plugins/engine/components/TextField.d.ts +2 -2
  48. package/.server/server/plugins/engine/components/UkAddressField.d.ts +11 -11
  49. package/.server/server/plugins/engine/components/YesNoField.d.ts +2 -2
  50. package/.server/server/plugins/engine/components/helpers/__stubs__/geospatial.d.ts +1 -1
  51. package/.server/server/plugins/engine/components/helpers/components.d.ts +5 -5
  52. package/.server/server/plugins/engine/components/helpers/geospatial.d.ts +1 -1
  53. package/.server/server/plugins/engine/components/index.d.ts +27 -27
  54. package/.server/server/plugins/engine/components/types.d.ts +1 -1
  55. package/.server/server/plugins/engine/configureEnginePlugin.d.ts +4 -4
  56. package/.server/server/plugins/engine/date-helper.d.ts +1 -1
  57. package/.server/server/plugins/engine/helpers.d.ts +8 -8
  58. package/.server/server/plugins/engine/index.d.ts +5 -5
  59. package/.server/server/plugins/engine/models/FormModel.d.ts +6 -6
  60. package/.server/server/plugins/engine/models/SummaryViewModel.d.ts +6 -6
  61. package/.server/server/plugins/engine/models/index.d.ts +2 -2
  62. package/.server/server/plugins/engine/models/types.d.ts +4 -4
  63. package/.server/server/plugins/engine/options.d.ts +1 -1
  64. package/.server/server/plugins/engine/options.js +1 -1
  65. package/.server/server/plugins/engine/options.test.js +1 -1
  66. package/.server/server/plugins/engine/outputFormatters/adapter/v1.d.ts +4 -4
  67. package/.server/server/plugins/engine/outputFormatters/human/v1.d.ts +4 -4
  68. package/.server/server/plugins/engine/outputFormatters/index.d.ts +5 -5
  69. package/.server/server/plugins/engine/outputFormatters/machine/v1.d.ts +4 -4
  70. package/.server/server/plugins/engine/outputFormatters/machine/v2.d.ts +4 -4
  71. package/.server/server/plugins/engine/pageControllers/FileUploadPageController.d.ts +8 -8
  72. package/.server/server/plugins/engine/pageControllers/PageController.d.ts +6 -6
  73. package/.server/server/plugins/engine/pageControllers/QuestionPageController.d.ts +8 -8
  74. package/.server/server/plugins/engine/pageControllers/RepeatPageController.d.ts +5 -5
  75. package/.server/server/plugins/engine/pageControllers/StartPageController.d.ts +4 -4
  76. package/.server/server/plugins/engine/pageControllers/StatusPageController.d.ts +4 -4
  77. package/.server/server/plugins/engine/pageControllers/SummaryPageController.d.ts +5 -5
  78. package/.server/server/plugins/engine/pageControllers/TerminalPageController.d.ts +3 -3
  79. package/.server/server/plugins/engine/pageControllers/__stubs__/request.d.ts +2 -2
  80. package/.server/server/plugins/engine/pageControllers/errors.d.ts +1 -1
  81. package/.server/server/plugins/engine/pageControllers/helpers/pages.d.ts +2 -2
  82. package/.server/server/plugins/engine/pageControllers/helpers/state.d.ts +5 -5
  83. package/.server/server/plugins/engine/pageControllers/helpers/state.js +1 -1
  84. package/.server/server/plugins/engine/pageControllers/helpers/state.js.map +1 -1
  85. package/.server/server/plugins/engine/pageControllers/helpers/submission.d.ts +1 -1
  86. package/.server/server/plugins/engine/pageControllers/index.d.ts +7 -7
  87. package/.server/server/plugins/engine/plugin.d.ts +1 -1
  88. package/.server/server/plugins/engine/routes/file-upload.d.ts +1 -1
  89. package/.server/server/plugins/engine/routes/index.d.ts +3 -3
  90. package/.server/server/plugins/engine/routes/payment-helper.d.ts +3 -3
  91. package/.server/server/plugins/engine/routes/payment-helper.js +2 -2
  92. package/.server/server/plugins/engine/routes/payment.js +5 -5
  93. package/.server/server/plugins/engine/routes/payment.test.js +1 -1
  94. package/.server/server/plugins/engine/routes/questions.d.ts +2 -2
  95. package/.server/server/plugins/engine/routes/repeaters/item-delete.d.ts +2 -2
  96. package/.server/server/plugins/engine/routes/repeaters/summary.d.ts +2 -2
  97. package/.server/server/plugins/engine/services/index.d.ts +3 -3
  98. package/.server/server/plugins/engine/services/notifyService.d.ts +4 -4
  99. package/.server/server/plugins/engine/services/uploadService.d.ts +2 -2
  100. package/.server/server/plugins/engine/services/uploadService.js +1 -1
  101. package/.server/server/plugins/engine/types/index.d.ts +10 -10
  102. package/.server/server/plugins/engine/types/schema.d.ts +1 -1
  103. package/.server/server/plugins/engine/types.d.ts +25 -16
  104. package/.server/server/plugins/engine/types.js.map +1 -1
  105. package/.server/server/plugins/engine/validationHelpers.d.ts +2 -2
  106. package/.server/server/plugins/engine/vision.d.ts +1 -1
  107. package/.server/server/plugins/map/index.d.ts +1 -1
  108. package/.server/server/plugins/map/index.js +1 -1
  109. package/.server/server/plugins/map/routes/get-os-token.d.ts +11 -1
  110. package/.server/server/plugins/map/routes/get-os-token.js +12 -2
  111. package/.server/server/plugins/map/routes/get-os-token.js.map +1 -1
  112. package/.server/server/plugins/map/routes/index.d.ts +4 -4
  113. package/.server/server/plugins/map/routes/index.js +3 -2
  114. package/.server/server/plugins/map/routes/index.js.map +1 -1
  115. package/.server/server/plugins/map/routes/vts/esri-aerial.json +23 -0
  116. package/.server/server/plugins/map/service.d.ts +1 -1
  117. package/.server/server/plugins/map/service.js +5 -2
  118. package/.server/server/plugins/map/service.js.map +1 -1
  119. package/.server/server/plugins/map/test/__stubs__/find.d.ts +1 -1
  120. package/.server/server/plugins/map/test/__stubs__/find.js +1 -1
  121. package/.server/server/plugins/nunjucks/context.d.ts +2 -2
  122. package/.server/server/plugins/nunjucks/context.js +2 -2
  123. package/.server/server/plugins/nunjucks/context.test.js +1 -1
  124. package/.server/server/plugins/nunjucks/enviroment.test.js +1 -1
  125. package/.server/server/plugins/nunjucks/environment.d.ts +3 -3
  126. package/.server/server/plugins/nunjucks/environment.js +3 -3
  127. package/.server/server/plugins/nunjucks/filters/answer.d.ts +1 -1
  128. package/.server/server/plugins/nunjucks/filters/answer.js +2 -2
  129. package/.server/server/plugins/nunjucks/filters/answer.test.js +1 -1
  130. package/.server/server/plugins/nunjucks/filters/evaluate.d.ts +1 -1
  131. package/.server/server/plugins/nunjucks/filters/evaluate.js +1 -1
  132. package/.server/server/plugins/nunjucks/filters/field.d.ts +1 -1
  133. package/.server/server/plugins/nunjucks/filters/field.js +1 -1
  134. package/.server/server/plugins/nunjucks/filters/field.test.js +1 -1
  135. package/.server/server/plugins/nunjucks/filters/href.d.ts +1 -1
  136. package/.server/server/plugins/nunjucks/filters/href.js +1 -1
  137. package/.server/server/plugins/nunjucks/filters/href.test.js +1 -1
  138. package/.server/server/plugins/nunjucks/filters/index.d.ts +8 -8
  139. package/.server/server/plugins/nunjucks/filters/page.d.ts +1 -1
  140. package/.server/server/plugins/nunjucks/filters/page.js +1 -1
  141. package/.server/server/plugins/nunjucks/filters/page.test.js +1 -1
  142. package/.server/server/plugins/nunjucks/index.d.ts +3 -3
  143. package/.server/server/plugins/nunjucks/render.d.ts +2 -2
  144. package/.server/server/plugins/nunjucks/render.js +1 -1
  145. package/.server/server/plugins/nunjucks/types.d.ts +1 -1
  146. package/.server/server/plugins/nunjucks/types.js +1 -1
  147. package/.server/server/plugins/payment/helper.d.ts +2 -2
  148. package/.server/server/plugins/payment/helper.js +1 -1
  149. package/.server/server/plugins/payment/service.d.ts +3 -3
  150. package/.server/server/plugins/payment/service.js +1 -1
  151. package/.server/server/plugins/postcode-lookup/index.d.ts +1 -1
  152. package/.server/server/plugins/postcode-lookup/index.js +1 -1
  153. package/.server/server/plugins/postcode-lookup/models/index.d.ts +6 -6
  154. package/.server/server/plugins/postcode-lookup/models/index.js +1 -1
  155. package/.server/server/plugins/postcode-lookup/routes/index.d.ts +6 -6
  156. package/.server/server/plugins/postcode-lookup/routes/index.js +15 -15
  157. package/.server/server/plugins/postcode-lookup/routes/index.js.map +1 -1
  158. package/.server/server/plugins/postcode-lookup/service.d.ts +1 -1
  159. package/.server/server/plugins/postcode-lookup/service.js +5 -2
  160. package/.server/server/plugins/postcode-lookup/service.js.map +1 -1
  161. package/.server/server/plugins/postcode-lookup/types.js +1 -1
  162. package/.server/server/routes/index.d.ts +2 -2
  163. package/.server/server/routes/types.d.ts +1 -1
  164. package/.server/server/schemas/index.d.ts +2 -2
  165. package/.server/server/services/cacheService.d.ts +8 -8
  166. package/.server/server/services/cacheService.js +2 -5
  167. package/.server/server/services/cacheService.js.map +1 -1
  168. package/.server/server/services/httpService.test.js +1 -1
  169. package/.server/server/services/index.d.ts +1 -1
  170. package/.server/server/types.d.ts +7 -7
  171. package/.server/server/utils/file-form-service.d.ts +2 -2
  172. package/.server/server/utils/file-form-service.js +1 -1
  173. package/package.json +8 -4
  174. package/src/client/javascripts/application.js +1 -1
  175. package/src/client/javascripts/geospatial-map.js +4 -4
  176. package/src/client/javascripts/location-map.js +2 -2
  177. package/src/client/javascripts/map.js +13 -4
  178. package/src/client/javascripts/shared.js +7 -7
  179. package/src/index.ts +3 -3
  180. package/src/server/common/helpers/logging/logger-options.ts +1 -1
  181. package/src/server/common/helpers/logging/logger.ts +1 -1
  182. package/src/server/common/helpers/logging/request-logger.ts +1 -1
  183. package/src/server/common/helpers/logging/request-tracing.js +1 -1
  184. package/src/server/common/helpers/redis-client.js +2 -2
  185. package/src/server/index.ts +13 -13
  186. package/src/server/plugins/crumb.ts +2 -2
  187. package/src/server/plugins/engine/beta/form-context.ts +9 -9
  188. package/src/server/plugins/engine/components/AutocompleteField.ts +3 -3
  189. package/src/server/plugins/engine/components/CheckboxesField.ts +7 -8
  190. package/src/server/plugins/engine/components/ComponentBase.ts +5 -5
  191. package/src/server/plugins/engine/components/ComponentCollection.ts +9 -9
  192. package/src/server/plugins/engine/components/DatePartsField.ts +8 -8
  193. package/src/server/plugins/engine/components/DeclarationField.ts +3 -3
  194. package/src/server/plugins/engine/components/Details.ts +1 -1
  195. package/src/server/plugins/engine/components/EastingNorthingField.ts +9 -9
  196. package/src/server/plugins/engine/components/EmailAddressField.ts +3 -3
  197. package/src/server/plugins/engine/components/FileUploadField.ts +6 -6
  198. package/src/server/plugins/engine/components/FormComponent.ts +4 -4
  199. package/src/server/plugins/engine/components/GeospatialField.ts +5 -5
  200. package/src/server/plugins/engine/components/HiddenField.ts +4 -4
  201. package/src/server/plugins/engine/components/Html.ts +1 -1
  202. package/src/server/plugins/engine/components/InsetText.ts +1 -1
  203. package/src/server/plugins/engine/components/LatLongField.ts +9 -9
  204. package/src/server/plugins/engine/components/List.ts +2 -2
  205. package/src/server/plugins/engine/components/ListFormComponent.ts +4 -4
  206. package/src/server/plugins/engine/components/LocationFieldBase.ts +5 -5
  207. package/src/server/plugins/engine/components/LocationFieldHelpers.ts +5 -5
  208. package/src/server/plugins/engine/components/Markdown.ts +1 -1
  209. package/src/server/plugins/engine/components/MonthYearField.ts +8 -8
  210. package/src/server/plugins/engine/components/MultilineTextField.ts +4 -4
  211. package/src/server/plugins/engine/components/NationalGridFieldNumberField.ts +2 -2
  212. package/src/server/plugins/engine/components/NumberField.ts +3 -3
  213. package/src/server/plugins/engine/components/OsGridRefField.ts +2 -2
  214. package/src/server/plugins/engine/components/PaymentField.ts +8 -8
  215. package/src/server/plugins/engine/components/RadiosField.ts +1 -1
  216. package/src/server/plugins/engine/components/SelectField.ts +2 -2
  217. package/src/server/plugins/engine/components/SelectionControlField.ts +4 -4
  218. package/src/server/plugins/engine/components/TelephoneNumberField.ts +4 -4
  219. package/src/server/plugins/engine/components/TextField.ts +3 -3
  220. package/src/server/plugins/engine/components/UkAddressField.ts +7 -7
  221. package/src/server/plugins/engine/components/YesNoField.ts +5 -5
  222. package/src/server/plugins/engine/components/helpers/__stubs__/geospatial.ts +1 -1
  223. package/src/server/plugins/engine/components/helpers/components.ts +8 -8
  224. package/src/server/plugins/engine/components/helpers/geospatial.ts +1 -1
  225. package/src/server/plugins/engine/components/index.ts +27 -27
  226. package/src/server/plugins/engine/components/types.ts +1 -1
  227. package/src/server/plugins/engine/configureEnginePlugin.ts +10 -10
  228. package/src/server/plugins/engine/date-helper.ts +1 -1
  229. package/src/server/plugins/engine/helpers.ts +8 -8
  230. package/src/server/plugins/engine/index.ts +8 -8
  231. package/src/server/plugins/engine/models/FormModel.ts +15 -15
  232. package/src/server/plugins/engine/models/SummaryViewModel.ts +10 -10
  233. package/src/server/plugins/engine/models/index.ts +2 -2
  234. package/src/server/plugins/engine/models/types.ts +4 -4
  235. package/src/server/plugins/engine/options.js +3 -3
  236. package/src/server/plugins/engine/outputFormatters/adapter/v1.ts +6 -6
  237. package/src/server/plugins/engine/outputFormatters/human/v1.ts +9 -9
  238. package/src/server/plugins/engine/outputFormatters/index.ts +8 -8
  239. package/src/server/plugins/engine/outputFormatters/machine/v1.ts +7 -7
  240. package/src/server/plugins/engine/outputFormatters/machine/v2.ts +6 -6
  241. package/src/server/plugins/engine/pageControllers/FileUploadPageController.ts +9 -9
  242. package/src/server/plugins/engine/pageControllers/PageController.ts +7 -7
  243. package/src/server/plugins/engine/pageControllers/QuestionPageController.ts +13 -13
  244. package/src/server/plugins/engine/pageControllers/RepeatPageController.ts +6 -6
  245. package/src/server/plugins/engine/pageControllers/StartPageController.ts +3 -3
  246. package/src/server/plugins/engine/pageControllers/StatusPageController.ts +5 -5
  247. package/src/server/plugins/engine/pageControllers/SummaryPageController.ts +12 -12
  248. package/src/server/plugins/engine/pageControllers/TerminalPageController.ts +3 -3
  249. package/src/server/plugins/engine/pageControllers/__stubs__/request.ts +3 -3
  250. package/src/server/plugins/engine/pageControllers/__stubs__/server.ts +2 -2
  251. package/src/server/plugins/engine/pageControllers/errors.ts +1 -1
  252. package/src/server/plugins/engine/pageControllers/helpers/pages.ts +2 -2
  253. package/src/server/plugins/engine/pageControllers/helpers/state.ts +9 -9
  254. package/src/server/plugins/engine/pageControllers/helpers/submission.ts +5 -5
  255. package/src/server/plugins/engine/pageControllers/index.ts +7 -7
  256. package/src/server/plugins/engine/pageControllers/validationOptions.ts +1 -1
  257. package/src/server/plugins/engine/plugin.ts +14 -14
  258. package/src/server/plugins/engine/routes/file-upload.ts +2 -2
  259. package/src/server/plugins/engine/routes/index.ts +10 -10
  260. package/src/server/plugins/engine/routes/payment-helper.js +4 -4
  261. package/src/server/plugins/engine/routes/payment.js +9 -9
  262. package/src/server/plugins/engine/routes/questions.ts +10 -10
  263. package/src/server/plugins/engine/routes/repeaters/item-delete.ts +6 -6
  264. package/src/server/plugins/engine/routes/repeaters/summary.ts +5 -5
  265. package/src/server/plugins/engine/services/formSubmissionService.js +2 -2
  266. package/src/server/plugins/engine/services/index.js +3 -3
  267. package/src/server/plugins/engine/services/localFormsService.js +2 -2
  268. package/src/server/plugins/engine/services/notifyService.ts +9 -9
  269. package/src/server/plugins/engine/services/uploadService.js +3 -3
  270. package/src/server/plugins/engine/types/index.ts +10 -10
  271. package/src/server/plugins/engine/types/schema.ts +2 -2
  272. package/src/server/plugins/engine/types.ts +22 -17
  273. package/src/server/plugins/engine/validationHelpers.ts +3 -3
  274. package/src/server/plugins/engine/vision.ts +3 -3
  275. package/src/server/plugins/map/index.js +2 -2
  276. package/src/server/plugins/map/routes/get-os-token.js +15 -3
  277. package/src/server/plugins/map/routes/index.js +7 -5
  278. package/src/server/plugins/map/routes/vts/esri-aerial.json +23 -0
  279. package/src/server/plugins/map/service.js +7 -4
  280. package/src/server/plugins/map/test/__stubs__/find.js +1 -1
  281. package/src/server/plugins/nunjucks/context.js +5 -5
  282. package/src/server/plugins/nunjucks/environment.js +6 -6
  283. package/src/server/plugins/nunjucks/filters/answer.js +3 -3
  284. package/src/server/plugins/nunjucks/filters/evaluate.js +2 -2
  285. package/src/server/plugins/nunjucks/filters/field.js +1 -1
  286. package/src/server/plugins/nunjucks/filters/href.js +2 -2
  287. package/src/server/plugins/nunjucks/filters/index.js +8 -8
  288. package/src/server/plugins/nunjucks/filters/page.js +1 -1
  289. package/src/server/plugins/nunjucks/index.js +3 -3
  290. package/src/server/plugins/nunjucks/plugin.js +3 -3
  291. package/src/server/plugins/nunjucks/render.js +2 -2
  292. package/src/server/plugins/nunjucks/types.js +1 -1
  293. package/src/server/plugins/payment/helper.js +2 -2
  294. package/src/server/plugins/payment/service.js +4 -4
  295. package/src/server/plugins/postcode-lookup/index.js +2 -2
  296. package/src/server/plugins/postcode-lookup/models/index.js +3 -3
  297. package/src/server/plugins/postcode-lookup/routes/index.js +24 -14
  298. package/src/server/plugins/postcode-lookup/service.js +7 -4
  299. package/src/server/plugins/postcode-lookup/types.js +1 -1
  300. package/src/server/plugins/session.ts +1 -1
  301. package/src/server/routes/index.ts +2 -2
  302. package/src/server/routes/public.ts +1 -1
  303. package/src/server/routes/types.ts +1 -1
  304. package/src/server/schemas/index.ts +2 -2
  305. package/src/server/secure-context.js +1 -1
  306. package/src/server/services/cacheService.ts +13 -18
  307. package/src/server/services/httpService.ts +1 -1
  308. package/src/server/services/index.ts +1 -1
  309. package/src/server/types.ts +7 -7
  310. package/src/server/utils/notify.ts +2 -2
  311. package/src/server/utils/utils.js +1 -1
  312. package/src/typings/hapi/index.d.ts +4 -4
  313. package/src/typings/joi/index.d.ts +1 -1
  314. package/src/server/common/helpers/logging/logger-options.test.ts +0 -50
  315. package/src/server/index.test.ts +0 -644
  316. package/src/server/plugins/engine/beta/form-context.test.ts +0 -373
  317. package/src/server/plugins/engine/components/AutocompleteField.test.ts +0 -362
  318. package/src/server/plugins/engine/components/CheckboxesField.test.ts +0 -486
  319. package/src/server/plugins/engine/components/DatePartsField.test.ts +0 -927
  320. package/src/server/plugins/engine/components/DeclarationField.test.ts +0 -560
  321. package/src/server/plugins/engine/components/Details.test.ts +0 -49
  322. package/src/server/plugins/engine/components/EastingNorthingField.test.ts +0 -727
  323. package/src/server/plugins/engine/components/EmailAddressField.test.ts +0 -445
  324. package/src/server/plugins/engine/components/FileUploadField.test.ts +0 -1079
  325. package/src/server/plugins/engine/components/GeospatialField.test.ts +0 -380
  326. package/src/server/plugins/engine/components/HiddenField.test.ts +0 -188
  327. package/src/server/plugins/engine/components/Html.test.ts +0 -48
  328. package/src/server/plugins/engine/components/InsetText.test.ts +0 -48
  329. package/src/server/plugins/engine/components/LatLongField.test.ts +0 -898
  330. package/src/server/plugins/engine/components/List.test.ts +0 -79
  331. package/src/server/plugins/engine/components/LocationFieldBase.test.ts +0 -253
  332. package/src/server/plugins/engine/components/LocationFieldHelpers.test.ts +0 -743
  333. package/src/server/plugins/engine/components/Markdown.test.ts +0 -48
  334. package/src/server/plugins/engine/components/MonthYearField.test.ts +0 -617
  335. package/src/server/plugins/engine/components/MultilineTextField.test.ts +0 -647
  336. package/src/server/plugins/engine/components/NationalGridFieldNumberField.test.ts +0 -449
  337. package/src/server/plugins/engine/components/NumberField.test.ts +0 -723
  338. package/src/server/plugins/engine/components/OsGridRefField.test.ts +0 -460
  339. package/src/server/plugins/engine/components/PaymentField.test.ts +0 -745
  340. package/src/server/plugins/engine/components/RadiosField.test.ts +0 -297
  341. package/src/server/plugins/engine/components/SelectField.test.ts +0 -289
  342. package/src/server/plugins/engine/components/TelephoneNumberField.test.ts +0 -384
  343. package/src/server/plugins/engine/components/TextField.test.ts +0 -521
  344. package/src/server/plugins/engine/components/UkAddressField.test.ts +0 -806
  345. package/src/server/plugins/engine/components/YesNoField.test.ts +0 -256
  346. package/src/server/plugins/engine/components/helpers/components.test.ts +0 -399
  347. package/src/server/plugins/engine/components/helpers/geospatial.test.js +0 -55
  348. package/src/server/plugins/engine/components/helpers/helpers.test.ts +0 -219
  349. package/src/server/plugins/engine/date-helper.test.ts +0 -47
  350. package/src/server/plugins/engine/helpers.test.ts +0 -868
  351. package/src/server/plugins/engine/models/FormModel.test.ts +0 -725
  352. package/src/server/plugins/engine/models/SummaryViewModel.test.ts +0 -472
  353. package/src/server/plugins/engine/options.test.js +0 -63
  354. package/src/server/plugins/engine/outputFormatters/adapter/v1.location.test.ts +0 -356
  355. package/src/server/plugins/engine/outputFormatters/adapter/v1.test.ts +0 -871
  356. package/src/server/plugins/engine/outputFormatters/human/v1.payment.test.ts +0 -147
  357. package/src/server/plugins/engine/outputFormatters/human/v1.test.ts +0 -145
  358. package/src/server/plugins/engine/outputFormatters/index.test.ts +0 -17
  359. package/src/server/plugins/engine/outputFormatters/machine/v1.test.ts +0 -268
  360. package/src/server/plugins/engine/outputFormatters/machine/v2.location.test.ts +0 -341
  361. package/src/server/plugins/engine/outputFormatters/machine/v2.payment.test.ts +0 -115
  362. package/src/server/plugins/engine/outputFormatters/machine/v2.test.ts +0 -311
  363. package/src/server/plugins/engine/pageControllers/FileUploadPageController.test.ts +0 -1372
  364. package/src/server/plugins/engine/pageControllers/PageController.test.ts +0 -246
  365. package/src/server/plugins/engine/pageControllers/QuestionPageController.test.ts +0 -1686
  366. package/src/server/plugins/engine/pageControllers/RepeatPageController.test.ts +0 -279
  367. package/src/server/plugins/engine/pageControllers/StartPageController.test.ts +0 -32
  368. package/src/server/plugins/engine/pageControllers/StatusPageController.test.ts +0 -32
  369. package/src/server/plugins/engine/pageControllers/SummaryPageController.test.ts +0 -89
  370. package/src/server/plugins/engine/pageControllers/TerminalController.test.ts +0 -37
  371. package/src/server/plugins/engine/pageControllers/errors.test.ts +0 -78
  372. package/src/server/plugins/engine/pageControllers/helpers/helpers.test.ts +0 -182
  373. package/src/server/plugins/engine/pageControllers/helpers/state.test.ts +0 -359
  374. package/src/server/plugins/engine/pageControllers/helpers/submission.test.ts +0 -373
  375. package/src/server/plugins/engine/referenceNumbers.test.ts +0 -74
  376. package/src/server/plugins/engine/routes/index.test.ts +0 -332
  377. package/src/server/plugins/engine/routes/payment-helper.test.js +0 -136
  378. package/src/server/plugins/engine/routes/payment.test.js +0 -180
  379. package/src/server/plugins/engine/routes/questions.test.ts +0 -502
  380. package/src/server/plugins/engine/routes/repeaters/item-delete.test.ts +0 -83
  381. package/src/server/plugins/engine/routes/repeaters/summary.test.ts +0 -75
  382. package/src/server/plugins/engine/services/formsService.test.js +0 -26
  383. package/src/server/plugins/engine/services/notifyService.test.ts +0 -310
  384. package/src/server/plugins/engine/types/schema.test.ts +0 -234
  385. package/src/server/plugins/engine/views/components/service-banner/template.test.js +0 -43
  386. package/src/server/plugins/engine/views/components/tag-env/template.test.js +0 -28
  387. package/src/server/plugins/engine/views/partials/preview-banner.test.js +0 -122
  388. package/src/server/plugins/map/routes/get-os-token.test.js +0 -55
  389. package/src/server/plugins/map/service.test.js +0 -144
  390. package/src/server/plugins/nunjucks/context.test.js +0 -109
  391. package/src/server/plugins/nunjucks/enviroment.test.js +0 -207
  392. package/src/server/plugins/nunjucks/filters/answer.test.js +0 -92
  393. package/src/server/plugins/nunjucks/filters/field.test.js +0 -75
  394. package/src/server/plugins/nunjucks/filters/href.test.js +0 -80
  395. package/src/server/plugins/nunjucks/filters/merge.test.js +0 -15
  396. package/src/server/plugins/nunjucks/filters/page.test.js +0 -65
  397. package/src/server/plugins/payment/helper.test.js +0 -29
  398. package/src/server/plugins/payment/service.test.js +0 -218
  399. package/src/server/plugins/postcode-lookup/service.test.js +0 -177
  400. package/src/server/postcode-lookup.test.ts +0 -64
  401. package/src/server/routes/dummy-api.test.ts +0 -97
  402. package/src/server/services/cacheService.test.ts +0 -308
  403. package/src/server/services/httpService.test.js +0 -491
  404. package/src/server/utils/file-form-service.test.js +0 -127
  405. package/src/server/utils/notify.test.ts +0 -37
  406. package/src/server/utils/secure-context/get-trust-store-certs.test.js +0 -19
  407. package/src/server/utils/utils.test.js +0 -69
@@ -1,502 +0,0 @@
1
- import Boom from '@hapi/boom'
2
- import { type ResponseObject } from '@hapi/hapi'
3
- import nock from 'nock'
4
-
5
- import { type FormModel } from '~/src/server/plugins/engine/models/FormModel.js'
6
- import { type PageControllerClass } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js'
7
- import { redirectOrMakeHandler } from '~/src/server/plugins/engine/routes/index.js'
8
- import {
9
- makeGetHandler,
10
- makePostHandler
11
- } from '~/src/server/plugins/engine/routes/questions.js'
12
- import {
13
- type AnyFormRequest,
14
- type FormContext
15
- } from '~/src/server/plugins/engine/types.js'
16
- import {
17
- type FormRequest,
18
- type FormRequestPayload,
19
- type FormResponseToolkit
20
- } from '~/src/server/routes/types.js'
21
- jest.mock('~/src/server/plugins/engine/models/SummaryViewModel', () => ({
22
- SummaryViewModel: class {
23
- summary = 'mocked summary'
24
- }
25
- }))
26
-
27
- jest.mock(
28
- '~/src/server/plugins/engine/pageControllers/SummaryPageController',
29
- () => ({
30
- getFormSubmissionData: jest.fn().mockReturnValue([])
31
- })
32
- )
33
-
34
- jest.mock('~/src/server/plugins/engine/outputFormatters/machine/v1', () => ({
35
- format: jest.fn().mockReturnValue('mocked format')
36
- }))
37
-
38
- jest.mock('~/src/server/plugins/engine/routes/index')
39
-
40
- describe('makeGetHandler', () => {
41
- const hMock: FormResponseToolkit = {
42
- redirect: jest.fn().mockReturnValue({
43
- takeover: jest.fn().mockReturnValue({
44
- statusCode: 302,
45
- headers: { location: '/redirect-url' }
46
- })
47
- }),
48
- view: jest.fn(),
49
- continue: Symbol('continue')
50
- }
51
-
52
- beforeEach(() => {
53
- nock('http://test').persist().post('/load').reply(200, {
54
- wasGetCalled: true
55
- })
56
- })
57
-
58
- afterEach(() => {
59
- jest.mocked(redirectOrMakeHandler).mockRestore()
60
- nock.cleanAll()
61
- })
62
-
63
- it('calls the callback when events.onLoad.type is http', async () => {
64
- let data = {}
65
-
66
- const modelMock = {
67
- basePath: 'some-base-path',
68
- def: { name: 'Hello world' }
69
- } as FormModel
70
-
71
- const pageMock = createMockPageController(
72
- modelMock,
73
- (
74
- _request: FormRequest,
75
- context: FormContext,
76
- _h: FormResponseToolkit
77
- ) => {
78
- data = context.data
79
- return Promise.resolve({} as unknown as ResponseObject)
80
- }
81
- )
82
-
83
- const contextMock = { data: {}, model: {} } as unknown as FormContext
84
-
85
- const requestMock = {
86
- params: { path: 'some-path' },
87
- app: { model: modelMock }
88
- } as FormRequest
89
-
90
- jest
91
- .mocked(redirectOrMakeHandler)
92
- .mockImplementation(
93
- (_req: AnyFormRequest, _h: FormResponseToolkit, _onRequest, fn) =>
94
- Promise.resolve(fn(pageMock, contextMock))
95
- )
96
-
97
- await makeGetHandler()(requestMock, hMock)
98
-
99
- expect(data).toMatchObject({
100
- wasGetCalled: true
101
- })
102
- })
103
-
104
- it('does not call the callback when the events.onLoad.type is not http', async () => {
105
- let data = {}
106
-
107
- const modelMock = {
108
- basePath: 'some-base-path',
109
- def: { name: 'Hello world' }
110
- } as FormModel
111
-
112
- const pageMock = createMockPageController(
113
- modelMock,
114
- (
115
- _request: FormRequest,
116
- context: FormContext,
117
- _h: FormResponseToolkit
118
- ) => {
119
- data = context.data
120
- return Promise.resolve({} as unknown as ResponseObject)
121
- }
122
- )
123
-
124
- pageMock.events = {}
125
-
126
- const contextMock = { data: {}, model: {} } as unknown as FormContext
127
-
128
- const requestMock = {
129
- params: { path: 'some-path' },
130
- app: { model: modelMock }
131
- } as FormRequest
132
-
133
- jest
134
- .mocked(redirectOrMakeHandler)
135
- .mockImplementation(
136
- (_req: AnyFormRequest, _h: FormResponseToolkit, _onRequest, fn) =>
137
- Promise.resolve(fn(pageMock, contextMock))
138
- )
139
-
140
- await makeGetHandler()(requestMock, hMock)
141
-
142
- expect(data).toMatchObject({})
143
- })
144
-
145
- it('throws when model is missing', async () => {
146
- let error
147
-
148
- const modelMock = {
149
- basePath: 'some-base-path',
150
- def: { name: 'Hello world' }
151
- } as FormModel
152
-
153
- const pageMock = createMockPageController(
154
- modelMock,
155
- (
156
- _request: FormRequest,
157
- _context: FormContext,
158
- _h: FormResponseToolkit
159
- ) => {
160
- return Promise.resolve({} as unknown as ResponseObject)
161
- }
162
- )
163
-
164
- const contextMock = { data: {}, model: {} } as unknown as FormContext
165
-
166
- const requestMock = {
167
- params: { path: 'some-path' },
168
- app: {}
169
- } as FormRequest
170
-
171
- jest
172
- .mocked(redirectOrMakeHandler)
173
- .mockImplementation(
174
- async (
175
- _req: AnyFormRequest,
176
- _h: FormResponseToolkit,
177
- _onRequest,
178
- fn
179
- ) => {
180
- try {
181
- await fn(pageMock, contextMock)
182
- } catch (err) {
183
- error = err
184
- }
185
-
186
- return Promise.resolve({} as unknown as ResponseObject)
187
- }
188
- )
189
-
190
- await makeGetHandler()(requestMock, hMock)
191
-
192
- expect(error).toEqual(Boom.notFound('No model found for /some-path'))
193
- })
194
-
195
- it('should pass onRequest callback to redirectOrMakeHandler', async () => {
196
- const onRequestCallback = jest.fn().mockResolvedValue(undefined)
197
- const modelMock = {
198
- basePath: 'some-base-path',
199
- def: { name: 'Hello world' }
200
- } as FormModel
201
-
202
- const pageMock = createMockPageController(
203
- modelMock,
204
- (
205
- _request: FormRequest,
206
- _context: FormContext,
207
- _h: FormResponseToolkit
208
- ) => {
209
- return Promise.resolve({} as unknown as ResponseObject)
210
- }
211
- )
212
-
213
- const contextMock = { data: {}, model: {} } as unknown as FormContext
214
-
215
- const requestMock = {
216
- params: { path: 'some-path' },
217
- app: { model: modelMock }
218
- } as FormRequest
219
-
220
- jest
221
- .mocked(redirectOrMakeHandler)
222
- .mockImplementation(
223
- (_req: AnyFormRequest, _h: FormResponseToolkit, onRequest, fn) => {
224
- expect(onRequest).toBe(onRequestCallback)
225
- return Promise.resolve(fn(pageMock, contextMock))
226
- }
227
- )
228
-
229
- await makeGetHandler(undefined, onRequestCallback)(requestMock, hMock)
230
-
231
- expect(redirectOrMakeHandler).toHaveBeenCalledWith(
232
- requestMock,
233
- hMock,
234
- onRequestCallback,
235
- expect.any(Function)
236
- )
237
- })
238
- })
239
-
240
- describe('makePostHandler', () => {
241
- const hMock: FormResponseToolkit = {
242
- redirect: jest.fn(),
243
- view: jest.fn(),
244
- continue: Symbol('continue')
245
- }
246
-
247
- beforeEach(() => {
248
- nock('http://test').post('/save').reply(200, {
249
- wasPostCalled: true
250
- })
251
- })
252
-
253
- afterEach(() => {
254
- jest.mocked(redirectOrMakeHandler).mockRestore()
255
- nock.cleanAll()
256
- })
257
-
258
- it('calls the callback when events.onSave.type is http and the page controller was successful', async () => {
259
- const mockPostResponse: ResponseObject = {
260
- statusCode: 200
261
- } as ResponseObject
262
-
263
- const modelMock = {
264
- basePath: 'some-base-path',
265
- def: { name: 'Hello world' }
266
- } as FormModel
267
-
268
- const pageMock = createMockPageController(
269
- modelMock,
270
- (
271
- _request: FormRequest,
272
- _context: FormContext,
273
- _h: FormResponseToolkit
274
- ) => {
275
- // do return a valid ResponseObject wrapped in Promise.resolve
276
- return mockPostResponse
277
- }
278
- )
279
-
280
- const contextMock = { data: {}, model: {} } as unknown as FormContext
281
-
282
- const requestMock = {
283
- params: { path: 'some-path' },
284
- app: { model: modelMock },
285
- payload: { some: 'payload' }
286
- } as unknown as FormRequestPayload
287
-
288
- jest
289
- .mocked(redirectOrMakeHandler)
290
- .mockImplementation(
291
- (_req: AnyFormRequest, _h: FormResponseToolkit, _onRequest, fn) =>
292
- Promise.resolve(fn(pageMock, contextMock))
293
- )
294
-
295
- const response = await makePostHandler()(requestMock, hMock)
296
-
297
- expect(nock.pendingMocks()).toBeEmpty()
298
- expect(response).toBe(mockPostResponse)
299
- })
300
-
301
- it('does not call the callback when the events.onSave.type is not http', async () => {
302
- const modelMock = {
303
- basePath: 'some-base-path',
304
- def: { name: 'Hello world' }
305
- } as FormModel
306
-
307
- const pageMock = createMockPageController(
308
- modelMock,
309
- (
310
- _request: FormRequest,
311
- _context: FormContext,
312
- _h: FormResponseToolkit
313
- ) => {
314
- return Promise.resolve({} as unknown as ResponseObject)
315
- }
316
- )
317
-
318
- pageMock.events = {}
319
-
320
- const contextMock = { data: {}, model: {} } as unknown as FormContext
321
-
322
- const requestMock = {
323
- params: { path: 'some-path' },
324
- app: { model: modelMock },
325
- payload: { some: 'payload' }
326
- } as unknown as FormRequestPayload
327
-
328
- jest
329
- .mocked(redirectOrMakeHandler)
330
- .mockImplementation(
331
- (_req: AnyFormRequest, _h: FormResponseToolkit, _onRequest, fn) =>
332
- Promise.resolve(fn(pageMock, contextMock))
333
- )
334
-
335
- await makePostHandler()(requestMock, hMock)
336
-
337
- expect(nock.pendingMocks()).not.toBeEmpty()
338
- })
339
-
340
- it('does not call the callback when events.onSave.type is http and the page controller was unsuccessful', async () => {
341
- const mockPostResponse: ResponseObject = {
342
- statusCode: 500
343
- } as ResponseObject
344
-
345
- const modelMock = {
346
- basePath: 'some-base-path',
347
- def: { name: 'Hello world' }
348
- } as FormModel
349
-
350
- const pageMock = createMockPageController(
351
- modelMock,
352
- (
353
- _request: FormRequest,
354
- _context: FormContext,
355
- _h: FormResponseToolkit
356
- ) => {
357
- // do return a valid ResponseObject wrapped in Promise.resolve
358
- return mockPostResponse
359
- }
360
- )
361
-
362
- const contextMock = { data: {}, model: {} } as unknown as FormContext
363
-
364
- const requestMock = {
365
- params: { path: 'some-path' },
366
- app: { model: modelMock },
367
- payload: { some: 'payload' }
368
- } as unknown as FormRequestPayload
369
-
370
- jest
371
- .mocked(redirectOrMakeHandler)
372
- .mockImplementation(
373
- (_req: AnyFormRequest, _h: FormResponseToolkit, _onRequest, fn) =>
374
- Promise.resolve(fn(pageMock, contextMock))
375
- )
376
-
377
- await makePostHandler()(requestMock, hMock)
378
-
379
- expect(nock.pendingMocks()).not.toBeEmpty()
380
- })
381
-
382
- it('throws when model is missing', async () => {
383
- let error
384
-
385
- const modelMock = {
386
- basePath: 'some-base-path',
387
- def: { name: 'Hello world' }
388
- } as FormModel
389
-
390
- const pageMock = createMockPageController(
391
- modelMock,
392
- (
393
- _request: FormRequest,
394
- _context: FormContext,
395
- _h: FormResponseToolkit
396
- ) => {
397
- return Promise.resolve({} as unknown as ResponseObject)
398
- }
399
- )
400
-
401
- const contextMock = { data: {}, model: {} } as unknown as FormContext
402
-
403
- const requestMock = {
404
- params: { path: 'some-path' },
405
- app: {},
406
- payload: { some: 'payload' }
407
- } as unknown as FormRequestPayload
408
-
409
- jest
410
- .mocked(redirectOrMakeHandler)
411
- .mockImplementation(
412
- async (
413
- _req: AnyFormRequest,
414
- _h: FormResponseToolkit,
415
- _onRequest,
416
- fn
417
- ) => {
418
- try {
419
- await fn(pageMock, contextMock)
420
- } catch (err) {
421
- error = err
422
- }
423
-
424
- return Promise.resolve({} as unknown as ResponseObject)
425
- }
426
- )
427
-
428
- await makePostHandler()(requestMock, hMock)
429
-
430
- expect(error).toEqual(Boom.notFound('No model found for /some-path'))
431
- })
432
-
433
- it('should pass onRequest callback to redirectOrMakeHandler', async () => {
434
- const onRequestCallback = jest.fn().mockResolvedValue(undefined)
435
- const modelMock = {
436
- basePath: 'some-base-path',
437
- def: { name: 'Hello world' }
438
- } as FormModel
439
-
440
- const pageMock = createMockPageController(
441
- modelMock,
442
- (
443
- _request: FormRequest,
444
- _context: FormContext,
445
- _h: FormResponseToolkit
446
- ) => {
447
- return Promise.resolve({} as unknown as ResponseObject)
448
- }
449
- )
450
-
451
- const contextMock = { data: {}, model: {} } as unknown as FormContext
452
-
453
- const requestMock = {
454
- params: { path: 'some-path' },
455
- app: { model: modelMock },
456
- payload: { some: 'payload' }
457
- } as unknown as FormRequestPayload
458
-
459
- jest
460
- .mocked(redirectOrMakeHandler)
461
- .mockImplementation(
462
- (_req: AnyFormRequest, _h: FormResponseToolkit, onRequest, fn) => {
463
- expect(onRequest).toBe(onRequestCallback)
464
- return Promise.resolve(fn(pageMock, contextMock))
465
- }
466
- )
467
-
468
- await makePostHandler(undefined, onRequestCallback)(requestMock, hMock)
469
-
470
- expect(redirectOrMakeHandler).toHaveBeenCalledWith(
471
- requestMock,
472
- hMock,
473
- onRequestCallback,
474
- expect.any(Function)
475
- )
476
- })
477
- })
478
-
479
- function createMockPageController(
480
- model: FormModel,
481
- routeHandler: (
482
- request: FormRequest,
483
- context: FormContext,
484
- h: FormResponseToolkit
485
- ) => ResponseObject | Promise<ResponseObject>
486
- ): PageControllerClass {
487
- return {
488
- model,
489
- events: {
490
- onLoad: {
491
- type: 'http',
492
- options: { method: 'POST', url: 'http://test/load' }
493
- },
494
- onSave: {
495
- type: 'http',
496
- options: { method: 'POST', url: 'http://test/save' }
497
- }
498
- },
499
- makeGetRouteHandler: () => routeHandler,
500
- makePostRouteHandler: () => routeHandler
501
- } as unknown as PageControllerClass
502
- }
@@ -1,83 +0,0 @@
1
- import { getRoutes } from '~/src/server/plugins/engine/routes/repeaters/item-delete.js'
2
- import { type OnRequestCallback } from '~/src/server/plugins/engine/types.js'
3
-
4
- describe('repeater item-delete routes', () => {
5
- beforeEach(() => {
6
- jest.clearAllMocks()
7
- })
8
-
9
- describe('route configuration', () => {
10
- it('should return all expected routes', () => {
11
- const routes = getRoutes({}, {}, undefined)
12
-
13
- expect(routes).toHaveLength(4)
14
-
15
- const expectedPaths = [
16
- '/{slug}/{path}/{itemId}/confirm-delete',
17
- '/preview/{state}/{slug}/{path}/{itemId}/confirm-delete'
18
- ]
19
-
20
- expectedPaths.forEach((path) => {
21
- const getRoute = routes.find(
22
- (route) => route.method === 'get' && route.path === path
23
- )
24
- const postRoute = routes.find(
25
- (route) => route.method === 'post' && route.path === path
26
- )
27
-
28
- expect(getRoute).toBeDefined()
29
- expect(postRoute).toBeDefined()
30
- })
31
- })
32
-
33
- it('should pass onRequest callback to handlers', () => {
34
- const onRequestCallback: OnRequestCallback = jest
35
- .fn()
36
- .mockResolvedValue(undefined)
37
- const routes = getRoutes({}, {}, onRequestCallback)
38
-
39
- // Test that the handlers are created with the onRequest callback
40
- const getRoute = routes.find(
41
- (route) =>
42
- route.method === 'get' &&
43
- route.path === '/{slug}/{path}/{itemId}/confirm-delete'
44
- )
45
- const postRoute = routes.find(
46
- (route) =>
47
- route.method === 'post' &&
48
- route.path === '/{slug}/{path}/{itemId}/confirm-delete'
49
- )
50
-
51
- expect(getRoute?.handler).toBeDefined()
52
- expect(postRoute?.handler).toBeDefined()
53
- })
54
- })
55
-
56
- describe('handler functionality', () => {
57
- it('should create handlers that accept onRequest callback', () => {
58
- const onRequestCallback: OnRequestCallback = jest
59
- .fn()
60
- .mockResolvedValue(undefined)
61
- const routes = getRoutes({}, {}, onRequestCallback)
62
-
63
- // Test that the handlers are created with the onRequest callback
64
- const getRoute = routes.find(
65
- (route) =>
66
- route.method === 'get' &&
67
- route.path === '/{slug}/{path}/{itemId}/confirm-delete'
68
- )
69
- const postRoute = routes.find(
70
- (route) =>
71
- route.method === 'post' &&
72
- route.path === '/{slug}/{path}/{itemId}/confirm-delete'
73
- )
74
-
75
- expect(getRoute?.handler).toBeDefined()
76
- expect(postRoute?.handler).toBeDefined()
77
-
78
- // Test that handlers are functions
79
- expect(typeof getRoute?.handler).toBe('function')
80
- expect(typeof postRoute?.handler).toBe('function')
81
- })
82
- })
83
- })
@@ -1,75 +0,0 @@
1
- import { getRoutes } from '~/src/server/plugins/engine/routes/repeaters/summary.js'
2
- import { type OnRequestCallback } from '~/src/server/plugins/engine/types.js'
3
-
4
- describe('repeater summary routes', () => {
5
- describe('route configuration', () => {
6
- it('should return all expected routes', () => {
7
- const routes = getRoutes({}, {}, undefined)
8
-
9
- expect(routes).toHaveLength(4)
10
-
11
- const expectedPaths = [
12
- '/{slug}/{path}/summary',
13
- '/preview/{state}/{slug}/{path}/summary'
14
- ]
15
-
16
- expectedPaths.forEach((path) => {
17
- const getRoute = routes.find(
18
- (route) => route.method === 'get' && route.path === path
19
- )
20
- const postRoute = routes.find(
21
- (route) => route.method === 'post' && route.path === path
22
- )
23
-
24
- expect(getRoute).toBeDefined()
25
- expect(postRoute).toBeDefined()
26
- })
27
- })
28
-
29
- it('should pass onRequest callback to handlers', () => {
30
- const onRequestCallback: OnRequestCallback = jest
31
- .fn()
32
- .mockResolvedValue(undefined)
33
- const routes = getRoutes({}, {}, onRequestCallback)
34
-
35
- // Test that the handlers are created with the onRequest callback
36
- const getRoute = routes.find(
37
- (route) =>
38
- route.method === 'get' && route.path === '/{slug}/{path}/summary'
39
- )
40
- const postRoute = routes.find(
41
- (route) =>
42
- route.method === 'post' && route.path === '/{slug}/{path}/summary'
43
- )
44
-
45
- expect(getRoute?.handler).toBeDefined()
46
- expect(postRoute?.handler).toBeDefined()
47
- })
48
- })
49
-
50
- describe('handler functionality', () => {
51
- it('should create handlers that accept onRequest callback', () => {
52
- const onRequestCallback: OnRequestCallback = jest
53
- .fn()
54
- .mockResolvedValue(undefined)
55
- const routes = getRoutes({}, {}, onRequestCallback)
56
-
57
- // Test that the handlers are created with the onRequest callback
58
- const getRoute = routes.find(
59
- (route) =>
60
- route.method === 'get' && route.path === '/{slug}/{path}/summary'
61
- )
62
- const postRoute = routes.find(
63
- (route) =>
64
- route.method === 'post' && route.path === '/{slug}/{path}/summary'
65
- )
66
-
67
- expect(getRoute?.handler).toBeDefined()
68
- expect(postRoute?.handler).toBeDefined()
69
-
70
- // Test that handlers are functions
71
- expect(typeof getRoute?.handler).toBe('function')
72
- expect(typeof postRoute?.handler).toBe('function')
73
- })
74
- })
75
- })
@@ -1,26 +0,0 @@
1
- import { FormStatus } from '@defra/forms-model'
2
-
3
- import {
4
- getFormDefinition,
5
- getFormMetadata,
6
- getFormMetadataById,
7
- getFormSecret
8
- } from '~/src/server/plugins/engine/services/formsService.js'
9
-
10
- describe('formsService', () => {
11
- it('getFormMetadata should throw error', () => {
12
- expect(() => getFormMetadata('slug')).toThrow()
13
- })
14
-
15
- it('getFormMetadataById should throw error', () => {
16
- expect(() => getFormMetadataById('id')).toThrow()
17
- })
18
-
19
- it('getFormDefinition should throw error', () => {
20
- expect(() => getFormDefinition('id', FormStatus.Draft)).toThrow()
21
- })
22
-
23
- it('getFormSecret should throw error', () => {
24
- expect(() => getFormSecret('id', 'my-secret-name')).toThrow()
25
- })
26
- })