@defra/forms-engine-plugin 4.7.2 → 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,182 +0,0 @@
1
- import {
2
- ComponentType,
3
- ControllerType,
4
- ControllerTypes,
5
- PageTypes,
6
- type Page
7
- } from '@defra/forms-model'
8
-
9
- import { FormModel } from '~/src/server/plugins/engine/models/FormModel.js'
10
- import { PageController } from '~/src/server/plugins/engine/pageControllers/PageController.js'
11
- import { getProxyUrlForLocalDevelopment } from '~/src/server/plugins/engine/pageControllers/helpers/index.js'
12
- import {
13
- createPage,
14
- type PageControllerType
15
- } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js'
16
- import {
17
- FileUploadPageController,
18
- QuestionPageController,
19
- RepeatPageController,
20
- StartPageController,
21
- StatusPageController,
22
- SummaryPageController,
23
- TerminalPageController
24
- } from '~/src/server/plugins/engine/pageControllers/index.js'
25
- import definition from '~/test/form/definitions/blank.js'
26
-
27
- describe('Page controller helpers', () => {
28
- const examples = PageTypes.filter(
29
- (pageType) =>
30
- pageType.controller !== ControllerType.SummaryWithConfirmationEmail
31
- ).map((pageType) => {
32
- const pageDef = structuredClone(pageType)
33
-
34
- let controller: PageControllerType | undefined
35
-
36
- switch (pageDef.controller) {
37
- case ControllerType.Start:
38
- controller = StartPageController
39
- break
40
-
41
- case ControllerType.Page:
42
- controller = QuestionPageController
43
- break
44
-
45
- case ControllerType.Terminal:
46
- controller = TerminalPageController
47
- break
48
-
49
- case ControllerType.Repeat:
50
- controller = RepeatPageController
51
- break
52
-
53
- case ControllerType.FileUpload:
54
- controller = FileUploadPageController
55
-
56
- // Avoid minimum component requirements
57
- pageDef.components = [
58
- {
59
- type: ComponentType.FileUploadField,
60
- name: 'fileUpload',
61
- title: 'Upload something',
62
- options: {},
63
- schema: {}
64
- }
65
- ]
66
- break
67
-
68
- case ControllerType.Summary:
69
- controller = SummaryPageController
70
- break
71
-
72
- case ControllerType.Status:
73
- controller = StatusPageController
74
- break
75
- }
76
-
77
- return {
78
- controller,
79
- pageDef
80
- }
81
- })
82
-
83
- describe('Helper: createPage', () => {
84
- const model = new FormModel(definition, {
85
- basePath: 'test'
86
- })
87
-
88
- it.each([...examples])(
89
- "creates page for controller '$pageDef.controller'",
90
- ({ controller, pageDef }) => {
91
- const pageDef1 = structuredClone(pageDef)
92
- const pageDef2 = structuredClone(pageDef)
93
-
94
- expect(createPage(model, pageDef1)).toBeInstanceOf(controller)
95
-
96
- const controllerType = ControllerTypes.find(
97
- ({ name }) => name === pageDef1.controller
98
- )
99
-
100
- // @ts-expect-error - Allow invalid property for test
101
- pageDef2.controller = controllerType?.path
102
-
103
- // Check for legacy path support
104
- expect(createPage(model, pageDef2)).toBeInstanceOf(controller)
105
- }
106
- )
107
-
108
- describe('Helper: createPage (custom controllers)', () => {
109
- it('uses custom controllers from model.controllers', () => {
110
- class CustomPageController extends PageController {
111
- customProperty: string
112
-
113
- constructor(model: FormModel, pageDef: Page) {
114
- super(model, pageDef)
115
- this.customProperty = 'some-value'
116
- }
117
- }
118
-
119
- const customPageDef = {
120
- path: '/custom-page',
121
- title: 'Custom Page',
122
- controller: 'CustomController',
123
- components: []
124
- }
125
-
126
- const testModel = new FormModel(definition, {
127
- basePath: 'test'
128
- })
129
-
130
- type ControllerMap = Record<string, typeof PageController>
131
- testModel.controllers = {
132
- CustomController: CustomPageController
133
- } as ControllerMap
134
-
135
- const controller = createPage(testModel, customPageDef as Page)
136
-
137
- expect(controller).toBeInstanceOf(CustomPageController)
138
- expect(controller).toHaveProperty('customProperty', 'some-value')
139
- })
140
- })
141
-
142
- it('throws if page controller is unknown', () => {
143
- const pageDef: Page = {
144
- title: 'Unknown page',
145
- path: '/unknown-page',
146
- // @ts-expect-error - Allow invalid property for test
147
- controller: 'UnknownPageController'
148
- }
149
-
150
- expect(() => createPage(model, pageDef)).toThrow(
151
- `Page controller ${pageDef.controller} does not exist`
152
- )
153
- })
154
- })
155
-
156
- describe('Helper: getProxyUrlForLocalDevelopment', () => {
157
- it('returns null if uploadUrl is undefined', () => {
158
- expect(getProxyUrlForLocalDevelopment(undefined)).toBeNull()
159
- })
160
-
161
- it('returns null if uploadUrl does not include localhost:7337', () => {
162
- expect(getProxyUrlForLocalDevelopment('https://some-url.com')).toBeNull()
163
- expect(getProxyUrlForLocalDevelopment('http://localhost:8080')).toBeNull()
164
- })
165
-
166
- it('replaces localhost:7337 with uploader.127.0.0.1.sslip.io:7300', () => {
167
- const originalUrl = 'http://localhost:7337/upload'
168
- const expectedUrl = 'http://uploader.127.0.0.1.sslip.io:7300/upload'
169
-
170
- expect(getProxyUrlForLocalDevelopment(originalUrl)).toBe(expectedUrl)
171
- })
172
-
173
- it('handles multiple occurrences of localhost:7337', () => {
174
- const originalUrl =
175
- 'http://localhost:7337/path?redirect=http://localhost:7337/callback'
176
- const expectedUrl =
177
- 'http://uploader.127.0.0.1.sslip.io:7300/path?redirect=http://uploader.127.0.0.1.sslip.io:7300/callback'
178
-
179
- expect(getProxyUrlForLocalDevelopment(originalUrl)).toBe(expectedUrl)
180
- })
181
- })
182
- })
@@ -1,359 +0,0 @@
1
- import { ComponentType, ControllerType, type Page } from '@defra/forms-model'
2
-
3
- import { type FormModel } from '~/src/server/plugins/engine/models/FormModel.js'
4
- import { type PageControllerClass } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js'
5
- import {
6
- checkSaveAndExitRepeater,
7
- copyNotYetValidatedState,
8
- prefillStateFromQueryParameters,
9
- stripParam
10
- } from '~/src/server/plugins/engine/pageControllers/helpers/state.js'
11
- import {
12
- type AnyFormRequest,
13
- type FormContext
14
- } from '~/src/server/plugins/engine/types.js'
15
- import { type FormsService, type Services } from '~/src/server/types.js'
16
-
17
- const mockGetCacheService = jest.fn()
18
- const mockCacheService = { setState: jest.fn() }
19
-
20
- jest.mock('~/src/server/plugins/engine/helpers.ts', () => ({
21
- __esModule: true,
22
- getCacheService: (...args: unknown[]) => mockGetCacheService(...args)
23
- }))
24
-
25
- function buildMockPage(
26
- pagesOverride = {},
27
- stateOverride = {},
28
- servicesOverride = {} as Services
29
- ) {
30
- return {
31
- model: {
32
- def: {
33
- metadata: {
34
- submission: { code: 'TEST-CODE' }
35
- } as { submission: { code: string } },
36
- pages: pagesOverride
37
- },
38
- getFormContext: jest.fn().mockReturnValue({
39
- isForceAccess: false,
40
- data: {}
41
- }),
42
- services: servicesOverride
43
- } as unknown as FormModel,
44
- ...stateOverride
45
- } as unknown as PageControllerClass
46
- }
47
-
48
- describe('State helpers', () => {
49
- describe('prefillStateFromQueryParameters', () => {
50
- const mockGetState = jest.fn()
51
- const mockMergeState = jest.fn()
52
- const mockRequestPrefill: AnyFormRequest = {
53
- app: {},
54
- yar: { flash: () => [] },
55
- params: { path: 'test-path' },
56
- query: {}
57
- } as unknown as AnyFormRequest
58
-
59
- it('should not add any state if no params', async () => {
60
- const mockPagePrefill = buildMockPage([], {
61
- getState: mockGetState,
62
- mergeState: mockMergeState
63
- })
64
-
65
- expect(
66
- await prefillStateFromQueryParameters(
67
- mockRequestPrefill,
68
- mockPagePrefill
69
- )
70
- ).toBeFalse()
71
- expect(mockMergeState).not.toHaveBeenCalled()
72
- })
73
-
74
- it('should ignore if no params (but some hidden fields)', async () => {
75
- const mockRequest2 = {
76
- ...mockRequestPrefill,
77
- query: {}
78
- } as unknown as AnyFormRequest
79
-
80
- const mockPagePrefill = buildMockPage(
81
- [
82
- {
83
- components: [
84
- {
85
- type: ComponentType.HiddenField,
86
- name: 'param2'
87
- },
88
- {
89
- type: ComponentType.HiddenField,
90
- name: 'param4'
91
- }
92
- ],
93
- next: []
94
- } as unknown as Page
95
- ],
96
- {
97
- getState: mockGetState,
98
- mergeState: mockMergeState
99
- }
100
- )
101
-
102
- expect(
103
- await prefillStateFromQueryParameters(mockRequest2, mockPagePrefill)
104
- ).toBeFalse()
105
- expect(mockMergeState).not.toHaveBeenCalled()
106
- })
107
-
108
- it('should only add state where param names match hidden field names', async () => {
109
- const mockRequest2 = {
110
- ...mockRequestPrefill,
111
- query: {
112
- param1: 'val1',
113
- param2: 'val2',
114
- param3: 'val3',
115
- param4: 'val4'
116
- }
117
- } as unknown as AnyFormRequest
118
-
119
- const mockPagePrefill = buildMockPage(
120
- [
121
- {
122
- components: [
123
- {
124
- type: ComponentType.HiddenField,
125
- name: 'param2'
126
- },
127
- {
128
- type: ComponentType.HiddenField,
129
- name: 'param4'
130
- }
131
- ],
132
- next: []
133
- } as unknown as Page
134
- ],
135
- {
136
- getState: mockGetState.mockResolvedValue({}),
137
- mergeState: mockMergeState
138
- }
139
- )
140
-
141
- expect(
142
- await prefillStateFromQueryParameters(mockRequest2, mockPagePrefill)
143
- ).toBe(true)
144
- expect(mockMergeState).toHaveBeenCalledWith(
145
- expect.anything(),
146
- expect.anything(),
147
- {
148
- param2: 'val2',
149
- param4: 'val4'
150
- }
151
- )
152
- })
153
-
154
- it('should call lookup function for formId', async () => {
155
- const mockRequest3 = {
156
- ...mockRequestPrefill,
157
- query: {
158
- formId: 'c644804b-2f23-4c96-a2fc-ad4975974723'
159
- }
160
- } as unknown as AnyFormRequest
161
-
162
- const mockPagePrefill = buildMockPage(
163
- [
164
- {
165
- components: [
166
- {
167
- type: ComponentType.HiddenField,
168
- name: 'formId'
169
- }
170
- ],
171
- next: []
172
- } as unknown as Page
173
- ],
174
- {
175
- getState: mockGetState.mockResolvedValue({}),
176
- mergeState: mockMergeState
177
- },
178
- {
179
- formsService: {
180
- getFormMetadata: jest.fn(),
181
- getFormMetadataById: jest
182
- .fn()
183
- .mockResolvedValue({ title: 'My looked-up form name' }),
184
- getFormDefinition: jest.fn()
185
- } as unknown as FormsService
186
- } as Services
187
- )
188
-
189
- await prefillStateFromQueryParameters(mockRequest3, mockPagePrefill)
190
- expect(mockMergeState).toHaveBeenCalledWith(
191
- expect.anything(),
192
- expect.anything(),
193
- {
194
- formId: 'c644804b-2f23-4c96-a2fc-ad4975974723',
195
- formName: 'My looked-up form name'
196
- }
197
- )
198
- })
199
- })
200
-
201
- describe('stripParam', () => {
202
- it('should remove param when exists', () => {
203
- const params = {
204
- paramName1: 'val1',
205
- returnUrl: 'http://somesite.com',
206
- paramName2: 'val2',
207
- paramName3: undefined
208
- }
209
- expect(stripParam(params, 'returnUrl')).toStrictEqual({
210
- paramName1: 'val1',
211
- paramName2: 'val2',
212
- paramName3: ''
213
- })
214
- })
215
-
216
- it('should handle param missing', () => {
217
- const params = {
218
- paramName1: 'val1',
219
- returnUrl: 'http://somesite.com',
220
- paramName2: 'val2'
221
- }
222
- expect(stripParam(params, 'paramNotThere')).toStrictEqual({
223
- paramName1: 'val1',
224
- returnUrl: 'http://somesite.com',
225
- paramName2: 'val2'
226
- })
227
- })
228
-
229
- it('should handle no params', () => {
230
- const params = {}
231
- expect(stripParam(params, 'anyParam')).toBeUndefined()
232
- })
233
- })
234
-
235
- describe('copyNotYetValidatedState', () => {
236
- beforeEach(() => {
237
- mockGetCacheService.mockReturnValue(mockCacheService)
238
- })
239
- it('should ignore if no invalid state', async () => {
240
- const mockRequest = {} as AnyFormRequest
241
- const mockContext = {
242
- state: { abc: '123' },
243
- payload: {}
244
- } as unknown as FormContext
245
- await copyNotYetValidatedState(mockRequest, mockContext)
246
- expect(mockContext.state).toEqual({ abc: '123' })
247
- expect(mockContext.payload).toEqual({})
248
- })
249
-
250
- it('should ignore if wrong path', async () => {
251
- const mockRequest = {
252
- url: {
253
- pathname: '/form-page1'
254
- }
255
- } as unknown as AnyFormRequest
256
- const mockContext = {
257
- state: {
258
- abc: '123',
259
- __stateNotYetValidated: {
260
- def: '456',
261
- __currentPagePath: '/root'
262
- }
263
- },
264
- payload: {}
265
- } as unknown as FormContext
266
- await copyNotYetValidatedState(mockRequest, mockContext)
267
- expect(mockContext.state).toEqual({
268
- abc: '123',
269
- __stateNotYetValidated: {
270
- def: '456',
271
- __currentPagePath: '/root'
272
- }
273
- })
274
- expect(mockContext.payload).toEqual({})
275
- })
276
-
277
- it('should apply if correct path', async () => {
278
- const mockRequest = {
279
- url: {
280
- pathname: '/form-page1'
281
- }
282
- } as unknown as AnyFormRequest
283
- const mockContext = {
284
- state: {
285
- abc: '123',
286
- __stateNotYetValidated: {
287
- def: '456',
288
- __currentPagePath: '/form-page1'
289
- }
290
- },
291
- payload: {}
292
- } as unknown as FormContext
293
- await copyNotYetValidatedState(mockRequest, mockContext)
294
- expect(mockContext.state).toEqual({
295
- abc: '123',
296
- __stateNotYetValidated: undefined
297
- })
298
- expect(mockContext.payload).toEqual({
299
- def: '456'
300
- })
301
- })
302
- })
303
-
304
- describe('checkSaveAndExitRepeater', () => {
305
- function createMockContextWithPath(path: string) {
306
- return {
307
- state: {
308
- abc: '123',
309
- __stateNotYetValidated: {
310
- def: '456',
311
- __currentPagePath: path
312
- }
313
- },
314
- payload: {}
315
- } as unknown as FormContext
316
- }
317
-
318
- const mockModel = {
319
- def: {
320
- pages: [
321
- {
322
- controller: ControllerType.Repeat,
323
- path: '/personal_details'
324
- }
325
- ]
326
- },
327
- basePath: 'form/preview/draft/repeater-test'
328
- } as unknown as FormModel
329
-
330
- it('should return undefined if url does not end in a guid', () => {
331
- const mockContext = createMockContextWithPath(
332
- '/form/preview/draft/repeater-test/personal_details'
333
- )
334
- expect(checkSaveAndExitRepeater(mockContext, mockModel)).toBeUndefined()
335
- })
336
-
337
- it('should return undefined if url ends in a guid but not a repeater path', () => {
338
- const mockContext = createMockContextWithPath(
339
- '/form/preview/draft/repeater-test/wrong_page/7d27fe6e-73e8-4265-84bd-1e118c92470b'
340
- )
341
- expect(checkSaveAndExitRepeater(mockContext, mockModel)).toBeUndefined()
342
- })
343
-
344
- it('should return undefined if url is not a string', () => {
345
- // @ts-expect-error - invalid dataype on purpose for this test
346
- const mockContext = createMockContextWithPath({})
347
- expect(checkSaveAndExitRepeater(mockContext, mockModel)).toBeUndefined()
348
- })
349
-
350
- it('should return correct urls if url ends in a guid and is a repeater path', () => {
351
- const mockContext = createMockContextWithPath(
352
- '/form/preview/draft/repeater-test/personal_details/7d27fe6e-73e8-4265-84bd-1e118c92470b'
353
- )
354
- expect(checkSaveAndExitRepeater(mockContext, mockModel)).toBe(
355
- '/form/preview/draft/repeater-test/personal_details/7d27fe6e-73e8-4265-84bd-1e118c92470b'
356
- )
357
- })
358
- })
359
- })