@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,560 +0,0 @@
1
- import {
2
- ComponentType,
3
- type DeclarationFieldComponent
4
- } from '@defra/forms-model'
5
-
6
- import { ComponentCollection } from '~/src/server/plugins/engine/components/ComponentCollection.js'
7
- import { DeclarationField } from '~/src/server/plugins/engine/components/DeclarationField.js'
8
- import {
9
- getAnswer,
10
- type Field
11
- } from '~/src/server/plugins/engine/components/helpers/components.js'
12
- import { FormModel } from '~/src/server/plugins/engine/models/FormModel.js'
13
- import definition from '~/test/form/definitions/blank.js'
14
- import declarationWithGuidance from '~/test/form/definitions/declaration-with-guidance.js'
15
- import declarationWithoutGuidance from '~/test/form/definitions/declaration-without-guidance.js'
16
- import { getFormData, getFormState } from '~/test/helpers/component-helpers.js'
17
-
18
- describe('DeclarationField', () => {
19
- let model: FormModel
20
-
21
- beforeEach(() => {
22
- model = new FormModel(definition, {
23
- basePath: 'test'
24
- })
25
- })
26
-
27
- describe('Defaults', () => {
28
- let def: DeclarationFieldComponent
29
- let collection: ComponentCollection
30
- let field: Field
31
-
32
- beforeEach(() => {
33
- def = {
34
- title: 'Example Declaration Component',
35
- name: 'myComponent',
36
- content: 'Lorem ipsum dolar sit amet',
37
- shortDescription: 'Terms and conditions',
38
- type: ComponentType.DeclarationField,
39
- options: {}
40
- } satisfies DeclarationFieldComponent
41
-
42
- collection = new ComponentCollection([def], { model })
43
- field = collection.fields[0]
44
- })
45
-
46
- describe('Schema', () => {
47
- it('uses component title as label as default', () => {
48
- const { formSchema } = collection
49
- const { keys } = formSchema.describe()
50
-
51
- expect(keys).toHaveProperty(
52
- 'myComponent',
53
- expect.objectContaining({
54
- flags: expect.objectContaining({
55
- label: 'Terms and conditions'
56
- })
57
- })
58
- )
59
- })
60
-
61
- it('uses component name as keys', () => {
62
- const { formSchema } = collection
63
- const { keys } = formSchema.describe()
64
-
65
- expect(field.keys).toEqual(['myComponent'])
66
- expect(field.collection).toBeUndefined()
67
-
68
- for (const key of field.keys) {
69
- expect(keys).toHaveProperty(key)
70
- }
71
- })
72
-
73
- it('is required by default', () => {
74
- const { formSchema } = collection
75
- const { keys } = formSchema.describe()
76
-
77
- expect(keys).toHaveProperty(
78
- 'myComponent',
79
- expect.objectContaining({
80
- items: expect.arrayContaining([
81
- expect.objectContaining({
82
- allow: ['true'],
83
- flags: expect.objectContaining({
84
- presence: 'required'
85
- })
86
- })
87
- ])
88
- })
89
- )
90
- })
91
-
92
- it('may have unchecked value in addition to true', () => {
93
- const { formSchema } = collection
94
- const { keys } = formSchema.describe()
95
-
96
- expect(keys).toHaveProperty(
97
- 'myComponent',
98
- expect.objectContaining({
99
- items: expect.arrayContaining([
100
- expect.objectContaining({
101
- allow: ['unchecked'],
102
- flags: expect.objectContaining({
103
- result: 'strip'
104
- })
105
- })
106
- ])
107
- })
108
- )
109
-
110
- expect(keys).toHaveProperty(
111
- 'myComponent',
112
- expect.objectContaining({
113
- items: expect.arrayContaining([
114
- expect.objectContaining({
115
- allow: ['unchecked']
116
- })
117
- ])
118
- })
119
- )
120
- })
121
-
122
- it('is optional when configured', () => {
123
- const collectionOptional = new ComponentCollection(
124
- [{ ...def, options: { required: false } }],
125
- { model }
126
- )
127
-
128
- const { formSchema } = collectionOptional
129
- const { keys } = formSchema.describe()
130
-
131
- expect(keys).toHaveProperty(
132
- 'myComponent',
133
- expect.objectContaining({
134
- items: expect.arrayContaining([
135
- expect.objectContaining({
136
- allow: ['true'],
137
- flags: expect.not.objectContaining({
138
- presence: 'required'
139
- })
140
- })
141
- ])
142
- })
143
- )
144
-
145
- const result = collectionOptional.validate(getFormData(['unchecked']))
146
- expect(result.errors).toBeUndefined()
147
- })
148
-
149
- it('accepts valid values', () => {
150
- const result1 = collection.validate(getFormData(['unchecked', 'true']))
151
-
152
- expect(result1.errors).toBeUndefined()
153
- })
154
-
155
- it('adds errors for empty value', () => {
156
- const result = collection.validate(getFormData(['unchecked']))
157
-
158
- expect(result.errors).toEqual([
159
- expect.objectContaining({
160
- text: 'You must confirm you understand and agree with the terms and conditions to continue'
161
- })
162
- ])
163
- })
164
-
165
- it('adds errors for invalid values', () => {
166
- const result1 = collection.validate(getFormData(['invalid']))
167
- const result2 = collection.validate(
168
- // @ts-expect-error - Allow invalid param for test
169
- getFormData({ unknown: 'invalid' })
170
- )
171
- // @ts-expect-error - Allow invalid param for test
172
- const result3 = collection.validate('false')
173
-
174
- expect(result1.errors).toBeTruthy()
175
- expect(result2.errors).toBeTruthy()
176
- expect(result3.errors).toBeTruthy()
177
- })
178
- })
179
-
180
- describe('State', () => {
181
- it('returns text from state', () => {
182
- const state1 = getFormState(true)
183
- const state2 = getFormState()
184
- // context - boolean
185
- // state - boolean
186
- // string - I confirm that I understand and accept this declaration
187
- const answer1 = getAnswer(field, state1)
188
- const answer2 = getAnswer(field, state2)
189
-
190
- expect(answer1).toBe('I understand and agree')
191
- expect(answer2).toBe('Not provided')
192
- })
193
-
194
- it('returns payload from state', () => {
195
- const state1 = getFormState(true)
196
- const state2 = getFormState(null)
197
-
198
- const payload1 = field.getFormDataFromState(state1)
199
- const payload2 = field.getFormDataFromState(state2)
200
-
201
- expect(payload1).toEqual(getFormData('true'))
202
- expect(payload2).toEqual(getFormData('false'))
203
- })
204
-
205
- it('returns value from state', () => {
206
- const state1 = getFormState(true)
207
- const state2 = getFormState(null)
208
-
209
- const value1 = field.getFormValueFromState(state1)
210
- const value2 = field.getFormValueFromState(state2)
211
-
212
- expect(value1).toBe('true')
213
- expect(value2).toBe('false')
214
- })
215
-
216
- it('returns context for conditions and form submission', () => {
217
- const state1 = getFormState(true)
218
- const state2 = getFormState(null)
219
-
220
- const value1 = field.getContextValueFromState(state1)
221
- const value2 = field.getContextValueFromState(state2)
222
-
223
- expect(value1).toBe(true)
224
- expect(value2).toBe(false)
225
- })
226
-
227
- it('returns state from payload', () => {
228
- const payload1 = getFormData(['true'])
229
- const payload2 = getFormData([])
230
- const payload3 = getFormData(['unchecked'])
231
-
232
- const value1 = field.getStateFromValidForm(payload1)
233
- const value2 = field.getStateFromValidForm(payload2)
234
- const value3 = field.getStateFromValidForm(payload3)
235
-
236
- expect(value1).toEqual(getFormState(true))
237
- expect(value2).toEqual(getFormState(false))
238
- expect(value3).toEqual(getFormState(false))
239
- })
240
- })
241
-
242
- describe('View model', () => {
243
- it('sets Nunjucks component defaults', () => {
244
- const viewModel = field.getViewModel(getFormData(undefined))
245
-
246
- expect(viewModel).toEqual(
247
- expect.objectContaining({
248
- label: { text: def.title },
249
- name: 'myComponent',
250
- attributes: {},
251
- content: 'Lorem ipsum dolar sit amet',
252
- id: 'myComponent',
253
- fieldset: {
254
- legend: {
255
- text: 'Example Declaration Component',
256
- classes: 'govuk-fieldset__legend--m'
257
- }
258
- },
259
- items: [
260
- {
261
- value: 'true',
262
- text: 'I understand and agree',
263
- checked: false
264
- }
265
- ]
266
- })
267
- )
268
- })
269
-
270
- it('sets Nunjucks component to false when not checked', () => {
271
- def = {
272
- ...def,
273
- hint: 'Please read and confirm the following'
274
- } satisfies DeclarationFieldComponent
275
-
276
- collection = new ComponentCollection([def], { model })
277
- field = collection.fields[0]
278
- const viewModel = field.getViewModel(getFormData('unchecked'))
279
-
280
- expect(viewModel).toEqual(
281
- expect.objectContaining({
282
- hint: {
283
- text: 'Please read and confirm the following'
284
- },
285
- items: [
286
- {
287
- value: 'true',
288
- text: 'I understand and agree',
289
- checked: false
290
- }
291
- ]
292
- })
293
- )
294
- })
295
-
296
- it('sets Nunjucks component to true when checked from save-anbd-exit', () => {
297
- def = {
298
- ...def,
299
- hint: 'Please read and confirm the following'
300
- } satisfies DeclarationFieldComponent
301
-
302
- collection = new ComponentCollection([def], { model })
303
- field = collection.fields[0]
304
- const viewModel = field.getViewModel(getFormData(['true', 'unchecked']))
305
-
306
- expect(viewModel).toEqual(
307
- expect.objectContaining({
308
- hint: {
309
- text: 'Please read and confirm the following'
310
- },
311
- items: [
312
- {
313
- value: 'true',
314
- text: 'I understand and agree',
315
- checked: true
316
- }
317
- ]
318
- })
319
- )
320
- })
321
-
322
- it('sets Nunjucks component to false when unchecked from save-anbd-exit', () => {
323
- def = {
324
- ...def,
325
- hint: 'Please read and confirm the following'
326
- } satisfies DeclarationFieldComponent
327
-
328
- collection = new ComponentCollection([def], { model })
329
- field = collection.fields[0]
330
- const viewModel = field.getViewModel(getFormData(['unchecked']))
331
-
332
- expect(viewModel).toEqual(
333
- expect.objectContaining({
334
- hint: {
335
- text: 'Please read and confirm the following'
336
- },
337
- items: [
338
- {
339
- value: 'true',
340
- text: 'I understand and agree',
341
- checked: false
342
- }
343
- ]
344
- })
345
- )
346
- })
347
-
348
- it('sets Nunjucks component value when posted', () => {
349
- def = {
350
- ...def,
351
- hint: 'Please read and confirm the following'
352
- } satisfies DeclarationFieldComponent
353
-
354
- collection = new ComponentCollection([def], { model })
355
- field = collection.fields[0]
356
- const viewModel = field.getViewModel(getFormData('true'))
357
-
358
- expect(viewModel).toEqual(
359
- expect.objectContaining({
360
- hint: {
361
- text: 'Please read and confirm the following'
362
- },
363
- items: [
364
- {
365
- value: 'true',
366
- text: 'I understand and agree',
367
- checked: true
368
- }
369
- ]
370
- })
371
- )
372
- })
373
-
374
- it('sets custom message when in def', () => {
375
- def = {
376
- ...def,
377
- title: 'Declaration',
378
- content:
379
- 'Declaration:\n' +
380
- 'By submitting this form, I consent to the collection and processing of my personal data for the purposes described.\n' +
381
- 'I understand that my data may be shared with authorised third parties where required by law',
382
- options: {
383
- declarationConfirmationLabel:
384
- 'I consent to the processing of my personal data'
385
- }
386
- } satisfies DeclarationFieldComponent
387
-
388
- collection = new ComponentCollection([def], { model })
389
- field = collection.fields[0]
390
-
391
- const viewModel = field.getViewModel(getFormData('true'))
392
-
393
- expect(viewModel).toEqual(
394
- expect.objectContaining({
395
- items: [
396
- {
397
- value: 'true',
398
- text: 'I consent to the processing of my personal data',
399
- checked: true
400
- }
401
- ]
402
- })
403
- )
404
- })
405
-
406
- it('sets checkbox as unchecked', () => {
407
- def = {
408
- ...def,
409
- hint: 'Please read and confirm the following'
410
- } satisfies DeclarationFieldComponent
411
-
412
- collection = new ComponentCollection([def], { model })
413
- field = collection.fields[0]
414
-
415
- const viewModel = field.getViewModel(getFormData(undefined))
416
-
417
- expect(viewModel).toEqual(
418
- expect.objectContaining({
419
- items: [
420
- {
421
- value: 'true',
422
- text: 'I understand and agree',
423
- checked: false
424
- }
425
- ]
426
- })
427
- )
428
- })
429
- })
430
-
431
- describe('AllPossibleErrors', () => {
432
- it('should return errors', () => {
433
- const errors = field.getAllPossibleErrors()
434
- expect(errors.baseErrors).not.toBeEmpty()
435
- expect(errors.advancedSettingsErrors).toBeEmpty()
436
- })
437
- })
438
-
439
- describe('getFormValue', () => {
440
- test('should return correct value', () => {
441
- expect(field.getFormValue(undefined)).toBeUndefined()
442
- expect(field.getFormValue([true])).toEqual([true])
443
- expect(field.getFormValue([])).toEqual([])
444
- expect(field.getFormValue({})).toBeUndefined()
445
- })
446
- })
447
- })
448
-
449
- describe('Validation', () => {
450
- describe.each([
451
- {
452
- description: 'Default',
453
- component: {
454
- title: 'Terms and conditions',
455
- shortDescription: 'The terms and conditions',
456
- content: 'Lorem ipsum dolar sit amet',
457
- name: 'myComponent',
458
- type: ComponentType.DeclarationField,
459
- options: {}
460
- } satisfies DeclarationFieldComponent,
461
- assertions: [
462
- {
463
- input: getFormData(['unchecked', 'true']),
464
- output: {
465
- value: {
466
- myComponent: ['true']
467
- },
468
- errors: undefined
469
- }
470
- }
471
- ]
472
- },
473
- {
474
- description: 'Use short description if it exists',
475
- component: {
476
- title: 'Terms and conditions',
477
- shortDescription: 'Terms and conditions',
478
- content: 'Lorem ipsum dolar sit amet',
479
- name: 'myComponent',
480
- type: ComponentType.DeclarationField,
481
- options: {}
482
- } satisfies DeclarationFieldComponent,
483
- assertions: [
484
- {
485
- input: getFormData(['unchecked']),
486
- output: {
487
- value: { myComponent: [] },
488
- errors: [
489
- expect.objectContaining({
490
- text: 'You must confirm you understand and agree with the terms and conditions to continue'
491
- })
492
- ]
493
- }
494
- }
495
- ]
496
- },
497
- {
498
- description: 'Optional field',
499
- component: {
500
- title: 'Example text field',
501
- name: 'myComponent',
502
- content: 'Lorem ipsum dolar sit amet',
503
- type: ComponentType.DeclarationField,
504
- options: {
505
- required: false
506
- }
507
- } satisfies DeclarationFieldComponent,
508
- assertions: [
509
- {
510
- input: getFormData(['unchecked']),
511
- output: { value: { myComponent: [] } }
512
- }
513
- ]
514
- }
515
- ])('$description', ({ component: def, assertions }) => {
516
- let collection: ComponentCollection
517
-
518
- beforeEach(() => {
519
- collection = new ComponentCollection([def], { model })
520
- })
521
-
522
- it.each([...assertions])(
523
- 'validates custom example',
524
- ({ input, output }) => {
525
- const result = collection.validate(input)
526
- expect(result).toEqual(output)
527
- }
528
- )
529
- })
530
- })
531
-
532
- describe('isBool', () => {
533
- test('should return correct boolean', () => {
534
- expect(DeclarationField.isBool('string')).toBe(false)
535
- expect(DeclarationField.isBool(true)).toBe(true)
536
- })
537
- })
538
-
539
- describe('Markdown header starting level', () => {
540
- test('should determine startHeadingLevel is 3 some guidance', () => {
541
- const modelDecl = new FormModel(declarationWithGuidance, {
542
- basePath: 'test'
543
- })
544
- const field = modelDecl.componentMap.get(
545
- 'declarationField'
546
- ) as DeclarationField
547
- expect(field.headerStartLevel).toBe(3)
548
- })
549
-
550
- test('should determine startHeadingLevel is 2 when no guidance', () => {
551
- const modelDecl = new FormModel(declarationWithoutGuidance, {
552
- basePath: 'test'
553
- })
554
- const field = modelDecl.componentMap.get(
555
- 'declarationField'
556
- ) as DeclarationField
557
- expect(field.headerStartLevel).toBe(2)
558
- })
559
- })
560
- })
@@ -1,49 +0,0 @@
1
- import { ComponentType, type DetailsComponent } 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('Details', () => {
9
- let model: FormModel
10
-
11
- beforeEach(() => {
12
- model = new FormModel(definition, {
13
- basePath: 'test'
14
- })
15
- })
16
-
17
- describe('Defaults', () => {
18
- let def: DetailsComponent
19
- let collection: ComponentCollection
20
- let guidance: Guidance
21
-
22
- beforeEach(() => {
23
- def = {
24
- title: 'Details guidance',
25
- name: 'myComponent',
26
- type: ComponentType.Details,
27
- content: 'Lorem ipsum dolor sit amet',
28
- options: {}
29
- } satisfies DetailsComponent
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
- html: def.content,
43
- summaryHtml: def.title
44
- })
45
- )
46
- })
47
- })
48
- })
49
- })