@defra/forms-engine-plugin 4.7.2-alpha → 4.7.3

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 (402) hide show
  1. package/.server/client/javascripts/geospatial-map.d.ts +6 -6
  2. package/.server/client/javascripts/geospatial-map.js +3 -3
  3. package/.server/client/javascripts/location-map.d.ts +1 -1
  4. package/.server/client/javascripts/location-map.js +1 -1
  5. package/.server/client/javascripts/map.d.ts +1 -1
  6. package/.server/client/javascripts/map.js +1 -1
  7. package/.server/client/javascripts/shared.d.ts +7 -7
  8. package/.server/server/index.d.ts +1 -1
  9. package/.server/server/plugins/crumb.d.ts +1 -1
  10. package/.server/server/plugins/engine/beta/form-context.d.ts +6 -6
  11. package/.server/server/plugins/engine/components/AutocompleteField.d.ts +4 -4
  12. package/.server/server/plugins/engine/components/CheckboxesField.d.ts +2 -2
  13. package/.server/server/plugins/engine/components/CheckboxesField.js +2 -2
  14. package/.server/server/plugins/engine/components/CheckboxesField.js.map +1 -1
  15. package/.server/server/plugins/engine/components/ComponentBase.d.ts +5 -5
  16. package/.server/server/plugins/engine/components/ComponentCollection.d.ts +8 -8
  17. package/.server/server/plugins/engine/components/DatePartsField.d.ts +11 -11
  18. package/.server/server/plugins/engine/components/DeclarationField.d.ts +3 -3
  19. package/.server/server/plugins/engine/components/Details.d.ts +1 -1
  20. package/.server/server/plugins/engine/components/EastingNorthingField.d.ts +22 -22
  21. package/.server/server/plugins/engine/components/EmailAddressField.d.ts +4 -4
  22. package/.server/server/plugins/engine/components/FileUploadField.d.ts +3 -3
  23. package/.server/server/plugins/engine/components/FormComponent.d.ts +10 -10
  24. package/.server/server/plugins/engine/components/GeospatialField.d.ts +6 -6
  25. package/.server/server/plugins/engine/components/HiddenField.d.ts +2 -2
  26. package/.server/server/plugins/engine/components/Html.d.ts +1 -1
  27. package/.server/server/plugins/engine/components/InsetText.d.ts +1 -1
  28. package/.server/server/plugins/engine/components/LatLongField.d.ts +22 -22
  29. package/.server/server/plugins/engine/components/List.d.ts +8 -8
  30. package/.server/server/plugins/engine/components/ListFormComponent.d.ts +10 -10
  31. package/.server/server/plugins/engine/components/LocationFieldBase.d.ts +6 -6
  32. package/.server/server/plugins/engine/components/LocationFieldHelpers.d.ts +14 -14
  33. package/.server/server/plugins/engine/components/Markdown.d.ts +1 -1
  34. package/.server/server/plugins/engine/components/MonthYearField.d.ts +11 -11
  35. package/.server/server/plugins/engine/components/MultilineTextField.d.ts +5 -5
  36. package/.server/server/plugins/engine/components/NationalGridFieldNumberField.d.ts +1 -1
  37. package/.server/server/plugins/engine/components/NumberField.d.ts +3 -3
  38. package/.server/server/plugins/engine/components/OsGridRefField.d.ts +1 -1
  39. package/.server/server/plugins/engine/components/PaymentField.d.ts +12 -12
  40. package/.server/server/plugins/engine/components/RadiosField.d.ts +1 -1
  41. package/.server/server/plugins/engine/components/SelectField.d.ts +4 -4
  42. package/.server/server/plugins/engine/components/SelectionControlField.d.ts +10 -10
  43. package/.server/server/plugins/engine/components/TelephoneNumberField.d.ts +4 -4
  44. package/.server/server/plugins/engine/components/TextField.d.ts +2 -2
  45. package/.server/server/plugins/engine/components/UkAddressField.d.ts +11 -11
  46. package/.server/server/plugins/engine/components/YesNoField.d.ts +2 -2
  47. package/.server/server/plugins/engine/components/helpers/__stubs__/geospatial.d.ts +1 -1
  48. package/.server/server/plugins/engine/components/helpers/components.d.ts +5 -5
  49. package/.server/server/plugins/engine/components/helpers/geospatial.d.ts +1 -1
  50. package/.server/server/plugins/engine/components/index.d.ts +27 -27
  51. package/.server/server/plugins/engine/components/types.d.ts +1 -1
  52. package/.server/server/plugins/engine/configureEnginePlugin.d.ts +4 -4
  53. package/.server/server/plugins/engine/date-helper.d.ts +1 -1
  54. package/.server/server/plugins/engine/helpers.d.ts +8 -8
  55. package/.server/server/plugins/engine/index.d.ts +5 -5
  56. package/.server/server/plugins/engine/models/FormModel.d.ts +6 -6
  57. package/.server/server/plugins/engine/models/SummaryViewModel.d.ts +6 -6
  58. package/.server/server/plugins/engine/models/index.d.ts +2 -2
  59. package/.server/server/plugins/engine/models/types.d.ts +4 -4
  60. package/.server/server/plugins/engine/options.d.ts +1 -1
  61. package/.server/server/plugins/engine/options.js +1 -1
  62. package/.server/server/plugins/engine/options.test.js +1 -1
  63. package/.server/server/plugins/engine/outputFormatters/adapter/v1.d.ts +4 -4
  64. package/.server/server/plugins/engine/outputFormatters/human/v1.d.ts +4 -4
  65. package/.server/server/plugins/engine/outputFormatters/index.d.ts +5 -5
  66. package/.server/server/plugins/engine/outputFormatters/machine/v1.d.ts +4 -4
  67. package/.server/server/plugins/engine/outputFormatters/machine/v2.d.ts +4 -4
  68. package/.server/server/plugins/engine/pageControllers/FileUploadPageController.d.ts +8 -8
  69. package/.server/server/plugins/engine/pageControllers/PageController.d.ts +6 -6
  70. package/.server/server/plugins/engine/pageControllers/QuestionPageController.d.ts +8 -8
  71. package/.server/server/plugins/engine/pageControllers/RepeatPageController.d.ts +5 -5
  72. package/.server/server/plugins/engine/pageControllers/StartPageController.d.ts +4 -4
  73. package/.server/server/plugins/engine/pageControllers/StatusPageController.d.ts +4 -4
  74. package/.server/server/plugins/engine/pageControllers/SummaryPageController.d.ts +5 -5
  75. package/.server/server/plugins/engine/pageControllers/TerminalPageController.d.ts +3 -3
  76. package/.server/server/plugins/engine/pageControllers/__stubs__/request.d.ts +2 -2
  77. package/.server/server/plugins/engine/pageControllers/errors.d.ts +1 -1
  78. package/.server/server/plugins/engine/pageControllers/helpers/pages.d.ts +2 -2
  79. package/.server/server/plugins/engine/pageControllers/helpers/state.d.ts +5 -5
  80. package/.server/server/plugins/engine/pageControllers/helpers/state.js +1 -1
  81. package/.server/server/plugins/engine/pageControllers/helpers/state.js.map +1 -1
  82. package/.server/server/plugins/engine/pageControllers/helpers/submission.d.ts +1 -1
  83. package/.server/server/plugins/engine/pageControllers/index.d.ts +7 -7
  84. package/.server/server/plugins/engine/plugin.d.ts +1 -1
  85. package/.server/server/plugins/engine/routes/file-upload.d.ts +1 -1
  86. package/.server/server/plugins/engine/routes/index.d.ts +3 -3
  87. package/.server/server/plugins/engine/routes/payment-helper.d.ts +3 -3
  88. package/.server/server/plugins/engine/routes/payment-helper.js +2 -2
  89. package/.server/server/plugins/engine/routes/payment.js +5 -5
  90. package/.server/server/plugins/engine/routes/payment.test.js +1 -1
  91. package/.server/server/plugins/engine/routes/questions.d.ts +2 -2
  92. package/.server/server/plugins/engine/routes/repeaters/item-delete.d.ts +2 -2
  93. package/.server/server/plugins/engine/routes/repeaters/summary.d.ts +2 -2
  94. package/.server/server/plugins/engine/services/index.d.ts +3 -3
  95. package/.server/server/plugins/engine/services/notifyService.d.ts +4 -4
  96. package/.server/server/plugins/engine/services/uploadService.d.ts +2 -2
  97. package/.server/server/plugins/engine/services/uploadService.js +1 -1
  98. package/.server/server/plugins/engine/types/index.d.ts +10 -10
  99. package/.server/server/plugins/engine/types/schema.d.ts +1 -1
  100. package/.server/server/plugins/engine/types.d.ts +25 -16
  101. package/.server/server/plugins/engine/types.js.map +1 -1
  102. package/.server/server/plugins/engine/validationHelpers.d.ts +2 -2
  103. package/.server/server/plugins/engine/vision.d.ts +1 -1
  104. package/.server/server/plugins/map/index.d.ts +1 -1
  105. package/.server/server/plugins/map/index.js +1 -1
  106. package/.server/server/plugins/map/routes/get-os-token.d.ts +11 -1
  107. package/.server/server/plugins/map/routes/get-os-token.js +12 -2
  108. package/.server/server/plugins/map/routes/get-os-token.js.map +1 -1
  109. package/.server/server/plugins/map/routes/index.d.ts +4 -4
  110. package/.server/server/plugins/map/routes/index.js +3 -2
  111. package/.server/server/plugins/map/routes/index.js.map +1 -1
  112. package/.server/server/plugins/map/service.d.ts +1 -1
  113. package/.server/server/plugins/map/service.js +5 -2
  114. package/.server/server/plugins/map/service.js.map +1 -1
  115. package/.server/server/plugins/map/test/__stubs__/find.d.ts +1 -1
  116. package/.server/server/plugins/map/test/__stubs__/find.js +1 -1
  117. package/.server/server/plugins/nunjucks/context.d.ts +2 -2
  118. package/.server/server/plugins/nunjucks/context.js +2 -2
  119. package/.server/server/plugins/nunjucks/context.test.js +1 -1
  120. package/.server/server/plugins/nunjucks/enviroment.test.js +1 -1
  121. package/.server/server/plugins/nunjucks/environment.d.ts +3 -3
  122. package/.server/server/plugins/nunjucks/environment.js +3 -3
  123. package/.server/server/plugins/nunjucks/filters/answer.d.ts +1 -1
  124. package/.server/server/plugins/nunjucks/filters/answer.js +2 -2
  125. package/.server/server/plugins/nunjucks/filters/answer.test.js +1 -1
  126. package/.server/server/plugins/nunjucks/filters/evaluate.d.ts +1 -1
  127. package/.server/server/plugins/nunjucks/filters/evaluate.js +1 -1
  128. package/.server/server/plugins/nunjucks/filters/field.d.ts +1 -1
  129. package/.server/server/plugins/nunjucks/filters/field.js +1 -1
  130. package/.server/server/plugins/nunjucks/filters/field.test.js +1 -1
  131. package/.server/server/plugins/nunjucks/filters/href.d.ts +1 -1
  132. package/.server/server/plugins/nunjucks/filters/href.js +1 -1
  133. package/.server/server/plugins/nunjucks/filters/href.test.js +1 -1
  134. package/.server/server/plugins/nunjucks/filters/index.d.ts +8 -8
  135. package/.server/server/plugins/nunjucks/filters/page.d.ts +1 -1
  136. package/.server/server/plugins/nunjucks/filters/page.js +1 -1
  137. package/.server/server/plugins/nunjucks/filters/page.test.js +1 -1
  138. package/.server/server/plugins/nunjucks/index.d.ts +3 -3
  139. package/.server/server/plugins/nunjucks/render.d.ts +2 -2
  140. package/.server/server/plugins/nunjucks/render.js +1 -1
  141. package/.server/server/plugins/nunjucks/types.d.ts +1 -1
  142. package/.server/server/plugins/nunjucks/types.js +1 -1
  143. package/.server/server/plugins/payment/helper.d.ts +2 -2
  144. package/.server/server/plugins/payment/helper.js +1 -1
  145. package/.server/server/plugins/payment/service.d.ts +3 -3
  146. package/.server/server/plugins/payment/service.js +1 -1
  147. package/.server/server/plugins/postcode-lookup/index.d.ts +1 -1
  148. package/.server/server/plugins/postcode-lookup/index.js +1 -1
  149. package/.server/server/plugins/postcode-lookup/models/index.d.ts +6 -6
  150. package/.server/server/plugins/postcode-lookup/models/index.js +1 -1
  151. package/.server/server/plugins/postcode-lookup/routes/index.d.ts +6 -6
  152. package/.server/server/plugins/postcode-lookup/routes/index.js +15 -15
  153. package/.server/server/plugins/postcode-lookup/routes/index.js.map +1 -1
  154. package/.server/server/plugins/postcode-lookup/service.d.ts +1 -1
  155. package/.server/server/plugins/postcode-lookup/service.js +5 -2
  156. package/.server/server/plugins/postcode-lookup/service.js.map +1 -1
  157. package/.server/server/plugins/postcode-lookup/types.js +1 -1
  158. package/.server/server/routes/index.d.ts +2 -2
  159. package/.server/server/routes/types.d.ts +1 -1
  160. package/.server/server/schemas/index.d.ts +2 -2
  161. package/.server/server/services/cacheService.d.ts +8 -8
  162. package/.server/server/services/cacheService.js +2 -5
  163. package/.server/server/services/cacheService.js.map +1 -1
  164. package/.server/server/services/httpService.test.js +1 -1
  165. package/.server/server/services/index.d.ts +1 -1
  166. package/.server/server/types.d.ts +7 -7
  167. package/.server/server/utils/file-form-service.d.ts +2 -2
  168. package/.server/server/utils/file-form-service.js +1 -1
  169. package/package.json +8 -4
  170. package/src/client/javascripts/application.js +1 -1
  171. package/src/client/javascripts/geospatial-map.js +4 -4
  172. package/src/client/javascripts/location-map.js +2 -2
  173. package/src/client/javascripts/map.js +3 -3
  174. package/src/client/javascripts/shared.js +7 -7
  175. package/src/index.ts +3 -3
  176. package/src/server/common/helpers/logging/logger-options.ts +1 -1
  177. package/src/server/common/helpers/logging/logger.ts +1 -1
  178. package/src/server/common/helpers/logging/request-logger.ts +1 -1
  179. package/src/server/common/helpers/logging/request-tracing.js +1 -1
  180. package/src/server/common/helpers/redis-client.js +2 -2
  181. package/src/server/index.ts +13 -13
  182. package/src/server/plugins/crumb.ts +2 -2
  183. package/src/server/plugins/engine/beta/form-context.ts +9 -9
  184. package/src/server/plugins/engine/components/AutocompleteField.ts +3 -3
  185. package/src/server/plugins/engine/components/CheckboxesField.ts +7 -8
  186. package/src/server/plugins/engine/components/ComponentBase.ts +5 -5
  187. package/src/server/plugins/engine/components/ComponentCollection.ts +9 -9
  188. package/src/server/plugins/engine/components/DatePartsField.ts +8 -8
  189. package/src/server/plugins/engine/components/DeclarationField.ts +3 -3
  190. package/src/server/plugins/engine/components/Details.ts +1 -1
  191. package/src/server/plugins/engine/components/EastingNorthingField.ts +9 -9
  192. package/src/server/plugins/engine/components/EmailAddressField.ts +3 -3
  193. package/src/server/plugins/engine/components/FileUploadField.ts +6 -6
  194. package/src/server/plugins/engine/components/FormComponent.ts +4 -4
  195. package/src/server/plugins/engine/components/GeospatialField.ts +5 -5
  196. package/src/server/plugins/engine/components/HiddenField.ts +4 -4
  197. package/src/server/plugins/engine/components/Html.ts +1 -1
  198. package/src/server/plugins/engine/components/InsetText.ts +1 -1
  199. package/src/server/plugins/engine/components/LatLongField.ts +9 -9
  200. package/src/server/plugins/engine/components/List.ts +2 -2
  201. package/src/server/plugins/engine/components/ListFormComponent.ts +4 -4
  202. package/src/server/plugins/engine/components/LocationFieldBase.ts +5 -5
  203. package/src/server/plugins/engine/components/LocationFieldHelpers.ts +5 -5
  204. package/src/server/plugins/engine/components/Markdown.ts +1 -1
  205. package/src/server/plugins/engine/components/MonthYearField.ts +8 -8
  206. package/src/server/plugins/engine/components/MultilineTextField.ts +4 -4
  207. package/src/server/plugins/engine/components/NationalGridFieldNumberField.ts +2 -2
  208. package/src/server/plugins/engine/components/NumberField.ts +3 -3
  209. package/src/server/plugins/engine/components/OsGridRefField.ts +2 -2
  210. package/src/server/plugins/engine/components/PaymentField.ts +8 -8
  211. package/src/server/plugins/engine/components/RadiosField.ts +1 -1
  212. package/src/server/plugins/engine/components/SelectField.ts +2 -2
  213. package/src/server/plugins/engine/components/SelectionControlField.ts +4 -4
  214. package/src/server/plugins/engine/components/TelephoneNumberField.ts +4 -4
  215. package/src/server/plugins/engine/components/TextField.ts +3 -3
  216. package/src/server/plugins/engine/components/UkAddressField.ts +7 -7
  217. package/src/server/plugins/engine/components/YesNoField.ts +5 -5
  218. package/src/server/plugins/engine/components/helpers/__stubs__/geospatial.ts +1 -1
  219. package/src/server/plugins/engine/components/helpers/components.ts +8 -8
  220. package/src/server/plugins/engine/components/helpers/geospatial.ts +1 -1
  221. package/src/server/plugins/engine/components/index.ts +27 -27
  222. package/src/server/plugins/engine/components/types.ts +1 -1
  223. package/src/server/plugins/engine/configureEnginePlugin.ts +10 -10
  224. package/src/server/plugins/engine/date-helper.ts +1 -1
  225. package/src/server/plugins/engine/helpers.ts +8 -8
  226. package/src/server/plugins/engine/index.ts +8 -8
  227. package/src/server/plugins/engine/models/FormModel.ts +15 -15
  228. package/src/server/plugins/engine/models/SummaryViewModel.ts +10 -10
  229. package/src/server/plugins/engine/models/index.ts +2 -2
  230. package/src/server/plugins/engine/models/types.ts +4 -4
  231. package/src/server/plugins/engine/options.js +3 -3
  232. package/src/server/plugins/engine/outputFormatters/adapter/v1.ts +6 -6
  233. package/src/server/plugins/engine/outputFormatters/human/v1.ts +9 -9
  234. package/src/server/plugins/engine/outputFormatters/index.ts +8 -8
  235. package/src/server/plugins/engine/outputFormatters/machine/v1.ts +7 -7
  236. package/src/server/plugins/engine/outputFormatters/machine/v2.ts +6 -6
  237. package/src/server/plugins/engine/pageControllers/FileUploadPageController.ts +9 -9
  238. package/src/server/plugins/engine/pageControllers/PageController.ts +7 -7
  239. package/src/server/plugins/engine/pageControllers/QuestionPageController.ts +13 -13
  240. package/src/server/plugins/engine/pageControllers/RepeatPageController.ts +6 -6
  241. package/src/server/plugins/engine/pageControllers/StartPageController.ts +3 -3
  242. package/src/server/plugins/engine/pageControllers/StatusPageController.ts +5 -5
  243. package/src/server/plugins/engine/pageControllers/SummaryPageController.ts +12 -12
  244. package/src/server/plugins/engine/pageControllers/TerminalPageController.ts +3 -3
  245. package/src/server/plugins/engine/pageControllers/__stubs__/request.ts +3 -3
  246. package/src/server/plugins/engine/pageControllers/__stubs__/server.ts +2 -2
  247. package/src/server/plugins/engine/pageControllers/errors.ts +1 -1
  248. package/src/server/plugins/engine/pageControllers/helpers/pages.ts +2 -2
  249. package/src/server/plugins/engine/pageControllers/helpers/state.ts +9 -9
  250. package/src/server/plugins/engine/pageControllers/helpers/submission.ts +5 -5
  251. package/src/server/plugins/engine/pageControllers/index.ts +7 -7
  252. package/src/server/plugins/engine/pageControllers/validationOptions.ts +1 -1
  253. package/src/server/plugins/engine/plugin.ts +14 -14
  254. package/src/server/plugins/engine/routes/file-upload.ts +2 -2
  255. package/src/server/plugins/engine/routes/index.ts +10 -10
  256. package/src/server/plugins/engine/routes/payment-helper.js +4 -4
  257. package/src/server/plugins/engine/routes/payment.js +9 -9
  258. package/src/server/plugins/engine/routes/questions.ts +10 -10
  259. package/src/server/plugins/engine/routes/repeaters/item-delete.ts +6 -6
  260. package/src/server/plugins/engine/routes/repeaters/summary.ts +5 -5
  261. package/src/server/plugins/engine/services/formSubmissionService.js +2 -2
  262. package/src/server/plugins/engine/services/index.js +3 -3
  263. package/src/server/plugins/engine/services/localFormsService.js +2 -2
  264. package/src/server/plugins/engine/services/notifyService.ts +9 -9
  265. package/src/server/plugins/engine/services/uploadService.js +3 -3
  266. package/src/server/plugins/engine/types/index.ts +10 -10
  267. package/src/server/plugins/engine/types/schema.ts +2 -2
  268. package/src/server/plugins/engine/types.ts +22 -17
  269. package/src/server/plugins/engine/validationHelpers.ts +3 -3
  270. package/src/server/plugins/engine/vision.ts +3 -3
  271. package/src/server/plugins/map/index.js +2 -2
  272. package/src/server/plugins/map/routes/get-os-token.js +15 -3
  273. package/src/server/plugins/map/routes/index.js +7 -5
  274. package/src/server/plugins/map/service.js +7 -4
  275. package/src/server/plugins/map/test/__stubs__/find.js +1 -1
  276. package/src/server/plugins/nunjucks/context.js +5 -5
  277. package/src/server/plugins/nunjucks/environment.js +6 -6
  278. package/src/server/plugins/nunjucks/filters/answer.js +3 -3
  279. package/src/server/plugins/nunjucks/filters/evaluate.js +2 -2
  280. package/src/server/plugins/nunjucks/filters/field.js +1 -1
  281. package/src/server/plugins/nunjucks/filters/href.js +2 -2
  282. package/src/server/plugins/nunjucks/filters/index.js +8 -8
  283. package/src/server/plugins/nunjucks/filters/page.js +1 -1
  284. package/src/server/plugins/nunjucks/index.js +3 -3
  285. package/src/server/plugins/nunjucks/plugin.js +3 -3
  286. package/src/server/plugins/nunjucks/render.js +2 -2
  287. package/src/server/plugins/nunjucks/types.js +1 -1
  288. package/src/server/plugins/payment/helper.js +2 -2
  289. package/src/server/plugins/payment/service.js +4 -4
  290. package/src/server/plugins/postcode-lookup/index.js +2 -2
  291. package/src/server/plugins/postcode-lookup/models/index.js +3 -3
  292. package/src/server/plugins/postcode-lookup/routes/index.js +24 -14
  293. package/src/server/plugins/postcode-lookup/service.js +7 -4
  294. package/src/server/plugins/postcode-lookup/types.js +1 -1
  295. package/src/server/plugins/session.ts +1 -1
  296. package/src/server/routes/index.ts +2 -2
  297. package/src/server/routes/public.ts +1 -1
  298. package/src/server/routes/types.ts +1 -1
  299. package/src/server/schemas/index.ts +2 -2
  300. package/src/server/secure-context.js +1 -1
  301. package/src/server/services/cacheService.ts +13 -18
  302. package/src/server/services/httpService.ts +1 -1
  303. package/src/server/services/index.ts +1 -1
  304. package/src/server/types.ts +7 -7
  305. package/src/server/utils/notify.ts +2 -2
  306. package/src/server/utils/utils.js +1 -1
  307. package/src/typings/hapi/index.d.ts +4 -4
  308. package/src/typings/joi/index.d.ts +1 -1
  309. package/src/server/common/helpers/logging/logger-options.test.ts +0 -50
  310. package/src/server/index.test.ts +0 -644
  311. package/src/server/plugins/engine/beta/form-context.test.ts +0 -373
  312. package/src/server/plugins/engine/components/AutocompleteField.test.ts +0 -362
  313. package/src/server/plugins/engine/components/CheckboxesField.test.ts +0 -486
  314. package/src/server/plugins/engine/components/DatePartsField.test.ts +0 -927
  315. package/src/server/plugins/engine/components/DeclarationField.test.ts +0 -560
  316. package/src/server/plugins/engine/components/Details.test.ts +0 -49
  317. package/src/server/plugins/engine/components/EastingNorthingField.test.ts +0 -727
  318. package/src/server/plugins/engine/components/EmailAddressField.test.ts +0 -445
  319. package/src/server/plugins/engine/components/FileUploadField.test.ts +0 -1079
  320. package/src/server/plugins/engine/components/GeospatialField.test.ts +0 -380
  321. package/src/server/plugins/engine/components/HiddenField.test.ts +0 -188
  322. package/src/server/plugins/engine/components/Html.test.ts +0 -48
  323. package/src/server/plugins/engine/components/InsetText.test.ts +0 -48
  324. package/src/server/plugins/engine/components/LatLongField.test.ts +0 -898
  325. package/src/server/plugins/engine/components/List.test.ts +0 -79
  326. package/src/server/plugins/engine/components/LocationFieldBase.test.ts +0 -253
  327. package/src/server/plugins/engine/components/LocationFieldHelpers.test.ts +0 -743
  328. package/src/server/plugins/engine/components/Markdown.test.ts +0 -48
  329. package/src/server/plugins/engine/components/MonthYearField.test.ts +0 -617
  330. package/src/server/plugins/engine/components/MultilineTextField.test.ts +0 -647
  331. package/src/server/plugins/engine/components/NationalGridFieldNumberField.test.ts +0 -449
  332. package/src/server/plugins/engine/components/NumberField.test.ts +0 -723
  333. package/src/server/plugins/engine/components/OsGridRefField.test.ts +0 -460
  334. package/src/server/plugins/engine/components/PaymentField.test.ts +0 -745
  335. package/src/server/plugins/engine/components/RadiosField.test.ts +0 -297
  336. package/src/server/plugins/engine/components/SelectField.test.ts +0 -289
  337. package/src/server/plugins/engine/components/TelephoneNumberField.test.ts +0 -384
  338. package/src/server/plugins/engine/components/TextField.test.ts +0 -521
  339. package/src/server/plugins/engine/components/UkAddressField.test.ts +0 -806
  340. package/src/server/plugins/engine/components/YesNoField.test.ts +0 -256
  341. package/src/server/plugins/engine/components/helpers/components.test.ts +0 -399
  342. package/src/server/plugins/engine/components/helpers/geospatial.test.js +0 -55
  343. package/src/server/plugins/engine/components/helpers/helpers.test.ts +0 -219
  344. package/src/server/plugins/engine/date-helper.test.ts +0 -47
  345. package/src/server/plugins/engine/helpers.test.ts +0 -868
  346. package/src/server/plugins/engine/models/FormModel.test.ts +0 -725
  347. package/src/server/plugins/engine/models/SummaryViewModel.test.ts +0 -472
  348. package/src/server/plugins/engine/options.test.js +0 -63
  349. package/src/server/plugins/engine/outputFormatters/adapter/v1.location.test.ts +0 -356
  350. package/src/server/plugins/engine/outputFormatters/adapter/v1.test.ts +0 -871
  351. package/src/server/plugins/engine/outputFormatters/human/v1.payment.test.ts +0 -147
  352. package/src/server/plugins/engine/outputFormatters/human/v1.test.ts +0 -145
  353. package/src/server/plugins/engine/outputFormatters/index.test.ts +0 -17
  354. package/src/server/plugins/engine/outputFormatters/machine/v1.test.ts +0 -268
  355. package/src/server/plugins/engine/outputFormatters/machine/v2.location.test.ts +0 -341
  356. package/src/server/plugins/engine/outputFormatters/machine/v2.payment.test.ts +0 -115
  357. package/src/server/plugins/engine/outputFormatters/machine/v2.test.ts +0 -311
  358. package/src/server/plugins/engine/pageControllers/FileUploadPageController.test.ts +0 -1372
  359. package/src/server/plugins/engine/pageControllers/PageController.test.ts +0 -246
  360. package/src/server/plugins/engine/pageControllers/QuestionPageController.test.ts +0 -1686
  361. package/src/server/plugins/engine/pageControllers/RepeatPageController.test.ts +0 -279
  362. package/src/server/plugins/engine/pageControllers/StartPageController.test.ts +0 -32
  363. package/src/server/plugins/engine/pageControllers/StatusPageController.test.ts +0 -32
  364. package/src/server/plugins/engine/pageControllers/SummaryPageController.test.ts +0 -89
  365. package/src/server/plugins/engine/pageControllers/TerminalController.test.ts +0 -37
  366. package/src/server/plugins/engine/pageControllers/errors.test.ts +0 -78
  367. package/src/server/plugins/engine/pageControllers/helpers/helpers.test.ts +0 -182
  368. package/src/server/plugins/engine/pageControllers/helpers/state.test.ts +0 -359
  369. package/src/server/plugins/engine/pageControllers/helpers/submission.test.ts +0 -373
  370. package/src/server/plugins/engine/referenceNumbers.test.ts +0 -74
  371. package/src/server/plugins/engine/routes/index.test.ts +0 -332
  372. package/src/server/plugins/engine/routes/payment-helper.test.js +0 -136
  373. package/src/server/plugins/engine/routes/payment.test.js +0 -180
  374. package/src/server/plugins/engine/routes/questions.test.ts +0 -502
  375. package/src/server/plugins/engine/routes/repeaters/item-delete.test.ts +0 -83
  376. package/src/server/plugins/engine/routes/repeaters/summary.test.ts +0 -75
  377. package/src/server/plugins/engine/services/formsService.test.js +0 -26
  378. package/src/server/plugins/engine/services/notifyService.test.ts +0 -310
  379. package/src/server/plugins/engine/types/schema.test.ts +0 -234
  380. package/src/server/plugins/engine/views/components/service-banner/template.test.js +0 -43
  381. package/src/server/plugins/engine/views/components/tag-env/template.test.js +0 -28
  382. package/src/server/plugins/engine/views/partials/preview-banner.test.js +0 -122
  383. package/src/server/plugins/map/routes/get-os-token.test.js +0 -55
  384. package/src/server/plugins/map/service.test.js +0 -144
  385. package/src/server/plugins/nunjucks/context.test.js +0 -109
  386. package/src/server/plugins/nunjucks/enviroment.test.js +0 -207
  387. package/src/server/plugins/nunjucks/filters/answer.test.js +0 -92
  388. package/src/server/plugins/nunjucks/filters/field.test.js +0 -75
  389. package/src/server/plugins/nunjucks/filters/href.test.js +0 -80
  390. package/src/server/plugins/nunjucks/filters/merge.test.js +0 -15
  391. package/src/server/plugins/nunjucks/filters/page.test.js +0 -65
  392. package/src/server/plugins/payment/helper.test.js +0 -29
  393. package/src/server/plugins/payment/service.test.js +0 -218
  394. package/src/server/plugins/postcode-lookup/service.test.js +0 -177
  395. package/src/server/postcode-lookup.test.ts +0 -64
  396. package/src/server/routes/dummy-api.test.ts +0 -97
  397. package/src/server/services/cacheService.test.ts +0 -308
  398. package/src/server/services/httpService.test.js +0 -491
  399. package/src/server/utils/file-form-service.test.js +0 -127
  400. package/src/server/utils/notify.test.ts +0 -37
  401. package/src/server/utils/secure-context/get-trust-store-certs.test.js +0 -19
  402. 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
- })