@defra/forms-engine-plugin 4.7.2 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/.public/javascripts/shared.min.js +1 -1
  2. package/.public/javascripts/shared.min.js.map +1 -1
  3. package/.server/client/javascripts/geospatial-map.d.ts +6 -6
  4. package/.server/client/javascripts/geospatial-map.js +3 -3
  5. package/.server/client/javascripts/location-map.d.ts +1 -1
  6. package/.server/client/javascripts/location-map.js +1 -1
  7. package/.server/client/javascripts/map.d.ts +5 -1
  8. package/.server/client/javascripts/map.js +10 -2
  9. package/.server/client/javascripts/map.js.map +1 -1
  10. package/.server/client/javascripts/shared.d.ts +7 -7
  11. package/.server/server/index.d.ts +1 -1
  12. package/.server/server/plugins/crumb.d.ts +1 -1
  13. package/.server/server/plugins/engine/beta/form-context.d.ts +6 -6
  14. package/.server/server/plugins/engine/components/AutocompleteField.d.ts +4 -4
  15. package/.server/server/plugins/engine/components/CheckboxesField.d.ts +2 -2
  16. package/.server/server/plugins/engine/components/CheckboxesField.js +2 -2
  17. package/.server/server/plugins/engine/components/CheckboxesField.js.map +1 -1
  18. package/.server/server/plugins/engine/components/ComponentBase.d.ts +5 -5
  19. package/.server/server/plugins/engine/components/ComponentCollection.d.ts +8 -8
  20. package/.server/server/plugins/engine/components/DatePartsField.d.ts +11 -11
  21. package/.server/server/plugins/engine/components/DeclarationField.d.ts +3 -3
  22. package/.server/server/plugins/engine/components/Details.d.ts +1 -1
  23. package/.server/server/plugins/engine/components/EastingNorthingField.d.ts +22 -22
  24. package/.server/server/plugins/engine/components/EmailAddressField.d.ts +4 -4
  25. package/.server/server/plugins/engine/components/FileUploadField.d.ts +3 -3
  26. package/.server/server/plugins/engine/components/FormComponent.d.ts +10 -10
  27. package/.server/server/plugins/engine/components/GeospatialField.d.ts +6 -6
  28. package/.server/server/plugins/engine/components/HiddenField.d.ts +2 -2
  29. package/.server/server/plugins/engine/components/Html.d.ts +1 -1
  30. package/.server/server/plugins/engine/components/InsetText.d.ts +1 -1
  31. package/.server/server/plugins/engine/components/LatLongField.d.ts +22 -22
  32. package/.server/server/plugins/engine/components/List.d.ts +8 -8
  33. package/.server/server/plugins/engine/components/ListFormComponent.d.ts +10 -10
  34. package/.server/server/plugins/engine/components/LocationFieldBase.d.ts +6 -6
  35. package/.server/server/plugins/engine/components/LocationFieldHelpers.d.ts +14 -14
  36. package/.server/server/plugins/engine/components/Markdown.d.ts +1 -1
  37. package/.server/server/plugins/engine/components/MonthYearField.d.ts +11 -11
  38. package/.server/server/plugins/engine/components/MultilineTextField.d.ts +5 -5
  39. package/.server/server/plugins/engine/components/NationalGridFieldNumberField.d.ts +1 -1
  40. package/.server/server/plugins/engine/components/NumberField.d.ts +3 -3
  41. package/.server/server/plugins/engine/components/OsGridRefField.d.ts +1 -1
  42. package/.server/server/plugins/engine/components/PaymentField.d.ts +12 -12
  43. package/.server/server/plugins/engine/components/RadiosField.d.ts +1 -1
  44. package/.server/server/plugins/engine/components/SelectField.d.ts +4 -4
  45. package/.server/server/plugins/engine/components/SelectionControlField.d.ts +10 -10
  46. package/.server/server/plugins/engine/components/TelephoneNumberField.d.ts +4 -4
  47. package/.server/server/plugins/engine/components/TextField.d.ts +2 -2
  48. package/.server/server/plugins/engine/components/UkAddressField.d.ts +11 -11
  49. package/.server/server/plugins/engine/components/YesNoField.d.ts +2 -2
  50. package/.server/server/plugins/engine/components/helpers/__stubs__/geospatial.d.ts +1 -1
  51. package/.server/server/plugins/engine/components/helpers/components.d.ts +5 -5
  52. package/.server/server/plugins/engine/components/helpers/geospatial.d.ts +1 -1
  53. package/.server/server/plugins/engine/components/index.d.ts +27 -27
  54. package/.server/server/plugins/engine/components/types.d.ts +1 -1
  55. package/.server/server/plugins/engine/configureEnginePlugin.d.ts +4 -4
  56. package/.server/server/plugins/engine/date-helper.d.ts +1 -1
  57. package/.server/server/plugins/engine/helpers.d.ts +8 -8
  58. package/.server/server/plugins/engine/index.d.ts +5 -5
  59. package/.server/server/plugins/engine/models/FormModel.d.ts +6 -6
  60. package/.server/server/plugins/engine/models/SummaryViewModel.d.ts +6 -6
  61. package/.server/server/plugins/engine/models/index.d.ts +2 -2
  62. package/.server/server/plugins/engine/models/types.d.ts +4 -4
  63. package/.server/server/plugins/engine/options.d.ts +1 -1
  64. package/.server/server/plugins/engine/options.js +1 -1
  65. package/.server/server/plugins/engine/options.test.js +1 -1
  66. package/.server/server/plugins/engine/outputFormatters/adapter/v1.d.ts +4 -4
  67. package/.server/server/plugins/engine/outputFormatters/human/v1.d.ts +4 -4
  68. package/.server/server/plugins/engine/outputFormatters/index.d.ts +5 -5
  69. package/.server/server/plugins/engine/outputFormatters/machine/v1.d.ts +4 -4
  70. package/.server/server/plugins/engine/outputFormatters/machine/v2.d.ts +4 -4
  71. package/.server/server/plugins/engine/pageControllers/FileUploadPageController.d.ts +8 -8
  72. package/.server/server/plugins/engine/pageControllers/PageController.d.ts +6 -6
  73. package/.server/server/plugins/engine/pageControllers/QuestionPageController.d.ts +8 -8
  74. package/.server/server/plugins/engine/pageControllers/RepeatPageController.d.ts +5 -5
  75. package/.server/server/plugins/engine/pageControllers/StartPageController.d.ts +4 -4
  76. package/.server/server/plugins/engine/pageControllers/StatusPageController.d.ts +4 -4
  77. package/.server/server/plugins/engine/pageControllers/SummaryPageController.d.ts +5 -5
  78. package/.server/server/plugins/engine/pageControllers/TerminalPageController.d.ts +3 -3
  79. package/.server/server/plugins/engine/pageControllers/__stubs__/request.d.ts +2 -2
  80. package/.server/server/plugins/engine/pageControllers/errors.d.ts +1 -1
  81. package/.server/server/plugins/engine/pageControllers/helpers/pages.d.ts +2 -2
  82. package/.server/server/plugins/engine/pageControllers/helpers/state.d.ts +5 -5
  83. package/.server/server/plugins/engine/pageControllers/helpers/state.js +1 -1
  84. package/.server/server/plugins/engine/pageControllers/helpers/state.js.map +1 -1
  85. package/.server/server/plugins/engine/pageControllers/helpers/submission.d.ts +1 -1
  86. package/.server/server/plugins/engine/pageControllers/index.d.ts +7 -7
  87. package/.server/server/plugins/engine/plugin.d.ts +1 -1
  88. package/.server/server/plugins/engine/routes/file-upload.d.ts +1 -1
  89. package/.server/server/plugins/engine/routes/index.d.ts +3 -3
  90. package/.server/server/plugins/engine/routes/payment-helper.d.ts +3 -3
  91. package/.server/server/plugins/engine/routes/payment-helper.js +2 -2
  92. package/.server/server/plugins/engine/routes/payment.js +5 -5
  93. package/.server/server/plugins/engine/routes/payment.test.js +1 -1
  94. package/.server/server/plugins/engine/routes/questions.d.ts +2 -2
  95. package/.server/server/plugins/engine/routes/repeaters/item-delete.d.ts +2 -2
  96. package/.server/server/plugins/engine/routes/repeaters/summary.d.ts +2 -2
  97. package/.server/server/plugins/engine/services/index.d.ts +3 -3
  98. package/.server/server/plugins/engine/services/notifyService.d.ts +4 -4
  99. package/.server/server/plugins/engine/services/uploadService.d.ts +2 -2
  100. package/.server/server/plugins/engine/services/uploadService.js +1 -1
  101. package/.server/server/plugins/engine/types/index.d.ts +10 -10
  102. package/.server/server/plugins/engine/types/schema.d.ts +1 -1
  103. package/.server/server/plugins/engine/types.d.ts +25 -16
  104. package/.server/server/plugins/engine/types.js.map +1 -1
  105. package/.server/server/plugins/engine/validationHelpers.d.ts +2 -2
  106. package/.server/server/plugins/engine/vision.d.ts +1 -1
  107. package/.server/server/plugins/map/index.d.ts +1 -1
  108. package/.server/server/plugins/map/index.js +1 -1
  109. package/.server/server/plugins/map/routes/get-os-token.d.ts +11 -1
  110. package/.server/server/plugins/map/routes/get-os-token.js +12 -2
  111. package/.server/server/plugins/map/routes/get-os-token.js.map +1 -1
  112. package/.server/server/plugins/map/routes/index.d.ts +4 -4
  113. package/.server/server/plugins/map/routes/index.js +3 -2
  114. package/.server/server/plugins/map/routes/index.js.map +1 -1
  115. package/.server/server/plugins/map/routes/vts/esri-aerial.json +23 -0
  116. package/.server/server/plugins/map/service.d.ts +1 -1
  117. package/.server/server/plugins/map/service.js +5 -2
  118. package/.server/server/plugins/map/service.js.map +1 -1
  119. package/.server/server/plugins/map/test/__stubs__/find.d.ts +1 -1
  120. package/.server/server/plugins/map/test/__stubs__/find.js +1 -1
  121. package/.server/server/plugins/nunjucks/context.d.ts +2 -2
  122. package/.server/server/plugins/nunjucks/context.js +2 -2
  123. package/.server/server/plugins/nunjucks/context.test.js +1 -1
  124. package/.server/server/plugins/nunjucks/enviroment.test.js +1 -1
  125. package/.server/server/plugins/nunjucks/environment.d.ts +3 -3
  126. package/.server/server/plugins/nunjucks/environment.js +3 -3
  127. package/.server/server/plugins/nunjucks/filters/answer.d.ts +1 -1
  128. package/.server/server/plugins/nunjucks/filters/answer.js +2 -2
  129. package/.server/server/plugins/nunjucks/filters/answer.test.js +1 -1
  130. package/.server/server/plugins/nunjucks/filters/evaluate.d.ts +1 -1
  131. package/.server/server/plugins/nunjucks/filters/evaluate.js +1 -1
  132. package/.server/server/plugins/nunjucks/filters/field.d.ts +1 -1
  133. package/.server/server/plugins/nunjucks/filters/field.js +1 -1
  134. package/.server/server/plugins/nunjucks/filters/field.test.js +1 -1
  135. package/.server/server/plugins/nunjucks/filters/href.d.ts +1 -1
  136. package/.server/server/plugins/nunjucks/filters/href.js +1 -1
  137. package/.server/server/plugins/nunjucks/filters/href.test.js +1 -1
  138. package/.server/server/plugins/nunjucks/filters/index.d.ts +8 -8
  139. package/.server/server/plugins/nunjucks/filters/page.d.ts +1 -1
  140. package/.server/server/plugins/nunjucks/filters/page.js +1 -1
  141. package/.server/server/plugins/nunjucks/filters/page.test.js +1 -1
  142. package/.server/server/plugins/nunjucks/index.d.ts +3 -3
  143. package/.server/server/plugins/nunjucks/render.d.ts +2 -2
  144. package/.server/server/plugins/nunjucks/render.js +1 -1
  145. package/.server/server/plugins/nunjucks/types.d.ts +1 -1
  146. package/.server/server/plugins/nunjucks/types.js +1 -1
  147. package/.server/server/plugins/payment/helper.d.ts +2 -2
  148. package/.server/server/plugins/payment/helper.js +1 -1
  149. package/.server/server/plugins/payment/service.d.ts +3 -3
  150. package/.server/server/plugins/payment/service.js +1 -1
  151. package/.server/server/plugins/postcode-lookup/index.d.ts +1 -1
  152. package/.server/server/plugins/postcode-lookup/index.js +1 -1
  153. package/.server/server/plugins/postcode-lookup/models/index.d.ts +6 -6
  154. package/.server/server/plugins/postcode-lookup/models/index.js +1 -1
  155. package/.server/server/plugins/postcode-lookup/routes/index.d.ts +6 -6
  156. package/.server/server/plugins/postcode-lookup/routes/index.js +15 -15
  157. package/.server/server/plugins/postcode-lookup/routes/index.js.map +1 -1
  158. package/.server/server/plugins/postcode-lookup/service.d.ts +1 -1
  159. package/.server/server/plugins/postcode-lookup/service.js +5 -2
  160. package/.server/server/plugins/postcode-lookup/service.js.map +1 -1
  161. package/.server/server/plugins/postcode-lookup/types.js +1 -1
  162. package/.server/server/routes/index.d.ts +2 -2
  163. package/.server/server/routes/types.d.ts +1 -1
  164. package/.server/server/schemas/index.d.ts +2 -2
  165. package/.server/server/services/cacheService.d.ts +8 -8
  166. package/.server/server/services/cacheService.js +2 -5
  167. package/.server/server/services/cacheService.js.map +1 -1
  168. package/.server/server/services/httpService.test.js +1 -1
  169. package/.server/server/services/index.d.ts +1 -1
  170. package/.server/server/types.d.ts +7 -7
  171. package/.server/server/utils/file-form-service.d.ts +2 -2
  172. package/.server/server/utils/file-form-service.js +1 -1
  173. package/package.json +8 -4
  174. package/src/client/javascripts/application.js +1 -1
  175. package/src/client/javascripts/geospatial-map.js +4 -4
  176. package/src/client/javascripts/location-map.js +2 -2
  177. package/src/client/javascripts/map.js +13 -4
  178. package/src/client/javascripts/shared.js +7 -7
  179. package/src/index.ts +3 -3
  180. package/src/server/common/helpers/logging/logger-options.ts +1 -1
  181. package/src/server/common/helpers/logging/logger.ts +1 -1
  182. package/src/server/common/helpers/logging/request-logger.ts +1 -1
  183. package/src/server/common/helpers/logging/request-tracing.js +1 -1
  184. package/src/server/common/helpers/redis-client.js +2 -2
  185. package/src/server/index.ts +13 -13
  186. package/src/server/plugins/crumb.ts +2 -2
  187. package/src/server/plugins/engine/beta/form-context.ts +9 -9
  188. package/src/server/plugins/engine/components/AutocompleteField.ts +3 -3
  189. package/src/server/plugins/engine/components/CheckboxesField.ts +7 -8
  190. package/src/server/plugins/engine/components/ComponentBase.ts +5 -5
  191. package/src/server/plugins/engine/components/ComponentCollection.ts +9 -9
  192. package/src/server/plugins/engine/components/DatePartsField.ts +8 -8
  193. package/src/server/plugins/engine/components/DeclarationField.ts +3 -3
  194. package/src/server/plugins/engine/components/Details.ts +1 -1
  195. package/src/server/plugins/engine/components/EastingNorthingField.ts +9 -9
  196. package/src/server/plugins/engine/components/EmailAddressField.ts +3 -3
  197. package/src/server/plugins/engine/components/FileUploadField.ts +6 -6
  198. package/src/server/plugins/engine/components/FormComponent.ts +4 -4
  199. package/src/server/plugins/engine/components/GeospatialField.ts +5 -5
  200. package/src/server/plugins/engine/components/HiddenField.ts +4 -4
  201. package/src/server/plugins/engine/components/Html.ts +1 -1
  202. package/src/server/plugins/engine/components/InsetText.ts +1 -1
  203. package/src/server/plugins/engine/components/LatLongField.ts +9 -9
  204. package/src/server/plugins/engine/components/List.ts +2 -2
  205. package/src/server/plugins/engine/components/ListFormComponent.ts +4 -4
  206. package/src/server/plugins/engine/components/LocationFieldBase.ts +5 -5
  207. package/src/server/plugins/engine/components/LocationFieldHelpers.ts +5 -5
  208. package/src/server/plugins/engine/components/Markdown.ts +1 -1
  209. package/src/server/plugins/engine/components/MonthYearField.ts +8 -8
  210. package/src/server/plugins/engine/components/MultilineTextField.ts +4 -4
  211. package/src/server/plugins/engine/components/NationalGridFieldNumberField.ts +2 -2
  212. package/src/server/plugins/engine/components/NumberField.ts +3 -3
  213. package/src/server/plugins/engine/components/OsGridRefField.ts +2 -2
  214. package/src/server/plugins/engine/components/PaymentField.ts +8 -8
  215. package/src/server/plugins/engine/components/RadiosField.ts +1 -1
  216. package/src/server/plugins/engine/components/SelectField.ts +2 -2
  217. package/src/server/plugins/engine/components/SelectionControlField.ts +4 -4
  218. package/src/server/plugins/engine/components/TelephoneNumberField.ts +4 -4
  219. package/src/server/plugins/engine/components/TextField.ts +3 -3
  220. package/src/server/plugins/engine/components/UkAddressField.ts +7 -7
  221. package/src/server/plugins/engine/components/YesNoField.ts +5 -5
  222. package/src/server/plugins/engine/components/helpers/__stubs__/geospatial.ts +1 -1
  223. package/src/server/plugins/engine/components/helpers/components.ts +8 -8
  224. package/src/server/plugins/engine/components/helpers/geospatial.ts +1 -1
  225. package/src/server/plugins/engine/components/index.ts +27 -27
  226. package/src/server/plugins/engine/components/types.ts +1 -1
  227. package/src/server/plugins/engine/configureEnginePlugin.ts +10 -10
  228. package/src/server/plugins/engine/date-helper.ts +1 -1
  229. package/src/server/plugins/engine/helpers.ts +8 -8
  230. package/src/server/plugins/engine/index.ts +8 -8
  231. package/src/server/plugins/engine/models/FormModel.ts +15 -15
  232. package/src/server/plugins/engine/models/SummaryViewModel.ts +10 -10
  233. package/src/server/plugins/engine/models/index.ts +2 -2
  234. package/src/server/plugins/engine/models/types.ts +4 -4
  235. package/src/server/plugins/engine/options.js +3 -3
  236. package/src/server/plugins/engine/outputFormatters/adapter/v1.ts +6 -6
  237. package/src/server/plugins/engine/outputFormatters/human/v1.ts +9 -9
  238. package/src/server/plugins/engine/outputFormatters/index.ts +8 -8
  239. package/src/server/plugins/engine/outputFormatters/machine/v1.ts +7 -7
  240. package/src/server/plugins/engine/outputFormatters/machine/v2.ts +6 -6
  241. package/src/server/plugins/engine/pageControllers/FileUploadPageController.ts +9 -9
  242. package/src/server/plugins/engine/pageControllers/PageController.ts +7 -7
  243. package/src/server/plugins/engine/pageControllers/QuestionPageController.ts +13 -13
  244. package/src/server/plugins/engine/pageControllers/RepeatPageController.ts +6 -6
  245. package/src/server/plugins/engine/pageControllers/StartPageController.ts +3 -3
  246. package/src/server/plugins/engine/pageControllers/StatusPageController.ts +5 -5
  247. package/src/server/plugins/engine/pageControllers/SummaryPageController.ts +12 -12
  248. package/src/server/plugins/engine/pageControllers/TerminalPageController.ts +3 -3
  249. package/src/server/plugins/engine/pageControllers/__stubs__/request.ts +3 -3
  250. package/src/server/plugins/engine/pageControllers/__stubs__/server.ts +2 -2
  251. package/src/server/plugins/engine/pageControllers/errors.ts +1 -1
  252. package/src/server/plugins/engine/pageControllers/helpers/pages.ts +2 -2
  253. package/src/server/plugins/engine/pageControllers/helpers/state.ts +9 -9
  254. package/src/server/plugins/engine/pageControllers/helpers/submission.ts +5 -5
  255. package/src/server/plugins/engine/pageControllers/index.ts +7 -7
  256. package/src/server/plugins/engine/pageControllers/validationOptions.ts +1 -1
  257. package/src/server/plugins/engine/plugin.ts +14 -14
  258. package/src/server/plugins/engine/routes/file-upload.ts +2 -2
  259. package/src/server/plugins/engine/routes/index.ts +10 -10
  260. package/src/server/plugins/engine/routes/payment-helper.js +4 -4
  261. package/src/server/plugins/engine/routes/payment.js +9 -9
  262. package/src/server/plugins/engine/routes/questions.ts +10 -10
  263. package/src/server/plugins/engine/routes/repeaters/item-delete.ts +6 -6
  264. package/src/server/plugins/engine/routes/repeaters/summary.ts +5 -5
  265. package/src/server/plugins/engine/services/formSubmissionService.js +2 -2
  266. package/src/server/plugins/engine/services/index.js +3 -3
  267. package/src/server/plugins/engine/services/localFormsService.js +2 -2
  268. package/src/server/plugins/engine/services/notifyService.ts +9 -9
  269. package/src/server/plugins/engine/services/uploadService.js +3 -3
  270. package/src/server/plugins/engine/types/index.ts +10 -10
  271. package/src/server/plugins/engine/types/schema.ts +2 -2
  272. package/src/server/plugins/engine/types.ts +22 -17
  273. package/src/server/plugins/engine/validationHelpers.ts +3 -3
  274. package/src/server/plugins/engine/vision.ts +3 -3
  275. package/src/server/plugins/map/index.js +2 -2
  276. package/src/server/plugins/map/routes/get-os-token.js +15 -3
  277. package/src/server/plugins/map/routes/index.js +7 -5
  278. package/src/server/plugins/map/routes/vts/esri-aerial.json +23 -0
  279. package/src/server/plugins/map/service.js +7 -4
  280. package/src/server/plugins/map/test/__stubs__/find.js +1 -1
  281. package/src/server/plugins/nunjucks/context.js +5 -5
  282. package/src/server/plugins/nunjucks/environment.js +6 -6
  283. package/src/server/plugins/nunjucks/filters/answer.js +3 -3
  284. package/src/server/plugins/nunjucks/filters/evaluate.js +2 -2
  285. package/src/server/plugins/nunjucks/filters/field.js +1 -1
  286. package/src/server/plugins/nunjucks/filters/href.js +2 -2
  287. package/src/server/plugins/nunjucks/filters/index.js +8 -8
  288. package/src/server/plugins/nunjucks/filters/page.js +1 -1
  289. package/src/server/plugins/nunjucks/index.js +3 -3
  290. package/src/server/plugins/nunjucks/plugin.js +3 -3
  291. package/src/server/plugins/nunjucks/render.js +2 -2
  292. package/src/server/plugins/nunjucks/types.js +1 -1
  293. package/src/server/plugins/payment/helper.js +2 -2
  294. package/src/server/plugins/payment/service.js +4 -4
  295. package/src/server/plugins/postcode-lookup/index.js +2 -2
  296. package/src/server/plugins/postcode-lookup/models/index.js +3 -3
  297. package/src/server/plugins/postcode-lookup/routes/index.js +24 -14
  298. package/src/server/plugins/postcode-lookup/service.js +7 -4
  299. package/src/server/plugins/postcode-lookup/types.js +1 -1
  300. package/src/server/plugins/session.ts +1 -1
  301. package/src/server/routes/index.ts +2 -2
  302. package/src/server/routes/public.ts +1 -1
  303. package/src/server/routes/types.ts +1 -1
  304. package/src/server/schemas/index.ts +2 -2
  305. package/src/server/secure-context.js +1 -1
  306. package/src/server/services/cacheService.ts +13 -18
  307. package/src/server/services/httpService.ts +1 -1
  308. package/src/server/services/index.ts +1 -1
  309. package/src/server/types.ts +7 -7
  310. package/src/server/utils/notify.ts +2 -2
  311. package/src/server/utils/utils.js +1 -1
  312. package/src/typings/hapi/index.d.ts +4 -4
  313. package/src/typings/joi/index.d.ts +1 -1
  314. package/src/server/common/helpers/logging/logger-options.test.ts +0 -50
  315. package/src/server/index.test.ts +0 -644
  316. package/src/server/plugins/engine/beta/form-context.test.ts +0 -373
  317. package/src/server/plugins/engine/components/AutocompleteField.test.ts +0 -362
  318. package/src/server/plugins/engine/components/CheckboxesField.test.ts +0 -486
  319. package/src/server/plugins/engine/components/DatePartsField.test.ts +0 -927
  320. package/src/server/plugins/engine/components/DeclarationField.test.ts +0 -560
  321. package/src/server/plugins/engine/components/Details.test.ts +0 -49
  322. package/src/server/plugins/engine/components/EastingNorthingField.test.ts +0 -727
  323. package/src/server/plugins/engine/components/EmailAddressField.test.ts +0 -445
  324. package/src/server/plugins/engine/components/FileUploadField.test.ts +0 -1079
  325. package/src/server/plugins/engine/components/GeospatialField.test.ts +0 -380
  326. package/src/server/plugins/engine/components/HiddenField.test.ts +0 -188
  327. package/src/server/plugins/engine/components/Html.test.ts +0 -48
  328. package/src/server/plugins/engine/components/InsetText.test.ts +0 -48
  329. package/src/server/plugins/engine/components/LatLongField.test.ts +0 -898
  330. package/src/server/plugins/engine/components/List.test.ts +0 -79
  331. package/src/server/plugins/engine/components/LocationFieldBase.test.ts +0 -253
  332. package/src/server/plugins/engine/components/LocationFieldHelpers.test.ts +0 -743
  333. package/src/server/plugins/engine/components/Markdown.test.ts +0 -48
  334. package/src/server/plugins/engine/components/MonthYearField.test.ts +0 -617
  335. package/src/server/plugins/engine/components/MultilineTextField.test.ts +0 -647
  336. package/src/server/plugins/engine/components/NationalGridFieldNumberField.test.ts +0 -449
  337. package/src/server/plugins/engine/components/NumberField.test.ts +0 -723
  338. package/src/server/plugins/engine/components/OsGridRefField.test.ts +0 -460
  339. package/src/server/plugins/engine/components/PaymentField.test.ts +0 -745
  340. package/src/server/plugins/engine/components/RadiosField.test.ts +0 -297
  341. package/src/server/plugins/engine/components/SelectField.test.ts +0 -289
  342. package/src/server/plugins/engine/components/TelephoneNumberField.test.ts +0 -384
  343. package/src/server/plugins/engine/components/TextField.test.ts +0 -521
  344. package/src/server/plugins/engine/components/UkAddressField.test.ts +0 -806
  345. package/src/server/plugins/engine/components/YesNoField.test.ts +0 -256
  346. package/src/server/plugins/engine/components/helpers/components.test.ts +0 -399
  347. package/src/server/plugins/engine/components/helpers/geospatial.test.js +0 -55
  348. package/src/server/plugins/engine/components/helpers/helpers.test.ts +0 -219
  349. package/src/server/plugins/engine/date-helper.test.ts +0 -47
  350. package/src/server/plugins/engine/helpers.test.ts +0 -868
  351. package/src/server/plugins/engine/models/FormModel.test.ts +0 -725
  352. package/src/server/plugins/engine/models/SummaryViewModel.test.ts +0 -472
  353. package/src/server/plugins/engine/options.test.js +0 -63
  354. package/src/server/plugins/engine/outputFormatters/adapter/v1.location.test.ts +0 -356
  355. package/src/server/plugins/engine/outputFormatters/adapter/v1.test.ts +0 -871
  356. package/src/server/plugins/engine/outputFormatters/human/v1.payment.test.ts +0 -147
  357. package/src/server/plugins/engine/outputFormatters/human/v1.test.ts +0 -145
  358. package/src/server/plugins/engine/outputFormatters/index.test.ts +0 -17
  359. package/src/server/plugins/engine/outputFormatters/machine/v1.test.ts +0 -268
  360. package/src/server/plugins/engine/outputFormatters/machine/v2.location.test.ts +0 -341
  361. package/src/server/plugins/engine/outputFormatters/machine/v2.payment.test.ts +0 -115
  362. package/src/server/plugins/engine/outputFormatters/machine/v2.test.ts +0 -311
  363. package/src/server/plugins/engine/pageControllers/FileUploadPageController.test.ts +0 -1372
  364. package/src/server/plugins/engine/pageControllers/PageController.test.ts +0 -246
  365. package/src/server/plugins/engine/pageControllers/QuestionPageController.test.ts +0 -1686
  366. package/src/server/plugins/engine/pageControllers/RepeatPageController.test.ts +0 -279
  367. package/src/server/plugins/engine/pageControllers/StartPageController.test.ts +0 -32
  368. package/src/server/plugins/engine/pageControllers/StatusPageController.test.ts +0 -32
  369. package/src/server/plugins/engine/pageControllers/SummaryPageController.test.ts +0 -89
  370. package/src/server/plugins/engine/pageControllers/TerminalController.test.ts +0 -37
  371. package/src/server/plugins/engine/pageControllers/errors.test.ts +0 -78
  372. package/src/server/plugins/engine/pageControllers/helpers/helpers.test.ts +0 -182
  373. package/src/server/plugins/engine/pageControllers/helpers/state.test.ts +0 -359
  374. package/src/server/plugins/engine/pageControllers/helpers/submission.test.ts +0 -373
  375. package/src/server/plugins/engine/referenceNumbers.test.ts +0 -74
  376. package/src/server/plugins/engine/routes/index.test.ts +0 -332
  377. package/src/server/plugins/engine/routes/payment-helper.test.js +0 -136
  378. package/src/server/plugins/engine/routes/payment.test.js +0 -180
  379. package/src/server/plugins/engine/routes/questions.test.ts +0 -502
  380. package/src/server/plugins/engine/routes/repeaters/item-delete.test.ts +0 -83
  381. package/src/server/plugins/engine/routes/repeaters/summary.test.ts +0 -75
  382. package/src/server/plugins/engine/services/formsService.test.js +0 -26
  383. package/src/server/plugins/engine/services/notifyService.test.ts +0 -310
  384. package/src/server/plugins/engine/types/schema.test.ts +0 -234
  385. package/src/server/plugins/engine/views/components/service-banner/template.test.js +0 -43
  386. package/src/server/plugins/engine/views/components/tag-env/template.test.js +0 -28
  387. package/src/server/plugins/engine/views/partials/preview-banner.test.js +0 -122
  388. package/src/server/plugins/map/routes/get-os-token.test.js +0 -55
  389. package/src/server/plugins/map/service.test.js +0 -144
  390. package/src/server/plugins/nunjucks/context.test.js +0 -109
  391. package/src/server/plugins/nunjucks/enviroment.test.js +0 -207
  392. package/src/server/plugins/nunjucks/filters/answer.test.js +0 -92
  393. package/src/server/plugins/nunjucks/filters/field.test.js +0 -75
  394. package/src/server/plugins/nunjucks/filters/href.test.js +0 -80
  395. package/src/server/plugins/nunjucks/filters/merge.test.js +0 -15
  396. package/src/server/plugins/nunjucks/filters/page.test.js +0 -65
  397. package/src/server/plugins/payment/helper.test.js +0 -29
  398. package/src/server/plugins/payment/service.test.js +0 -218
  399. package/src/server/plugins/postcode-lookup/service.test.js +0 -177
  400. package/src/server/postcode-lookup.test.ts +0 -64
  401. package/src/server/routes/dummy-api.test.ts +0 -97
  402. package/src/server/services/cacheService.test.ts +0 -308
  403. package/src/server/services/httpService.test.js +0 -491
  404. package/src/server/utils/file-form-service.test.js +0 -127
  405. package/src/server/utils/notify.test.ts +0 -37
  406. package/src/server/utils/secure-context/get-trust-store-certs.test.js +0 -19
  407. package/src/server/utils/utils.test.js +0 -69
