@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,472 +0,0 @@
1
- import {
2
- type FormDefinition,
3
- type PageQuestion,
4
- type RadiosFieldComponent
5
- } from '@defra/forms-model'
6
-
7
- import { FORM_PREFIX } from '~/src/server/constants.js'
8
- import {
9
- FormModel,
10
- SummaryViewModel
11
- } from '~/src/server/plugins/engine/models/index.js'
12
- import { SummaryPageController } from '~/src/server/plugins/engine/pageControllers/SummaryPageController.js'
13
- import { buildFormContextRequest } from '~/src/server/plugins/engine/pageControllers/__stubs__/request.js'
14
- import { serverWithSaveAndExit } from '~/src/server/plugins/engine/pageControllers/__stubs__/server.js'
15
- import {
16
- createPage,
17
- type PageControllerClass
18
- } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js'
19
- import {
20
- type FormContext,
21
- type FormContextRequest,
22
- type FormState
23
- } from '~/src/server/plugins/engine/types.js'
24
- import v2Definition from '~/test/form/definitions/conditions-relative-dates-v2.js'
25
- import definition from '~/test/form/definitions/repeat-mixed.js'
26
- const basePath = `${FORM_PREFIX}/test`
27
-
28
- describe('SummaryViewModel', () => {
29
- const itemId1 = 'abc-123'
30
- const itemId2 = 'xyz-987'
31
-
32
- let model: FormModel
33
- let page: PageControllerClass
34
- let pageUrl: URL
35
- let request: FormContextRequest
36
- let context: FormContext
37
- let summaryViewModel: SummaryViewModel
38
-
39
- beforeEach(() => {
40
- model = new FormModel(definition, {
41
- basePath: `${FORM_PREFIX}/test`
42
- })
43
-
44
- page = createPage(model, definition.pages[2])
45
- pageUrl = new URL('http://example.com/repeat/pizza-order/summary')
46
-
47
- request = buildFormContextRequest({
48
- method: 'get',
49
- url: pageUrl,
50
- path: pageUrl.pathname,
51
- params: {
52
- path: 'pizza-order',
53
- slug: 'repeat'
54
- },
55
- query: {},
56
- app: { model }
57
- })
58
- })
59
-
60
- describe.each([
61
- {
62
- description: '0 items',
63
- state: {
64
- $$__referenceNumber: 'foobar',
65
- orderType: 'collection',
66
- pizza: []
67
- } satisfies FormState,
68
- keys: [
69
- 'How would you like to receive your pizza?',
70
- 'Pizza',
71
- 'How you would like to receive your pizza',
72
- 'Pizza',
73
- 'Pizza'
74
- ],
75
- values: ['Collection', 'Not provided'],
76
- answers: ['Collection', ''],
77
- names: ['orderType', 'pizza']
78
- },
79
- {
80
- description: '1 item',
81
- state: {
82
- $$__referenceNumber: 'foobar',
83
- orderType: 'delivery',
84
- pizza: [
85
- {
86
- toppings: 'Ham',
87
- quantity: 2,
88
- itemId: itemId1
89
- }
90
- ]
91
- } satisfies FormState,
92
- keys: [
93
- 'How would you like to receive your pizza?',
94
- 'Pizza',
95
- 'How you would like to receive your pizza',
96
- 'Pizza',
97
- 'Pizza'
98
- ],
99
- values: ['Delivery', 'You have added 1 answer'],
100
- answers: ['Delivery', 'You have added 1 answer'],
101
- names: ['orderType', 'pizza']
102
- },
103
- {
104
- description: '2 items',
105
- state: {
106
- $$__referenceNumber: 'foobar',
107
- orderType: 'delivery',
108
- pizza: [
109
- {
110
- toppings: 'Ham',
111
- quantity: 2,
112
- itemId: itemId1
113
- },
114
- {
115
- toppings: 'Pepperoni',
116
- quantity: 1,
117
- itemId: itemId2
118
- }
119
- ]
120
- } satisfies FormState,
121
- keys: [
122
- 'How would you like to receive your pizza?',
123
- 'Pizza',
124
- 'How you would like to receive your pizza',
125
- 'Pizza',
126
- 'Pizza'
127
- ],
128
- values: ['Delivery', 'You have added 2 answers'],
129
- answers: ['Delivery', 'You have added 2 answers'],
130
- names: ['orderType', 'pizza']
131
- }
132
- ])(
133
- 'Check answers ($description)',
134
- ({ state, keys, values, names, answers }) => {
135
- beforeEach(() => {
136
- context = model.getFormContext(request, state)
137
- summaryViewModel = new SummaryViewModel(request, page, context)
138
- })
139
-
140
- it('should add title for each section', () => {
141
- const [checkAnswers1, checkAnswers2] = summaryViewModel.checkAnswers
142
-
143
- // 1st summary list has section title
144
- expect(checkAnswers1).toHaveProperty('title', {
145
- text: 'Food'
146
- })
147
-
148
- // 2nd summary list has no title (unsectioned questions at bottom)
149
- expect(checkAnswers2).toHaveProperty('title', undefined)
150
- })
151
-
152
- it('should add summary list for each section', () => {
153
- expect(summaryViewModel.checkAnswers).toHaveLength(2)
154
-
155
- const [checkAnswers1, checkAnswers2] = summaryViewModel.checkAnswers
156
-
157
- const { summaryList: summaryList1 } = checkAnswers1
158
- const { summaryList: summaryList2 } = checkAnswers2
159
-
160
- // 1st summary list contains sectioned questions (Food section)
161
- expect(summaryList1).toHaveProperty('rows', [
162
- {
163
- key: {
164
- text: keys[1]
165
- },
166
- value: {
167
- classes: 'app-prose-scope',
168
- html: values[1]
169
- },
170
- actions: {
171
- items: [
172
- {
173
- classes: 'govuk-link--no-visited-state',
174
- href: `${basePath}/pizza-order/summary?returnUrl=${encodeURIComponent(`${basePath}/summary`)}`,
175
- text: 'Change',
176
- visuallyHiddenText: 'Pizza'
177
- }
178
- ]
179
- }
180
- }
181
- ])
182
-
183
- // 2nd summary list contains unsectioned questions (at bottom)
184
- expect(summaryList2).toHaveProperty('rows', [
185
- {
186
- key: {
187
- text: keys[2]
188
- },
189
- value: {
190
- classes: 'app-prose-scope',
191
- html: values[0]
192
- },
193
- actions: {
194
- items: [
195
- {
196
- classes: 'govuk-link--no-visited-state',
197
- href: `${basePath}/delivery-or-collection?returnUrl=${encodeURIComponent(`${basePath}/summary`)}`,
198
- text: 'Change',
199
- visuallyHiddenText: keys[0]
200
- }
201
- ]
202
- }
203
- }
204
- ])
205
- })
206
-
207
- it('should add summary list for each section (preview URL direct access)', () => {
208
- request.query.force = '' // Preview URL '?force'
209
- context = model.getFormContext(request, state)
210
- summaryViewModel = new SummaryViewModel(request, page, context)
211
-
212
- expect(summaryViewModel.checkAnswers).toHaveLength(2)
213
-
214
- const [checkAnswers1, checkAnswers2] = summaryViewModel.checkAnswers
215
-
216
- const { summaryList: summaryList1 } = checkAnswers1
217
- const { summaryList: summaryList2 } = checkAnswers2
218
-
219
- // 1st summary list contains sectioned questions (Food section)
220
- expect(summaryList1).toHaveProperty('rows', [
221
- {
222
- key: {
223
- text: keys[1]
224
- },
225
- value: {
226
- classes: 'app-prose-scope',
227
- html: values[1]
228
- },
229
- actions: {
230
- items: []
231
- }
232
- }
233
- ])
234
-
235
- // 2nd summary list contains unsectioned questions (at bottom)
236
- expect(summaryList2).toHaveProperty('rows', [
237
- {
238
- key: {
239
- text: keys[2]
240
- },
241
- value: {
242
- classes: 'app-prose-scope',
243
- html: values[0]
244
- },
245
- actions: {
246
- items: []
247
- }
248
- }
249
- ])
250
- })
251
-
252
- it('should use correct summary labels', () => {
253
- request.query.force = '' // Preview URL '?force'
254
- context = model.getFormContext(request, state)
255
- summaryViewModel = new SummaryViewModel(request, page, context)
256
-
257
- expect(summaryViewModel.details).toHaveLength(2)
258
-
259
- const [details1, details2] = summaryViewModel.details
260
-
261
- // 1st details contains sectioned questions (Food section)
262
- expect(details1.items[0]).toMatchObject({
263
- name: names[1],
264
- value: answers[1],
265
- title: keys[1],
266
- label: keys[4]
267
- })
268
-
269
- // 2nd details contains unsectioned questions (at bottom)
270
- expect(details2.items[0]).toMatchObject({
271
- name: names[0],
272
- value: answers[0],
273
- title: keys[2],
274
- label: keys[0]
275
- })
276
-
277
- const snapshot = [
278
- {
279
- name: names[1],
280
- value: answers[1],
281
- title: keys[1],
282
- label: keys[4]
283
- },
284
- {
285
- name: names[0],
286
- value: answers[0],
287
- title: keys[2],
288
- label: keys[0]
289
- }
290
- ]
291
-
292
- expect(snapshot).toMatchSnapshot()
293
- })
294
- }
295
- )
296
-
297
- it('should use correct summary labels', () => {
298
- request.query.force = '' // Preview URL '?force'
299
- const state = {
300
- $$__referenceNumber: 'foobar',
301
- orderType: 'collection',
302
- pizza: []
303
- } satisfies FormState
304
-
305
- // Setup an optional question
306
- const definitionOptional = structuredClone(definition) as FormDefinition
307
- const firstPage = definitionOptional.pages[0] as PageQuestion
308
- const firstComponent = firstPage.components[0] as RadiosFieldComponent
309
- firstComponent.options.required = false
310
-
311
- const model = new FormModel(definitionOptional, {
312
- basePath: `${FORM_PREFIX}/test`
313
- })
314
-
315
- context = model.getFormContext(request, state)
316
-
317
- const page = createPage(model, definition.pages[2])
318
-
319
- summaryViewModel = new SummaryViewModel(request, page, context)
320
-
321
- expect(summaryViewModel.details).toHaveLength(2)
322
-
323
- const [details1, details2] = summaryViewModel.details
324
-
325
- // 1st details contains sectioned questions (Food section)
326
- expect(details1.items[0]).toMatchObject({
327
- name: 'pizza',
328
- value: '',
329
- title: 'Pizza',
330
- label: 'Pizza'
331
- })
332
-
333
- // 2nd details contains unsectioned questions (at bottom)
334
- expect(details2.items[0]).toMatchObject({
335
- name: 'orderType',
336
- value: 'Collection',
337
- title: 'How you would like to receive your pizza (optional)',
338
- label: 'How would you like to receive your pizza?'
339
- })
340
- })
341
- })
342
-
343
- describe('SummaryPageController', () => {
344
- let model: FormModel
345
- let controller: SummaryPageController
346
- let request: FormContextRequest
347
-
348
- beforeEach(() => {
349
- model = new FormModel(definition, {
350
- basePath: `${FORM_PREFIX}/test`
351
- })
352
-
353
- controller = new SummaryPageController(model, definition.pages[2])
354
-
355
- request = {
356
- method: 'get',
357
- url: new URL('http://example.com/repeat/pizza-order/summary'),
358
- path: '/repeat/pizza-order/summary',
359
- params: {
360
- path: 'pizza-order',
361
- slug: 'repeat'
362
- },
363
- query: {},
364
- app: { model },
365
- server: serverWithSaveAndExit
366
- }
367
- })
368
-
369
- describe('Save and Exit functionality', () => {
370
- it('should show save and exit button on summary page', () => {
371
- expect(controller.shouldShowSaveAndExit(request.server)).toBe(true)
372
- })
373
-
374
- it('should handle save and exit from summary page', () => {
375
- const state: FormState = {
376
- $$__referenceNumber: 'foobar',
377
- orderType: 'collection',
378
- pizza: []
379
- }
380
-
381
- const context = model.getFormContext(request, state)
382
- const viewModel = controller.getViewModel(request, context)
383
-
384
- expect(viewModel).toHaveProperty('allowSaveAndExit', true)
385
- })
386
-
387
- it('should display correct page title for v1 form', () => {
388
- const state: FormState = {
389
- $$__referenceNumber: 'foobar',
390
- orderType: 'collection',
391
- pizza: []
392
- }
393
-
394
- const context = model.getFormContext(request, state)
395
- const viewModel = controller.getSummaryViewModel(request, context)
396
-
397
- expect(viewModel.pageTitle).toBe(
398
- 'Check your answers before sending your form'
399
- )
400
- })
401
-
402
- it('should display default page title for v2 form when title not provided', () => {
403
- const state: FormState = {
404
- $$__referenceNumber: 'foobar',
405
- orderType: 'collection',
406
- pizza: []
407
- }
408
-
409
- const titleModel = new FormModel(v2Definition, {
410
- basePath: `${FORM_PREFIX}/test`
411
- })
412
-
413
- controller = new SummaryPageController(titleModel, v2Definition.pages[5])
414
-
415
- request = {
416
- method: 'get',
417
- url: new URL('http://example.com/repeat/pizza-order/summary'),
418
- path: '/test/summary',
419
- params: {
420
- path: 'summary',
421
- slug: 'test'
422
- },
423
- query: {},
424
- app: { model: titleModel },
425
- server: serverWithSaveAndExit
426
- }
427
-
428
- const context = titleModel.getFormContext(request, state)
429
- const viewModel = controller.getSummaryViewModel(request, context)
430
-
431
- expect(viewModel.pageTitle).toBe(
432
- 'Check your answers before sending your form'
433
- )
434
- })
435
-
436
- it('should display override page title for v2 form when title supplied', () => {
437
- const state: FormState = {
438
- $$__referenceNumber: 'foobar',
439
- orderType: 'collection',
440
- pizza: []
441
- }
442
-
443
- const v2DefinitionWithSummaryTitle = structuredClone(v2Definition)
444
- const summaryPage = v2DefinitionWithSummaryTitle.pages[5]
445
- summaryPage.title = 'Override summary title'
446
-
447
- const titleModel = new FormModel(v2DefinitionWithSummaryTitle, {
448
- basePath: `${FORM_PREFIX}/test`
449
- })
450
-
451
- controller = new SummaryPageController(titleModel, summaryPage)
452
-
453
- request = {
454
- method: 'get',
455
- url: new URL('http://example.com/repeat/pizza-order/summary'),
456
- path: '/test/summary',
457
- params: {
458
- path: 'summary',
459
- slug: 'test'
460
- },
461
- query: {},
462
- app: { model: titleModel },
463
- server: serverWithSaveAndExit
464
- }
465
-
466
- const context = titleModel.getFormContext(request, state)
467
- const viewModel = controller.getSummaryViewModel(request, context)
468
-
469
- expect(viewModel.pageTitle).toBe('Override summary title')
470
- })
471
- })
472
- })
@@ -1,63 +0,0 @@
1
- import { validatePluginOptions } from '~/src/server/plugins/engine/options.js'
2
-
3
- describe('validatePluginOptions', () => {
4
- it('returns the validated value for valid options', () => {
5
- /**
6
- * @type {PluginOptions}
7
- */
8
- const validOptions = {
9
- nunjucks: {
10
- baseLayoutPath: 'dxt-devtool-baselayout.html',
11
- paths: ['src/server/devserver'] // custom layout to make it really clear this is not the same as the runner
12
- },
13
- viewContext: () => {
14
- return { hello: 'world' }
15
- },
16
- baseUrl: 'http://localhost:3009'
17
- }
18
-
19
- expect(validatePluginOptions(validOptions)).toEqual(validOptions)
20
- })
21
-
22
- it('accepts optional property saveAndExit', () => {
23
- /**
24
- * @type {PluginOptions}
25
- */
26
- const validOptionsWithOptionals = {
27
- nunjucks: {
28
- baseLayoutPath: 'dxt-devtool-baselayout.html',
29
- paths: ['src/server/devserver']
30
- },
31
- viewContext: () => {
32
- return { hello: 'world' }
33
- },
34
- baseUrl: 'http://localhost:3009',
35
- saveAndExit: (request, h) => h.redirect('/save-and-exit')
36
- }
37
-
38
- expect(validatePluginOptions(validOptionsWithOptionals)).toEqual(
39
- validOptionsWithOptionals
40
- )
41
- })
42
-
43
- /**
44
- * tsc would usually check compliance with the type, but given a user might be using plain JS we still want a test
45
- */
46
- it('fails if a required attribute is missing', () => {
47
- const invalidOptions =
48
- /** @type {PluginOptions} testing without viewContext */ ({
49
- nunjucks: {
50
- baseLayoutPath: 'dxt-devtool-baselayout.html',
51
- paths: ['src/server/devserver'] // custom layout to make it really clear this is not the same as the runner
52
- }
53
- })
54
-
55
- expect(() => validatePluginOptions(invalidOptions)).toThrow(
56
- 'Invalid plugin options'
57
- )
58
- })
59
- })
60
-
61
- /**
62
- * @import { PluginOptions } from '~/src/server/plugins/engine/types.js'
63
- */