@@ -1,380 +0,0 @@
1
- import {
2
- ComponentType,
3
- type GeospatialFieldComponent
4
- } from '@defra/forms-model'
5
-
6
- import { ComponentCollection } from '~/src/server/plugins/engine/components/ComponentCollection.js'
7
- import { type GeospatialField } from '~/src/server/plugins/engine/components/GeospatialField.js'
8
- import {
9
- validSingleState,
10
- validState
11
- } from '~/src/server/plugins/engine/components/helpers/__stubs__/geospatial.js'
12
- import {
13
- getAnswer,
14
- type Field
15
- } from '~/src/server/plugins/engine/components/helpers/components.js'
16
- import { FormModel } from '~/src/server/plugins/engine/models/FormModel.js'
17
- import { type GeospatialState } from '~/src/server/plugins/engine/types.js'
18
- import definition from '~/test/form/definitions/blank.js'
19
- import { getFormData, getFormState } from '~/test/helpers/component-helpers.js'
20
-
21
- describe('GeospatialField', () => {
22
- let model: FormModel
23
-
24
- beforeEach(() => {
25
- model = new FormModel(definition, {
26
- basePath: 'test'
27
- })
28
- })
29
-
30
- describe('Defaults', () => {
31
- let def: GeospatialFieldComponent
32
- let collection: ComponentCollection
33
- let field: Field
34
-
35
- beforeEach(() => {
36
- def = {
37
- title: 'Example geospatial title',
38
- shortDescription: 'Example geospatial',
39
- name: 'myComponent',
40
- type: ComponentType.GeospatialField,
41
- options: {}
42
- } satisfies GeospatialFieldComponent
43
-
44
- collection = new ComponentCollection([def], { model })
45
- field = collection.fields[0]
46
- })
47
-
48
- describe('Schema', () => {
49
- it('uses component short description as label', () => {
50
- const { formSchema } = collection
51
- const { keys } = formSchema.describe()
52
-
53
- expect(keys).toHaveProperty(
54
- 'myComponent',
55
- expect.objectContaining({
56
- flags: expect.objectContaining({
57
- label: 'Example geospatial'
58
- })
59
- })
60
- )
61
- })
62
-
63
- it('uses component name as keys', () => {
64
- const { formSchema } = collection
65
- const { keys } = formSchema.describe()
66
-
67
- expect(field.keys).toEqual(['myComponent'])
68
- expect(field.collection).toBeUndefined()
69
-
70
- for (const key of field.keys) {
71
- expect(keys).toHaveProperty(key)
72
- }
73
- })
74
-
75
- it('is required by default', () => {
76
- const { formSchema } = collection
77
- const { keys } = formSchema.describe()
78
-
79
- expect(keys).toHaveProperty(
80
- 'myComponent',
81
- expect.objectContaining({
82
- flags: expect.objectContaining({
83
- presence: 'required'
84
- })
85
- })
86
- )
87
- })
88
-
89
- it('is optional when configured', () => {
90
- const collectionOptional = new ComponentCollection(
91
- [{ ...def, options: { required: false } }],
92
- { model }
93
- )
94
-
95
- const result = collectionOptional.validate(getFormData('[]'))
96
- expect(result.errors).toBeUndefined()
97
-
98
- const result2 = collectionOptional.validate(getFormData([]))
99
- expect(result2.errors).toBeUndefined()
100
- })
101
-
102
- it('accepts valid values', () => {
103
- const result1 = collection.validate(getFormData(validState))
104
-
105
- expect(result1.errors).toBeUndefined()
106
- })
107
-
108
- it('adds errors for empty value', () => {
109
- const result = collection.validate(getFormData(''))
110
-
111
- expect(result.errors).toEqual([
112
- expect.objectContaining({
113
- text: 'Select example geospatial'
114
- })
115
- ])
116
- })
117
-
118
- it('adds errors for empty value given no short description', () => {
119
- def = {
120
- title: 'Example geospatial title',
121
- name: 'myComponent',
122
- type: ComponentType.GeospatialField,
123
- options: {}
124
- } satisfies GeospatialFieldComponent
125
-
126
- collection = new ComponentCollection([def], { model })
127
- const result = collection.validate(getFormData(''))
128
-
129
- expect(result.errors).toEqual([
130
- expect.objectContaining({
131
- text: 'Select example geospatial title'
132
- })
133
- ])
134
- })
135
-
136
- it('adds errors for invalid values', () => {
137
- const result1 = collection.validate(getFormData(['invalid']))
138
- const result2 = collection.validate(
139
- // @ts-expect-error - Allow invalid param for test
140
- getFormData({ unknown: 'invalid' })
141
- )
142
-
143
- expect(result1.errors).toBeTruthy()
144
- expect(result2.errors).toBeTruthy()
145
- })
146
- })
147
-
148
- describe('State', () => {
149
- it('returns text from single feature state', () => {
150
- const state1 = getFormState(validSingleState)
151
- const state2 = getFormState(null)
152
-
153
- const answer1 = getAnswer(field, state1)
154
- const answer2 = getAnswer(field, state2)
155
-
156
- expect(answer1).toBe('Added 1 location')
157
- expect(answer2).toBe('')
158
- })
159
-
160
- it('returns text from multiple features state', () => {
161
- const state1 = getFormState(validState)
162
- const state2 = getFormState(null)
163
-
164
- const answer1 = getAnswer(field, state1)
165
- const answer2 = getAnswer(field, state2)
166
-
167
- expect(answer1).toBe('Added 4 locations')
168
- expect(answer2).toBe('')
169
- })
170
-
171
- it('returns payload from state', () => {
172
- const state1 = getFormState(validState)
173
- const state2 = getFormState(null)
174
-
175
- const payload1 = field.getFormDataFromState(state1)
176
- const payload2 = field.getFormDataFromState(state2)
177
-
178
- expect(payload1).toEqual(getFormData(validState))
179
- expect(payload2).toEqual(getFormData())
180
- })
181
-
182
- it('returns value from state', () => {
183
- const state1 = getFormState(validState)
184
- const state2 = getFormState(null)
185
-
186
- const value1 = field.getFormValueFromState(state1)
187
- const value2 = field.getFormValueFromState(state2)
188
-
189
- expect(value1).toBe(validState)
190
- expect(value2).toBeUndefined()
191
- })
192
-
193
- it('returns context for conditions and form submission', () => {
194
- const state1 = getFormState(validState)
195
- const state2 = getFormState(null)
196
-
197
- const value1 = field.getContextValueFromState(state1)
198
- const value2 = field.getContextValueFromState(state2)
199
-
200
- const { id: id1 } = validState[0]
201
- const { id: id2 } = validState[1]
202
- const { id: id3 } = validState[2]
203
- const { id: id4 } = validState[3]
204
-
205
- expect(value1).toEqual([id1, id2, id3, id4])
206
- expect(value2).toBeNull()
207
- })
208
-
209
- it('returns state from payload', () => {
210
- const payload1 = getFormData(validState)
211
- const payload2 = getFormData()
212
-
213
- const value1 = field.getStateFromValidForm(payload1)
214
- const value2 = field.getStateFromValidForm(payload2)
215
-
216
- expect(value1).toEqual(getFormState(validState))
217
- expect(value2).toEqual(getFormState(null))
218
- })
219
- })
220
-
221
- describe('View model', () => {
222
- it('sets Nunjucks component defaults', () => {
223
- const viewModel = field.getViewModel(getFormData('Geospatial'))
224
-
225
- expect(viewModel).toEqual(
226
- expect.objectContaining({
227
- label: { text: def.title },
228
- name: 'myComponent',
229
- id: 'myComponent',
230
- value: 'Geospatial'
231
- })
232
- )
233
- })
234
- })
235
-
236
- describe('AllPossibleErrors', () => {
237
- it('should return errors', () => {
238
- const errors = field.getAllPossibleErrors()
239
- expect(errors.baseErrors).not.toBeEmpty()
240
- expect(errors.advancedSettingsErrors).toBeEmpty()
241
- })
242
- })
243
- })
244
-
245
- describe('Validation', () => {
246
- describe.each([
247
- {
248
- description: 'Required',
249
- component: {
250
- title: 'Example geospatial field',
251
- name: 'myComponent',
252
- type: ComponentType.GeospatialField,
253
- options: {
254
- required: true
255
- }
256
- } satisfies GeospatialFieldComponent,
257
- assertions: [
258
- {
259
- input: getFormData([]),
260
- output: {
261
- value: getFormData([]),
262
- errors: [
263
- expect.objectContaining({
264
- text: 'Example geospatial field must contain at least 1 items'
265
- })
266
- ]
267
- }
268
- },
269
- {
270
- input: getFormData(),
271
- output: {
272
- value: getFormData(),
273
- errors: [
274
- expect.objectContaining({
275
- text: 'Select example geospatial field'
276
- })
277
- ]
278
- }
279
- },
280
- {
281
- input: getFormData(validSingleState),
282
- output: {
283
- value: getFormData(validSingleState)
284
- }
285
- },
286
- {
287
- input: getFormData(validState),
288
- output: {
289
- value: getFormData(validState)
290
- }
291
- }
292
- ]
293
- },
294
- {
295
- description: 'Optional',
296
- component: {
297
- title: 'Example geospatial field',
298
- name: 'myComponent',
299
- type: ComponentType.GeospatialField,
300
- options: {
301
- required: false
302
- }
303
- } satisfies GeospatialFieldComponent,
304
- assertions: [
305
- {
306
- input: getFormData([]),
307
- output: {
308
- value: getFormData([])
309
- }
310
- },
311
- {
312
- input: getFormData(),
313
- output: {
314
- value: getFormData(),
315
- errors: [
316
- expect.objectContaining({
317
- text: 'Select example geospatial field'
318
- })
319
- ]
320
- }
321
- }
322
- ]
323
- }
324
- ])('$description', ({ component: def, assertions }) => {
325
- let collection: ComponentCollection
326
-
327
- beforeEach(() => {
328
- collection = new ComponentCollection([def], { model })
329
- })
330
-
331
- it.each([...assertions])(
332
- 'validates custom example',
333
- ({ input, output }) => {
334
- const result = collection.validate(input)
335
- expect(result).toEqual(output)
336
- }
337
- )
338
- })
339
-
340
- it('getErrors formats description errors', () => {
341
- const component = {
342
- title: 'Example geospatial field',
343
- name: 'myComponent',
344
- type: ComponentType.GeospatialField,
345
- options: {
346
- required: true
347
- }
348
- } satisfies GeospatialFieldComponent
349
-
350
- const collection = new ComponentCollection([component], { model })
351
- const invalidSingleState: GeospatialState = [
352
- {
353
- type: 'Feature',
354
- properties: {
355
- coordinateGridReference: 'ST 00001',
356
- centroidGridReference: 'ST 00001',
357
- description: '' // Missing description should trigger error with href to description field and custom text
358
- },
359
- geometry: {
360
- coordinates: [-2.5723699109417737, 53.2380485215034],
361
- type: 'Point'
362
- },
363
- id: 'a'
364
- }
365
- ]
366
-
367
- const result = collection.validate(getFormData(invalidSingleState))
368
- const geospatialField = collection.components.at(0) as GeospatialField
369
-
370
- const errors = geospatialField.getErrors(result.errors)
371
- expect(errors).toEqual([
372
- expect.objectContaining({
373
- name: 'description',
374
- href: '#description_0',
375
- text: 'Enter description for location 1'
376
- })
377
- ])
378
- })
379
- })
380
- })
@@ -1,188 +0,0 @@
1
- import { ComponentType, type HiddenFieldComponent } from '@defra/forms-model'
2
-
3
- import { ComponentCollection } from '~/src/server/plugins/engine/components/ComponentCollection.js'
4
- import {
5
- getAnswer,
6
- type Field
7
- } from '~/src/server/plugins/engine/components/helpers/components.js'
8
- import { FormModel } from '~/src/server/plugins/engine/models/FormModel.js'
9
- import definition from '~/test/form/definitions/blank.js'
10
- import { getFormData, getFormState } from '~/test/helpers/component-helpers.js'
11
-
12
- describe('HiddenField', () => {
13
- let model: FormModel
14
-
15
- beforeEach(() => {
16
- model = new FormModel(definition, {
17
- basePath: 'test'
18
- })
19
- })
20
-
21
- describe('Defaults', () => {
22
- let def: HiddenFieldComponent
23
- let collection: ComponentCollection
24
- let field: Field
25
-
26
- beforeEach(() => {
27
- def = {
28
- title: 'Hidden field',
29
- name: 'myComponent',
30
- type: ComponentType.HiddenField,
31
- options: {}
32
- } satisfies HiddenFieldComponent
33
-
34
- collection = new ComponentCollection([def], { model })
35
- field = collection.fields[0]
36
- })
37
-
38
- describe('Schema', () => {
39
- it('uses component title as label as default', () => {
40
- const { formSchema } = collection
41
- const { keys } = formSchema.describe()
42
-
43
- expect(keys).toHaveProperty(
44
- 'myComponent',
45
- expect.objectContaining({
46
- flags: expect.objectContaining({
47
- label: 'Hidden field'
48
- })
49
- })
50
- )
51
- })
52
-
53
- it('uses component name as keys', () => {
54
- const { formSchema } = collection
55
- const { keys } = formSchema.describe()
56
-
57
- expect(field.keys).toEqual(['myComponent'])
58
- expect(field.collection).toBeUndefined()
59
-
60
- for (const key of field.keys) {
61
- expect(keys).toHaveProperty(key)
62
- }
63
- })
64
-
65
- it('is required by default', () => {
66
- const { formSchema } = collection
67
- const { keys } = formSchema.describe()
68
-
69
- expect(keys).toHaveProperty(
70
- 'myComponent',
71
- expect.objectContaining({
72
- flags: expect.objectContaining({
73
- presence: 'required'
74
- })
75
- })
76
- )
77
- })
78
- it('accepts valid values', () => {
79
- const result1 = collection.validate(getFormData('Hidden value'))
80
- const result2 = collection.validate(getFormData('Hidden value 2'))
81
-
82
- expect(result1.errors).toBeUndefined()
83
- expect(result2.errors).toBeUndefined()
84
- })
85
-
86
- it('adds errors for empty value', () => {
87
- const result = collection.validate(getFormData(''))
88
-
89
- expect(result.errors).toEqual([
90
- expect.objectContaining({
91
- text: 'Enter hidden field'
92
- })
93
- ])
94
- })
95
-
96
- it('adds errors for invalid values', () => {
97
- const result1 = collection.validate(getFormData(['invalid']))
98
- const result2 = collection.validate(
99
- // @ts-expect-error - Allow invalid param for test
100
- getFormData({ unknown: 'invalid' })
101
- )
102
-
103
- expect(result1.errors).toBeTruthy()
104
- expect(result2.errors).toBeTruthy()
105
- })
106
- })
107
-
108
- describe('State', () => {
109
- it('returns text from state', () => {
110
- const state1 = getFormState('Hidden field')
111
- const state2 = getFormState(null)
112
-
113
- const answer1 = getAnswer(field, state1)
114
- const answer2 = getAnswer(field, state2)
115
-
116
- expect(answer1).toBe('Hidden field')
117
- expect(answer2).toBe('')
118
- })
119
-
120
- it('returns payload from state', () => {
121
- const state1 = getFormState('Hidden field')
122
- const state2 = getFormState(null)
123
-
124
- const payload1 = field.getFormDataFromState(state1)
125
- const payload2 = field.getFormDataFromState(state2)
126
-
127
- expect(payload1).toEqual(getFormData('Hidden field'))
128
- expect(payload2).toEqual(getFormData())
129
- })
130
-
131
- it('returns value from state', () => {
132
- const state1 = getFormState('Hidden field')
133
- const state2 = getFormState(null)
134
-
135
- const value1 = field.getFormValueFromState(state1)
136
- const value2 = field.getFormValueFromState(state2)
137
-
138
- expect(value1).toBe('Hidden field')
139
- expect(value2).toBeUndefined()
140
- })
141
-
142
- it('returns context for conditions and form submission', () => {
143
- const state1 = getFormState('Hidden field')
144
- const state2 = getFormState(null)
145
-
146
- const value1 = field.getContextValueFromState(state1)
147
- const value2 = field.getContextValueFromState(state2)
148
-
149
- expect(value1).toBe('Hidden field')
150
- expect(value2).toBeNull()
151
- })
152
-
153
- it('returns state from payload', () => {
154
- const payload1 = getFormData('Hidden field')
155
- const payload2 = getFormData()
156
-
157
- const value1 = field.getStateFromValidForm(payload1)
158
- const value2 = field.getStateFromValidForm(payload2)
159
-
160
- expect(value1).toEqual(getFormState('Hidden field'))
161
- expect(value2).toEqual(getFormState(null))
162
- })
163
- })
164
-
165
- describe('View model', () => {
166
- it('sets Nunjucks component defaults', () => {
167
- const viewModel = field.getViewModel(getFormData('Hidden field'))
168
-
169
- expect(viewModel).toEqual(
170
- expect.objectContaining({
171
- label: { text: def.title },
172
- name: 'myComponent',
173
- id: 'myComponent',
174
- value: 'Hidden field'
175
- })
176
- )
177
- })
178
- })
179
-
180
- describe('AllPossibleErrors', () => {
181
- it('should return errors', () => {
182
- const errors = field.getAllPossibleErrors()
183
- expect(errors.baseErrors).not.toBeEmpty()
184
- expect(errors.advancedSettingsErrors).toBeEmpty()
185
- })
186
- })
187
- })
188
- })
@@ -1,48 +0,0 @@
1
- import { ComponentType, type HtmlComponent } from '@defra/forms-model'
2
-
3
- import { ComponentCollection } from '~/src/server/plugins/engine/components/ComponentCollection.js'
4
- import { type Guidance } from '~/src/server/plugins/engine/components/helpers/components.js'
5
- import { FormModel } from '~/src/server/plugins/engine/models/FormModel.js'
6
- import definition from '~/test/form/definitions/basic.js'
7
-
8
- describe('HTML', () => {
9
- let model: FormModel
10
-
11
- beforeEach(() => {
12
- model = new FormModel(definition, {
13
- basePath: 'test'
14
- })
15
- })
16
-
17
- describe('Defaults', () => {
18
- let def: HtmlComponent
19
- let collection: ComponentCollection
20
- let guidance: Guidance
21
-
22
- beforeEach(() => {
23
- def = {
24
- title: 'HTML guidance',
25
- name: 'myComponent',
26
- type: ComponentType.Html,
27
- content: '<p class="govuk-body">\nLorem ipsum dolor sit amet</p>',
28
- options: {}
29
- } satisfies HtmlComponent
30
-
31
- collection = new ComponentCollection([def], { model })
32
- guidance = collection.guidance[0]
33
- })
34
-
35
- describe('View model', () => {
36
- it('sets Nunjucks component defaults', () => {
37
- const viewModel = guidance.getViewModel()
38
-
39
- expect(viewModel).toEqual(
40
- expect.objectContaining({
41
- attributes: {},
42
- content: def.content
43
- })
44
- )
45
- })
46
- })
47
- })
48
- })
@@ -1,48 +0,0 @@
1
- import { ComponentType, type InsetTextComponent } from '@defra/forms-model'
2
-
3
- import { ComponentCollection } from '~/src/server/plugins/engine/components/ComponentCollection.js'
4
- import { type Guidance } from '~/src/server/plugins/engine/components/helpers/components.js'
5
- import { FormModel } from '~/src/server/plugins/engine/models/FormModel.js'
6
- import definition from '~/test/form/definitions/basic.js'
7
-
8
- describe('InsetText', () => {
9
- let model: FormModel
10
-
11
- beforeEach(() => {
12
- model = new FormModel(definition, {
13
- basePath: 'test'
14
- })
15
- })
16
-
17
- describe('Defaults', () => {
18
- let def: InsetTextComponent
19
- let collection: ComponentCollection
20
- let guidance: Guidance
21
-
22
- beforeEach(() => {
23
- def = {
24
- title: 'Inset text guidance',
25
- name: 'myComponent',
26
- type: ComponentType.InsetText,
27
- content: 'Lorem ipsum dolor sit amet',
28
- options: {}
29
- } satisfies InsetTextComponent
30
-
31
- collection = new ComponentCollection([def], { model })
32
- guidance = collection.guidance[0]
33
- })
34
-
35
- describe('View model', () => {
36
- it('sets Nunjucks component defaults', () => {
37
- const viewModel = guidance.getViewModel()
38
-
39
- expect(viewModel).toEqual(
40
- expect.objectContaining({
41
- attributes: {},
42
- content: def.content
43
- })
44
- )
45
- })
46
- })
47
- })
48
- })