@ukhomeoffice/cop-react-form-renderer 4.18.0 → 5.0.0-alpha

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 (307) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +1 -14
  2. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +19 -57
  3. package/dist/components/CheckYourAnswers/index.js +0 -3
  4. package/dist/components/CollectionPage/CollectionPage.js +8 -38
  5. package/dist/components/CollectionPage/index.js +0 -3
  6. package/dist/components/FormComponent/Collection.js +13 -54
  7. package/dist/components/FormComponent/Container.js +6 -30
  8. package/dist/components/FormComponent/FormComponent.js +14 -57
  9. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  10. package/dist/components/FormComponent/helpers/getComponentDisabled.js +0 -4
  11. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +0 -2
  12. package/dist/components/FormComponent/helpers/getComponentError.js +0 -6
  13. package/dist/components/FormComponent/helpers/getComponentError.test.js +0 -2
  14. package/dist/components/FormComponent/helpers/index.js +0 -4
  15. package/dist/components/FormComponent/index.js +0 -3
  16. package/dist/components/FormPage/FormPage.js +14 -45
  17. package/dist/components/FormPage/index.js +0 -3
  18. package/dist/components/FormRenderer/FormRenderer.js +106 -189
  19. package/dist/components/FormRenderer/handlers/cyaAction.js +0 -5
  20. package/dist/components/FormRenderer/handlers/getPageId.js +0 -2
  21. package/dist/components/FormRenderer/handlers/getPageId.test.js +1 -2
  22. package/dist/components/FormRenderer/handlers/handlers.test.js +1 -18
  23. package/dist/components/FormRenderer/handlers/index.js +0 -5
  24. package/dist/components/FormRenderer/handlers/navigate.js +0 -5
  25. package/dist/components/FormRenderer/handlers/submissionError.js +0 -2
  26. package/dist/components/FormRenderer/helpers/canActionProceed.js +0 -3
  27. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +1 -3
  28. package/dist/components/FormRenderer/helpers/canCYASubmit.js +0 -2
  29. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +1 -5
  30. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +0 -5
  31. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +1 -2
  32. package/dist/components/FormRenderer/helpers/getCYA.js +0 -6
  33. package/dist/components/FormRenderer/helpers/getCYA.test.js +1 -3
  34. package/dist/components/FormRenderer/helpers/getFormState.js +0 -5
  35. package/dist/components/FormRenderer/helpers/getFormState.test.js +1 -3
  36. package/dist/components/FormRenderer/helpers/getNextPageId.js +0 -25
  37. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +1 -4
  38. package/dist/components/FormRenderer/helpers/getPage.js +0 -5
  39. package/dist/components/FormRenderer/helpers/getPage.test.js +1 -3
  40. package/dist/components/FormRenderer/helpers/getRelevantPages.js +0 -6
  41. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +1 -3
  42. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +0 -10
  43. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +0 -6
  44. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +6 -20
  45. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +3 -8
  46. package/dist/components/FormRenderer/helpers/index.js +1 -11
  47. package/dist/components/FormRenderer/index.js +0 -3
  48. package/dist/components/PageActions/ActionButton.js +2 -17
  49. package/dist/components/PageActions/PageActions.js +3 -10
  50. package/dist/components/PageActions/index.js +0 -3
  51. package/dist/components/SummaryList/GroupAction.js +3 -24
  52. package/dist/components/SummaryList/RowAction.js +3 -23
  53. package/dist/components/SummaryList/SummaryList.js +6 -28
  54. package/dist/components/SummaryList/SummaryListRow.js +4 -8
  55. package/dist/components/SummaryList/SummaryListTitleRow.js +2 -7
  56. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +0 -3
  57. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +0 -6
  58. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +0 -3
  59. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +0 -6
  60. package/dist/components/SummaryList/helpers/index.js +0 -2
  61. package/dist/components/SummaryList/index.js +0 -3
  62. package/dist/components/TaskList/Task.js +7 -29
  63. package/dist/components/TaskList/TaskList.js +12 -33
  64. package/dist/components/TaskList/TaskState.js +2 -10
  65. package/dist/components/TaskList/index.js +0 -3
  66. package/dist/components/index.js +0 -6
  67. package/dist/context/HooksContext/HooksContext.js +14 -34
  68. package/dist/context/HooksContext/index.js +0 -5
  69. package/dist/context/ValidationContext/ValidationContext.js +8 -34
  70. package/dist/context/ValidationContext/index.js +0 -5
  71. package/dist/context/index.js +0 -3
  72. package/dist/hooks/index.js +0 -9
  73. package/dist/hooks/useAxios.js +8 -25
  74. package/dist/hooks/useGetRequest.js +13 -47
  75. package/dist/hooks/useHooks.js +2 -4
  76. package/dist/hooks/useRefData.js +8 -37
  77. package/dist/hooks/useValidation.js +2 -4
  78. package/dist/index.js +0 -6
  79. package/dist/models/PageAction.js +0 -3
  80. package/dist/models/TaskStates.js +0 -3
  81. package/dist/models/index.js +0 -9
  82. package/dist/utils/CheckYourAnswers/getCYAAction.js +1 -9
  83. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +0 -10
  84. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +0 -8
  85. package/dist/utils/CheckYourAnswers/getCYARow.js +1 -10
  86. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +2 -20
  87. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +0 -18
  88. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +0 -20
  89. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +0 -13
  90. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +2 -22
  91. package/dist/utils/CheckYourAnswers/index.js +1 -3
  92. package/dist/utils/CheckYourAnswers/showComponentCYA.js +2 -11
  93. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +0 -11
  94. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +0 -6
  95. package/dist/utils/CollectionPage/index.js +1 -5
  96. package/dist/utils/CollectionPage/mergeCollectionPages.js +1 -12
  97. package/dist/utils/Component/cleanAttributes.js +1 -8
  98. package/dist/utils/Component/elevateNestedComponents.js +0 -3
  99. package/dist/utils/Component/getComponent.js +4 -68
  100. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +6 -10
  101. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +10 -28
  102. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +6 -33
  103. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +10 -27
  104. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +4 -10
  105. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +4 -21
  106. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +4 -22
  107. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +3 -7
  108. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +4 -10
  109. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +3 -7
  110. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +6 -15
  111. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +4 -21
  112. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +6 -33
  113. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +4 -21
  114. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +4 -21
  115. package/dist/utils/Component/getComponentTests/getComponent.textarea.test.js +4 -21
  116. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +10 -29
  117. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +1 -2
  118. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +3 -7
  119. package/dist/utils/Component/getDefaultValue.js +0 -7
  120. package/dist/utils/Component/index.js +0 -9
  121. package/dist/utils/Component/isEditable.js +1 -4
  122. package/dist/utils/Component/showComponent.js +1 -8
  123. package/dist/utils/Component/wrapInFormGroup.js +0 -7
  124. package/dist/utils/Condition/index.js +0 -5
  125. package/dist/utils/Condition/meetsAllConditions.js +0 -9
  126. package/dist/utils/Condition/meetsCondition.js +7 -19
  127. package/dist/utils/Condition/meetsOneCondition.js +1 -9
  128. package/dist/utils/Condition/setupConditions.js +0 -12
  129. package/dist/utils/Container/getEditableComponents.js +0 -7
  130. package/dist/utils/Container/index.js +0 -5
  131. package/dist/utils/Container/setupNesting.js +0 -11
  132. package/dist/utils/Container/showContainer.js +9 -18
  133. package/dist/utils/Data/applyFormula.js +2 -28
  134. package/dist/utils/Data/getAutocompleteSource.js +1 -4
  135. package/dist/utils/Data/getDataPath.js +3 -17
  136. package/dist/utils/Data/getOptions.js +0 -9
  137. package/dist/utils/Data/getSourceData.js +4 -19
  138. package/dist/utils/Data/index.js +1 -11
  139. package/dist/utils/Data/refDataToOptions.js +1 -12
  140. package/dist/utils/Data/setDataItem.js +0 -5
  141. package/dist/utils/Data/setupFormData.js +2 -20
  142. package/dist/utils/Data/setupRefDataUrlForComponent.js +0 -14
  143. package/dist/utils/FormPage/getFormPage.js +0 -15
  144. package/dist/utils/FormPage/getFormPages.js +0 -8
  145. package/dist/utils/FormPage/getPageActions.js +3 -18
  146. package/dist/utils/FormPage/getParagraphFromText.js +0 -3
  147. package/dist/utils/FormPage/index.js +0 -6
  148. package/dist/utils/FormPage/showFormPage.js +9 -18
  149. package/dist/utils/FormPage/showFormPageCYA.js +0 -5
  150. package/dist/utils/FormPage/useComponent.js +3 -18
  151. package/dist/utils/Format/formatData.js +0 -5
  152. package/dist/utils/Format/formatDataForComponent.js +1 -6
  153. package/dist/utils/Format/formatDataForForm.js +0 -8
  154. package/dist/utils/Format/formatDataForPage.js +1 -5
  155. package/dist/utils/Format/index.js +1 -6
  156. package/dist/utils/Hub/getFormHub.js +0 -8
  157. package/dist/utils/Hub/index.js +1 -3
  158. package/dist/utils/Meta/documents/getDocuments.js +1 -4
  159. package/dist/utils/Meta/documents/getDocuments.test.js +0 -9
  160. package/dist/utils/Meta/documents/index.js +1 -5
  161. package/dist/utils/Meta/documents/setDocumentForField.js +0 -11
  162. package/dist/utils/Meta/documents/setDocumentForField.test.js +0 -11
  163. package/dist/utils/Meta/index.js +2 -6
  164. package/dist/utils/Operate/checkValueIsTruthy.js +1 -7
  165. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +7 -21
  166. package/dist/utils/Operate/index.js +0 -3
  167. package/dist/utils/Operate/persistValueInFormData.js +1 -8
  168. package/dist/utils/Operate/runPageOperations.js +3 -18
  169. package/dist/utils/Operate/setValueInFormData.js +2 -7
  170. package/dist/utils/Operate/shouldRun.js +1 -14
  171. package/dist/utils/Validate/additional/index.js +1 -18
  172. package/dist/utils/Validate/additional/index.test.js +0 -6
  173. package/dist/utils/Validate/additional/mustBeAfter.js +3 -8
  174. package/dist/utils/Validate/additional/mustBeAfter.test.js +0 -4
  175. package/dist/utils/Validate/additional/mustBeBefore.js +3 -8
  176. package/dist/utils/Validate/additional/mustBeBefore.test.js +0 -4
  177. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +5 -16
  178. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +0 -7
  179. package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -12
  180. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +0 -3
  181. package/dist/utils/Validate/additional/mustBeInThePast.js +5 -13
  182. package/dist/utils/Validate/additional/mustBeInThePast.test.js +0 -3
  183. package/dist/utils/Validate/additional/mustBeLessThan.js +0 -3
  184. package/dist/utils/Validate/additional/mustBeLessThan.test.js +0 -2
  185. package/dist/utils/Validate/additional/mustBeLongerThan.js +0 -3
  186. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +0 -2
  187. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +0 -4
  188. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +0 -2
  189. package/dist/utils/Validate/additional/mustBeShorterThan.js +0 -3
  190. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +0 -2
  191. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +0 -5
  192. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +0 -4
  193. package/dist/utils/Validate/additional/utils.js +8 -24
  194. package/dist/utils/Validate/index.js +1 -9
  195. package/dist/utils/Validate/validateCollection.js +0 -9
  196. package/dist/utils/Validate/validateComponent.js +2 -35
  197. package/dist/utils/Validate/validateContainer.js +0 -13
  198. package/dist/utils/Validate/validateDate.js +4 -36
  199. package/dist/utils/Validate/validateEmail.js +1 -7
  200. package/dist/utils/Validate/validatePage.js +0 -15
  201. package/dist/utils/Validate/validateRegex.js +0 -10
  202. package/dist/utils/Validate/validateRequired.js +0 -8
  203. package/dist/utils/Validate/validateTime.js +3 -20
  204. package/dist/utils/index.js +0 -19
  205. package/package.json +50 -34
  206. package/dist/components/CheckYourAnswers/Answer.test.js +0 -95
  207. package/dist/components/CheckYourAnswers/CheckYourAnswers.stories.mdx +0 -410
  208. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +0 -680
  209. package/dist/components/CollectionPage/CollectionPage.test.js +0 -428
  210. package/dist/components/FormComponent/Collection.test.js +0 -381
  211. package/dist/components/FormComponent/Container.test.js +0 -423
  212. package/dist/components/FormComponent/FormComponent.stories.mdx +0 -184
  213. package/dist/components/FormComponent/FormComponent.test.js +0 -264
  214. package/dist/components/FormPage/FormPage.stories.mdx +0 -131
  215. package/dist/components/FormPage/FormPage.test.js +0 -368
  216. package/dist/components/FormRenderer/FormRenderer.stories.mdx +0 -183
  217. package/dist/components/FormRenderer/FormRenderer.test.js +0 -1006
  218. package/dist/components/PageActions/ActionButton.test.js +0 -116
  219. package/dist/components/PageActions/PageActions.stories.mdx +0 -74
  220. package/dist/components/PageActions/PageActions.test.js +0 -157
  221. package/dist/components/SummaryList/GroupAction.test.js +0 -94
  222. package/dist/components/SummaryList/RowAction.test.js +0 -94
  223. package/dist/components/SummaryList/SummaryList.stories.mdx +0 -90
  224. package/dist/components/SummaryList/SummaryList.test.js +0 -361
  225. package/dist/components/TaskList/Task.test.js +0 -194
  226. package/dist/components/TaskList/TaskList.stories.mdx +0 -164
  227. package/dist/components/TaskList/TaskList.test.js +0 -334
  228. package/dist/components/TaskList/TaskState.test.js +0 -104
  229. package/dist/context/HooksContext/HooksContext.test.js +0 -60
  230. package/dist/context/ValidationContext/ValidationContext.test.js +0 -98
  231. package/dist/json/areYouACivilServant.json +0 -7
  232. package/dist/json/firstForm.json +0 -94
  233. package/dist/json/grade.json +0 -108
  234. package/dist/json/group.data.json +0 -21
  235. package/dist/json/group.json +0 -402
  236. package/dist/json/groupOfRow.json +0 -137
  237. package/dist/json/groupOfRowData.json +0 -15
  238. package/dist/json/port.json +0 -346
  239. package/dist/json/saveAndContinue.json +0 -98
  240. package/dist/json/sublocation.json +0 -859
  241. package/dist/json/taskList.json +0 -265
  242. package/dist/json/team.json +0 -17351
  243. package/dist/json/terminal.json +0 -81
  244. package/dist/json/userProfile.data.json +0 -21
  245. package/dist/json/userProfile.json +0 -276
  246. package/dist/setupTests.js +0 -59
  247. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +0 -139
  248. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +0 -76
  249. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +0 -59
  250. package/dist/utils/CheckYourAnswers/getCYARow.test.js +0 -256
  251. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +0 -77
  252. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +0 -199
  253. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +0 -170
  254. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +0 -323
  255. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +0 -281
  256. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +0 -64
  257. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +0 -41
  258. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +0 -54
  259. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +0 -131
  260. package/dist/utils/Component/cleanAttributes.test.js +0 -69
  261. package/dist/utils/Component/elevateNestedComponents.test.js +0 -92
  262. package/dist/utils/Component/getDefaultValue.test.js +0 -53
  263. package/dist/utils/Component/isEditable.test.js +0 -42
  264. package/dist/utils/Component/showComponent.test.js +0 -157
  265. package/dist/utils/Condition/meetsAllConditions.test.js +0 -62
  266. package/dist/utils/Condition/meetsCondition.test.js +0 -391
  267. package/dist/utils/Condition/meetsOneCondition.test.js +0 -101
  268. package/dist/utils/Condition/setupConditions.test.js +0 -35
  269. package/dist/utils/Container/getEditableComponents.test.js +0 -146
  270. package/dist/utils/Container/setupNesting.test.js +0 -92
  271. package/dist/utils/Container/showContainer.test.js +0 -179
  272. package/dist/utils/Data/applyFormula.test.js +0 -264
  273. package/dist/utils/Data/getAutocompleteSource.test.js +0 -146
  274. package/dist/utils/Data/getDataPath.test.js +0 -52
  275. package/dist/utils/Data/getOptions.test.js +0 -71
  276. package/dist/utils/Data/getSourceData.test.js +0 -141
  277. package/dist/utils/Data/refDataToOptions.test.js +0 -197
  278. package/dist/utils/Data/setDataItem.test.js +0 -112
  279. package/dist/utils/Data/setupFormData.test.js +0 -276
  280. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +0 -133
  281. package/dist/utils/FormPage/getFormPage.test.js +0 -205
  282. package/dist/utils/FormPage/getFormPages.test.js +0 -98
  283. package/dist/utils/FormPage/getPageActions.test.js +0 -89
  284. package/dist/utils/FormPage/getParagraphFromText.test.js +0 -29
  285. package/dist/utils/FormPage/showFormPage.test.js +0 -182
  286. package/dist/utils/FormPage/showFormPageCYA.test.js +0 -30
  287. package/dist/utils/FormPage/useComponent.test.js +0 -169
  288. package/dist/utils/Format/formatData.test.js +0 -46
  289. package/dist/utils/Format/formatDataForComponent.test.js +0 -161
  290. package/dist/utils/Format/formatDataForForm.test.js +0 -78
  291. package/dist/utils/Format/formatDataForPage.test.js +0 -96
  292. package/dist/utils/Hub/getFormHub.test.js +0 -107
  293. package/dist/utils/Operate/checkValueIsTruthy.test.js +0 -44
  294. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +0 -159
  295. package/dist/utils/Operate/persistValueInFormData.test.js +0 -106
  296. package/dist/utils/Operate/runPageOperations.test.js +0 -107
  297. package/dist/utils/Operate/setValueInFormData.test.js +0 -46
  298. package/dist/utils/Operate/shouldRun.test.js +0 -69
  299. package/dist/utils/Validate/validateCollection.test.js +0 -74
  300. package/dist/utils/Validate/validateComponent.test.js +0 -267
  301. package/dist/utils/Validate/validateContainer.test.js +0 -81
  302. package/dist/utils/Validate/validateDate.test.js +0 -118
  303. package/dist/utils/Validate/validateEmail.test.js +0 -57
  304. package/dist/utils/Validate/validatePage.test.js +0 -383
  305. package/dist/utils/Validate/validateRegex.test.js +0 -41
  306. package/dist/utils/Validate/validateRequired.test.js +0 -62
  307. package/dist/utils/Validate/validateTime.test.js +0 -61
@@ -1,1006 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
-
5
- var _react = require("@testing-library/react");
6
-
7
- var _axios = _interopRequireDefault(require("axios"));
8
-
9
- var _axiosMockAdapter = _interopRequireDefault(require("axios-mock-adapter"));
10
-
11
- var _react2 = _interopRequireDefault(require("react"));
12
-
13
- var _reactDom = require("react-dom");
14
-
15
- var _testUtils = require("react-dom/test-utils");
16
-
17
- var _models = require("../../models");
18
-
19
- var _CheckYourAnswers = require("../CheckYourAnswers/CheckYourAnswers");
20
-
21
- var _TaskList = require("../TaskList/TaskList");
22
-
23
- var _FormRenderer = _interopRequireWildcard(require("./FormRenderer"));
24
-
25
- var _areYouACivilServant = _interopRequireDefault(require("../../json/areYouACivilServant.json"));
26
-
27
- var _grade = _interopRequireDefault(require("../../json/grade.json"));
28
-
29
- var _team = _interopRequireDefault(require("../../json/team.json"));
30
-
31
- var _userProfileData = _interopRequireDefault(require("../../json/userProfile.data.json"));
32
-
33
- var _userProfile = _interopRequireDefault(require("../../json/userProfile.json"));
34
-
35
- var _taskList = _interopRequireDefault(require("../../json/taskList.json"));
36
-
37
- var _firstForm = _interopRequireDefault(require("../../json/firstForm.json"));
38
-
39
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
40
-
41
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
42
-
43
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
44
-
45
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
46
-
47
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
48
-
49
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
50
-
51
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
52
-
53
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
54
-
55
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
56
-
57
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
58
-
59
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
60
-
61
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
62
-
63
- describe('components', function () {
64
- describe('FormRenderer', function () {
65
- var mockAxios = new _axiosMockAdapter.default(_axios.default);
66
- var container = null;
67
-
68
- var refDataUrl = function refDataUrl(suffix) {
69
- return "".concat(_userProfileData.default.urls.refData, "/").concat(suffix);
70
- };
71
-
72
- beforeEach(function () {
73
- container = document.createElement('div');
74
- document.body.appendChild(container);
75
- mockAxios.reset();
76
- mockAxios.onGet(refDataUrl('areYouACivilServant')).reply(200, _areYouACivilServant.default);
77
- mockAxios.onGet(refDataUrl('grade')).reply(200, _grade.default);
78
- mockAxios.onGet(refDataUrl('team')).reply(200, _team.default);
79
- });
80
- afterEach(function () {
81
- (0, _reactDom.unmountComponentAtNode)(container);
82
- container.remove();
83
- container = null;
84
- });
85
-
86
- var checkForm = function checkForm(container) {
87
- var form = container.childNodes[0];
88
- expect(form.tagName).toEqual('DIV');
89
- expect(form.classList).toContain(_FormRenderer.DEFAULT_CLASS);
90
- return form;
91
- };
92
-
93
- var getChangeLink = function getChangeLink(summaryList) {
94
- var _summaryList$childNod = _slicedToArray(summaryList.childNodes[0].childNodes[0].childNodes, 3),
95
- actions = _summaryList$childNod[2];
96
-
97
- return actions.childNodes[0];
98
- };
99
-
100
- var getContinueButton = function getContinueButton(page) {
101
- return page.childNodes[page.childNodes.length - 1].childNodes[0].childNodes[0];
102
- };
103
-
104
- var getCancelButton = function getCancelButton(page) {
105
- return page.childNodes[page.childNodes.length - 1].childNodes[1].childNodes[0];
106
- };
107
-
108
- it('should start on the hub page correctly and display the title', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
109
- var form, title, hub;
110
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
111
- while (1) {
112
- switch (_context2.prev = _context2.next) {
113
- case 0:
114
- _context2.next = 2;
115
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
116
- return regeneratorRuntime.wrap(function _callee$(_context) {
117
- while (1) {
118
- switch (_context.prev = _context.next) {
119
- case 0:
120
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _extends({}, _userProfile.default, {
121
- data: _userProfileData.default
122
- })), container);
123
-
124
- case 1:
125
- case "end":
126
- return _context.stop();
127
- }
128
- }
129
- }, _callee);
130
- })));
131
-
132
- case 2:
133
- form = checkForm(container);
134
- expect(form.childNodes.length).toEqual(2); // Title + Hub page (= CYA)
135
-
136
- title = form.childNodes[0];
137
- expect(title.tagName).toEqual('H1');
138
- expect(title.textContent).toEqual(_userProfile.default.title);
139
- hub = form.childNodes[1];
140
- expect(hub.tagName).toEqual('DIV');
141
- expect(hub.classList).toContain(_CheckYourAnswers.DEFAULT_CLASS);
142
-
143
- case 10:
144
- case "end":
145
- return _context2.stop();
146
- }
147
- }
148
- }, _callee2);
149
- })));
150
- it('should fire the onFormLoad method passed in the hooks', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
151
- var onFormLoadCalled, ON_FORM_LOAD, HOOKS;
152
- return regeneratorRuntime.wrap(function _callee4$(_context4) {
153
- while (1) {
154
- switch (_context4.prev = _context4.next) {
155
- case 0:
156
- onFormLoadCalled = false;
157
-
158
- ON_FORM_LOAD = function ON_FORM_LOAD() {
159
- onFormLoadCalled = true;
160
- };
161
-
162
- HOOKS = {
163
- onFormLoad: ON_FORM_LOAD
164
- };
165
- _context4.next = 5;
166
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
167
- return regeneratorRuntime.wrap(function _callee3$(_context3) {
168
- while (1) {
169
- switch (_context3.prev = _context3.next) {
170
- case 0:
171
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _extends({}, _userProfile.default, {
172
- data: _userProfileData.default,
173
- hooks: HOOKS
174
- })), container);
175
-
176
- case 1:
177
- case "end":
178
- return _context3.stop();
179
- }
180
- }
181
- }, _callee3);
182
- })));
183
-
184
- case 5:
185
- expect(onFormLoadCalled).toBeTruthy();
186
-
187
- case 6:
188
- case "end":
189
- return _context4.stop();
190
- }
191
- }
192
- }, _callee4);
193
- })));
194
- it('should navigate to the first editable page', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {
195
- var ON_PAGE_CHANGE_CALLS, ON_PAGE_CHANGE, HOOKS, form, hub, _hub$childNodes, civilServantList, link, page, pageHeading;
196
-
197
- return regeneratorRuntime.wrap(function _callee6$(_context6) {
198
- while (1) {
199
- switch (_context6.prev = _context6.next) {
200
- case 0:
201
- ON_PAGE_CHANGE_CALLS = [];
202
-
203
- ON_PAGE_CHANGE = function ON_PAGE_CHANGE(pageId) {
204
- ON_PAGE_CHANGE_CALLS.push(pageId);
205
- };
206
-
207
- HOOKS = {
208
- onPageChange: ON_PAGE_CHANGE
209
- };
210
- _context6.next = 5;
211
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
212
- return regeneratorRuntime.wrap(function _callee5$(_context5) {
213
- while (1) {
214
- switch (_context5.prev = _context5.next) {
215
- case 0:
216
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _extends({}, _userProfile.default, {
217
- data: _userProfileData.default,
218
- hooks: HOOKS
219
- })), container);
220
-
221
- case 1:
222
- case "end":
223
- return _context5.stop();
224
- }
225
- }
226
- }, _callee5);
227
- })));
228
-
229
- case 5:
230
- form = checkForm(container);
231
- hub = form.childNodes[1]; // Hub = CYA
232
-
233
- _hub$childNodes = _slicedToArray(hub.childNodes, 3), civilServantList = _hub$childNodes[2];
234
- link = getChangeLink(civilServantList);
235
- expect(ON_PAGE_CHANGE_CALLS.length).toEqual(0);
236
-
237
- _react.fireEvent.click(link, {});
238
-
239
- expect(ON_PAGE_CHANGE_CALLS.length).toEqual(1);
240
- expect(ON_PAGE_CHANGE_CALLS[0]).toEqual(_userProfile.default.pages[1].id); // The form layout should have changed to the current page.
241
-
242
- expect(form.childNodes.length).toEqual(1); // Just the page.
243
-
244
- page = form.childNodes[0];
245
- pageHeading = page.childNodes[0];
246
- expect(pageHeading.tagName).toEqual('H1');
247
- expect(pageHeading.textContent).toEqual(_userProfile.default.pages[1].title);
248
-
249
- case 18:
250
- case "end":
251
- return _context6.stop();
252
- }
253
- }
254
- }, _callee6);
255
- })));
256
- it('should handle a page submission', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8() {
257
- var ON_SUBMIT_CALLS, ON_SUBMIT, HOOKS, form, hub, _hub$childNodes2, civilServantList, link, page, continueButton, title;
258
-
259
- return regeneratorRuntime.wrap(function _callee8$(_context8) {
260
- while (1) {
261
- switch (_context8.prev = _context8.next) {
262
- case 0:
263
- ON_SUBMIT_CALLS = [];
264
-
265
- ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess, onError) {
266
- ON_SUBMIT_CALLS.push({
267
- type: type,
268
- payload: payload,
269
- onSuccess: onSuccess,
270
- onError: onError
271
- });
272
- onSuccess();
273
- };
274
-
275
- HOOKS = {
276
- onSubmit: ON_SUBMIT
277
- };
278
- _context8.next = 5;
279
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() {
280
- return regeneratorRuntime.wrap(function _callee7$(_context7) {
281
- while (1) {
282
- switch (_context7.prev = _context7.next) {
283
- case 0:
284
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _extends({}, _userProfile.default, {
285
- data: _userProfileData.default,
286
- hooks: HOOKS
287
- })), container);
288
-
289
- case 1:
290
- case "end":
291
- return _context7.stop();
292
- }
293
- }
294
- }, _callee7);
295
- })));
296
-
297
- case 5:
298
- form = checkForm(container); // Navigate to the "Are you a civil servant?" page.
299
-
300
- hub = form.childNodes[1]; // Hub = CYA
301
-
302
- _hub$childNodes2 = _slicedToArray(hub.childNodes, 3), civilServantList = _hub$childNodes2[2];
303
- link = getChangeLink(civilServantList);
304
-
305
- _react.fireEvent.click(link, {}); // Should already be answered "Yes", so simply click "Continue".
306
-
307
-
308
- page = form.childNodes[0];
309
- continueButton = getContinueButton(page);
310
- expect(ON_SUBMIT_CALLS.length).toEqual(0);
311
-
312
- _react.fireEvent.click(continueButton, {});
313
-
314
- expect(ON_SUBMIT_CALLS.length).toEqual(1);
315
- expect(ON_SUBMIT_CALLS[0].type).toEqual(_models.PageAction.TYPES.SUBMIT);
316
- expect(ON_SUBMIT_CALLS[0].payload.areYouACivilServant).toEqual('yes'); // And we should be back on the hub.
317
-
318
- expect(form.childNodes.length).toEqual(2); // Title + Hub page (= CYA)
319
-
320
- title = form.childNodes[0];
321
- expect(title.tagName).toEqual('H1');
322
- expect(title.textContent).toEqual(_userProfile.default.title);
323
-
324
- case 21:
325
- case "end":
326
- return _context8.stop();
327
- }
328
- }
329
- }, _callee8);
330
- })));
331
- it('should handle a page submission error', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee10() {
332
- var ON_SUBMIT_CALLS, ON_SUBMIT, HOOKS, form, hub, _hub$childNodes3, civilServantList, link, page, continueButton, pageHeading;
333
-
334
- return regeneratorRuntime.wrap(function _callee10$(_context10) {
335
- while (1) {
336
- switch (_context10.prev = _context10.next) {
337
- case 0:
338
- ON_SUBMIT_CALLS = [];
339
-
340
- ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess, onError) {
341
- ON_SUBMIT_CALLS.push({
342
- type: type,
343
- payload: payload,
344
- onSuccess: onSuccess,
345
- onError: onError
346
- });
347
- onError([{
348
- id: 'unknown',
349
- error: 'Something went wrong'
350
- }]);
351
- };
352
-
353
- HOOKS = {
354
- onSubmit: ON_SUBMIT
355
- };
356
- _context10.next = 5;
357
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9() {
358
- return regeneratorRuntime.wrap(function _callee9$(_context9) {
359
- while (1) {
360
- switch (_context9.prev = _context9.next) {
361
- case 0:
362
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _extends({}, _userProfile.default, {
363
- data: _userProfileData.default,
364
- hooks: HOOKS
365
- })), container);
366
-
367
- case 1:
368
- case "end":
369
- return _context9.stop();
370
- }
371
- }
372
- }, _callee9);
373
- })));
374
-
375
- case 5:
376
- form = checkForm(container); // Navigate to the "Are you a civil servant?" page.
377
-
378
- hub = form.childNodes[1]; // Hub = CYA
379
-
380
- _hub$childNodes3 = _slicedToArray(hub.childNodes, 3), civilServantList = _hub$childNodes3[2];
381
- link = getChangeLink(civilServantList);
382
-
383
- _react.fireEvent.click(link, {}); // Should already be answered "Yes", so simply click "Continue".
384
-
385
-
386
- page = form.childNodes[0];
387
- continueButton = getContinueButton(page);
388
- expect(ON_SUBMIT_CALLS.length).toEqual(0);
389
-
390
- _react.fireEvent.click(continueButton, {});
391
-
392
- expect(ON_SUBMIT_CALLS.length).toEqual(1);
393
- expect(ON_SUBMIT_CALLS[0].type).toEqual(_models.PageAction.TYPES.SUBMIT);
394
- expect(ON_SUBMIT_CALLS[0].payload.areYouACivilServant).toEqual('yes'); // And we should be kept on the same page.
395
-
396
- expect(form.childNodes.length).toEqual(1); // Just the page.
397
-
398
- pageHeading = form.childNodes[0].childNodes[0];
399
- expect(pageHeading.tagName).toEqual('H1');
400
- expect(pageHeading.textContent).toEqual(_userProfile.default.pages[1].title);
401
-
402
- case 21:
403
- case "end":
404
- return _context10.stop();
405
- }
406
- }
407
- }, _callee10);
408
- })));
409
- it('should handle page navigation', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee12() {
410
- var ON_PAGE_CHANGE_CALLS, ON_PAGE_CHANGE, HOOKS, form, hub, _hub$childNodes4, lineManagerList, link, page, pageHeading, continueButton, newPageHeading;
411
-
412
- return regeneratorRuntime.wrap(function _callee12$(_context12) {
413
- while (1) {
414
- switch (_context12.prev = _context12.next) {
415
- case 0:
416
- ON_PAGE_CHANGE_CALLS = [];
417
-
418
- ON_PAGE_CHANGE = function ON_PAGE_CHANGE(pageId) {
419
- ON_PAGE_CHANGE_CALLS.push(pageId);
420
- };
421
-
422
- HOOKS = {
423
- onPageChange: ON_PAGE_CHANGE
424
- };
425
- _context12.next = 5;
426
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee11() {
427
- return regeneratorRuntime.wrap(function _callee11$(_context11) {
428
- while (1) {
429
- switch (_context11.prev = _context11.next) {
430
- case 0:
431
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _extends({}, _userProfile.default, {
432
- data: _userProfileData.default,
433
- hooks: HOOKS
434
- })), container);
435
-
436
- case 1:
437
- case "end":
438
- return _context11.stop();
439
- }
440
- }
441
- }, _callee11);
442
- })));
443
-
444
- case 5:
445
- form = checkForm(container); // Navigate to the "Add or change a line manager" page.
446
-
447
- hub = form.childNodes[1]; // Hub = CYA
448
-
449
- _hub$childNodes4 = _slicedToArray(hub.childNodes, 6), lineManagerList = _hub$childNodes4[5];
450
- link = getChangeLink(lineManagerList);
451
- expect(ON_PAGE_CHANGE_CALLS.length).toEqual(0);
452
-
453
- _react.fireEvent.click(link, {});
454
-
455
- expect(ON_PAGE_CHANGE_CALLS[0]).toEqual(_userProfile.default.pages[4].id); // Should be on the page explaining what changing the line manager means.
456
-
457
- page = form.childNodes[0];
458
- pageHeading = page.childNodes[0];
459
- expect(pageHeading.tagName).toEqual('H1');
460
- expect(pageHeading.textContent).toEqual(_userProfile.default.pages[4].title); // Now click on the "Continue" button on here.
461
-
462
- continueButton = getContinueButton(page);
463
- expect(ON_PAGE_CHANGE_CALLS.length).toEqual(1);
464
-
465
- _react.fireEvent.click(continueButton, {});
466
-
467
- expect(ON_PAGE_CHANGE_CALLS.length).toEqual(2);
468
- expect(ON_PAGE_CHANGE_CALLS[1]).toEqual(_userProfile.default.pages[5].id);
469
- newPageHeading = form.childNodes[0].childNodes[0];
470
- expect(newPageHeading.tagName).toEqual('H1');
471
- expect(newPageHeading.textContent).toEqual(_userProfile.default.pages[5].title);
472
-
473
- case 24:
474
- case "end":
475
- return _context12.stop();
476
- }
477
- }
478
- }, _callee12);
479
- })));
480
- it('should show no title when hide_title is set to true', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee14() {
481
- var form, hub;
482
- return regeneratorRuntime.wrap(function _callee14$(_context14) {
483
- while (1) {
484
- switch (_context14.prev = _context14.next) {
485
- case 0:
486
- _context14.next = 2;
487
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee13() {
488
- return regeneratorRuntime.wrap(function _callee13$(_context13) {
489
- while (1) {
490
- switch (_context13.prev = _context13.next) {
491
- case 0:
492
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _extends({}, _userProfile.default, {
493
- data: _userProfileData.default,
494
- hide_title: true
495
- })), container);
496
-
497
- case 1:
498
- case "end":
499
- return _context13.stop();
500
- }
501
- }
502
- }, _callee13);
503
- })));
504
-
505
- case 2:
506
- form = checkForm(container);
507
- expect(form.childNodes.length).toEqual(1); //Hub page (= CYA)
508
-
509
- hub = form.childNodes[0];
510
- expect(hub.tagName).toEqual('DIV');
511
- expect(hub.classList).toContain(_CheckYourAnswers.DEFAULT_CLASS);
512
-
513
- case 7:
514
- case "end":
515
- return _context14.stop();
516
- }
517
- }
518
- }, _callee14);
519
- })));
520
- it('should render a tasklist', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee16() {
521
- var taskList;
522
- return regeneratorRuntime.wrap(function _callee16$(_context16) {
523
- while (1) {
524
- switch (_context16.prev = _context16.next) {
525
- case 0:
526
- _context16.next = 2;
527
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee15() {
528
- return regeneratorRuntime.wrap(function _callee15$(_context15) {
529
- while (1) {
530
- switch (_context15.prev = _context15.next) {
531
- case 0:
532
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _taskList.default), container);
533
-
534
- case 1:
535
- case "end":
536
- return _context15.stop();
537
- }
538
- }
539
- }, _callee15);
540
- })));
541
-
542
- case 2:
543
- taskList = container.childNodes[0].childNodes[1];
544
- expect(taskList.classList).toContain(_TaskList.DEFAULT_CLASS);
545
-
546
- case 4:
547
- case "end":
548
- return _context16.stop();
549
- }
550
- }
551
- }, _callee16);
552
- })));
553
- it('should render a cya page', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee18() {
554
- var cya;
555
- return regeneratorRuntime.wrap(function _callee18$(_context18) {
556
- while (1) {
557
- switch (_context18.prev = _context18.next) {
558
- case 0:
559
- _context18.next = 2;
560
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee17() {
561
- return regeneratorRuntime.wrap(function _callee17$(_context17) {
562
- while (1) {
563
- switch (_context17.prev = _context17.next) {
564
- case 0:
565
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _firstForm.default), container);
566
-
567
- case 1:
568
- case "end":
569
- return _context17.stop();
570
- }
571
- }
572
- }, _callee17);
573
- })));
574
-
575
- case 2:
576
- cya = container.childNodes[0];
577
- expect(cya.classList).toContain('hods-form');
578
-
579
- case 4:
580
- case "end":
581
- return _context18.stop();
582
- }
583
- }
584
- }, _callee18);
585
- })));
586
- it('should handle navigating between task list pages', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee20() {
587
- var ON_SUBMIT_CALLS, ON_SUBMIT, HOOKS, taskList, firstTaskStatus, secondTaskStatus, firstTask, newPage, continueButton, cyaPageChange, modeChangeLink, changePage, cyaPage, finalSubmit;
588
- return regeneratorRuntime.wrap(function _callee20$(_context20) {
589
- while (1) {
590
- switch (_context20.prev = _context20.next) {
591
- case 0:
592
- ON_SUBMIT_CALLS = [];
593
-
594
- ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess, onError) {
595
- ON_SUBMIT_CALLS.push(payload);
596
- onSuccess();
597
- };
598
-
599
- HOOKS = {
600
- onSubmit: ON_SUBMIT
601
- };
602
- _context20.next = 5;
603
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee19() {
604
- return regeneratorRuntime.wrap(function _callee19$(_context19) {
605
- while (1) {
606
- switch (_context19.prev = _context19.next) {
607
- case 0:
608
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _extends({}, _taskList.default, {
609
- hooks: HOOKS
610
- })), container);
611
-
612
- case 1:
613
- case "end":
614
- return _context19.stop();
615
- }
616
- }
617
- }, _callee19);
618
- })));
619
-
620
- case 5:
621
- taskList = container.childNodes[0].childNodes[1]; //Check statuses are correct
622
-
623
- firstTaskStatus = taskList.childNodes[3].childNodes[1].childNodes[1];
624
- expect(firstTaskStatus.textContent).toEqual(_models.TaskStates.DETAILS[_models.TaskStates.TYPES.NOT_STARTED].label);
625
- secondTaskStatus = taskList.childNodes[3].childNodes[2].childNodes[1];
626
- expect(secondTaskStatus.textContent).toEqual(_models.TaskStates.DETAILS[_models.TaskStates.TYPES.CANNOT_START_YET].label); //Launch first task
627
-
628
- firstTask = taskList.childNodes[3].childNodes[1].childNodes[0].childNodes[0];
629
- expect(firstTask.textContent).toEqual('Date, location and mode details');
630
-
631
- _react.fireEvent.click(firstTask, {}); //Fill first page and navigate
632
-
633
-
634
- newPage = container.childNodes[0].childNodes[0];
635
- expect(newPage.childNodes[0].textContent).toEqual('Event Date');
636
-
637
- _react.fireEvent.change(newPage.childNodes[1].childNodes[2].childNodes[0].childNodes[1], {
638
- target: {
639
- name: 'date-day',
640
- value: '7'
641
- }
642
- });
643
-
644
- _react.fireEvent.change(newPage.childNodes[1].childNodes[2].childNodes[1].childNodes[1], {
645
- target: {
646
- name: 'date-month',
647
- value: '7'
648
- }
649
- });
650
-
651
- _react.fireEvent.change(newPage.childNodes[1].childNodes[2].childNodes[2].childNodes[1], {
652
- target: {
653
- name: 'date-year',
654
- value: '2022'
655
- }
656
- });
657
-
658
- continueButton = newPage.childNodes[2].childNodes[0];
659
-
660
- _react.fireEvent.click(continueButton, {}); //Fill second page and navigate
661
-
662
-
663
- newPage = container.childNodes[0].childNodes[0];
664
- expect(newPage.childNodes[0].textContent).toEqual('Event Mode');
665
-
666
- _react.fireEvent.click(newPage.childNodes[1].childNodes[2].childNodes[0].childNodes[0], {});
667
-
668
- continueButton = newPage.childNodes[2].childNodes[0];
669
-
670
- _react.fireEvent.click(continueButton, {}); //Click change to mode on CYA page
671
-
672
-
673
- cyaPageChange = container.childNodes[0].childNodes[0];
674
- modeChangeLink = cyaPageChange.childNodes[4].childNodes[0].childNodes[0].childNodes[2].childNodes[0].childNodes[0];
675
-
676
- _react.fireEvent.click(modeChangeLink, {});
677
-
678
- changePage = container.childNodes[0].childNodes[0];
679
- expect(changePage.childNodes[0].textContent).toEqual('Event Mode'); // Click on radio for 'Air'
680
-
681
- _react.fireEvent.click(changePage.childNodes[1].childNodes[2].childNodes[1].childNodes[0], {}); // Continue again to CYA page
682
-
683
-
684
- continueButton = changePage.childNodes[2].childNodes[0];
685
-
686
- _react.fireEvent.click(continueButton, {}); //Continue on from CYA page
687
-
688
-
689
- cyaPage = container.childNodes[0].childNodes[0];
690
- expect(cyaPage.childNodes[0].textContent).toEqual('Check your answers');
691
- expect(cyaPage.childNodes[5].childNodes[0].textContent).toEqual('Save and continue');
692
- expect(cyaPage.childNodes[5].childNodes[1].textContent).toEqual('Save and return later');
693
-
694
- _react.fireEvent.click(cyaPage.childNodes[5].childNodes[0], {}); //Should be back at task list
695
-
696
-
697
- expect(container.childNodes[0].childNodes[0].textContent).toEqual('Task List Form'); //Check statuses are correct
698
-
699
- firstTaskStatus = container.childNodes[0].childNodes[1].childNodes[3].childNodes[1].childNodes[1];
700
- expect(firstTaskStatus.textContent).toEqual(_models.TaskStates.DETAILS[_models.TaskStates.TYPES.COMPLETE].label);
701
- secondTaskStatus = container.childNodes[0].childNodes[1].childNodes[3].childNodes[2].childNodes[1];
702
- expect(secondTaskStatus.textContent).toEqual(_models.TaskStates.DETAILS[_models.TaskStates.TYPES.NOT_STARTED].label); //Check final data submitted to backend is as expected
703
-
704
- finalSubmit = ON_SUBMIT_CALLS[ON_SUBMIT_CALLS.length - 1];
705
- expect(finalSubmit.date).toEqual('7-7-2022');
706
- expect(finalSubmit.mode).toEqual('air');
707
- expect(finalSubmit.formStatus.tasks['Date, location and mode details'].complete).toEqual(true);
708
-
709
- case 47:
710
- case "end":
711
- return _context20.stop();
712
- }
713
- }
714
- }, _callee20);
715
- })));
716
- it('should go straight to CYA page if a complete task is selected', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee22() {
717
- var ON_SUBMIT, HOOKS, taskList, newPage;
718
- return regeneratorRuntime.wrap(function _callee22$(_context22) {
719
- while (1) {
720
- switch (_context22.prev = _context22.next) {
721
- case 0:
722
- ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess, onError) {
723
- onSuccess();
724
- };
725
-
726
- HOOKS = {
727
- onSubmit: ON_SUBMIT
728
- };
729
- _context22.next = 4;
730
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee21() {
731
- return regeneratorRuntime.wrap(function _callee21$(_context21) {
732
- while (1) {
733
- switch (_context21.prev = _context21.next) {
734
- case 0:
735
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _extends({}, _taskList.default, {
736
- hooks: HOOKS
737
- })), container);
738
-
739
- case 1:
740
- case "end":
741
- return _context21.stop();
742
- }
743
- }
744
- }, _callee21);
745
- })));
746
-
747
- case 4:
748
- taskList = container.childNodes[0].childNodes[1]; //Launch first task
749
-
750
- _react.fireEvent.click(taskList.childNodes[3].childNodes[1].childNodes[0].childNodes[0], {}); //Fill first page and navigate
751
-
752
-
753
- newPage = container.childNodes[0].childNodes[0];
754
-
755
- _react.fireEvent.change(newPage.childNodes[1].childNodes[2].childNodes[0].childNodes[1], {
756
- target: {
757
- name: 'date-day',
758
- value: '7'
759
- }
760
- });
761
-
762
- _react.fireEvent.change(newPage.childNodes[1].childNodes[2].childNodes[1].childNodes[1], {
763
- target: {
764
- name: 'date-month',
765
- value: '7'
766
- }
767
- });
768
-
769
- _react.fireEvent.change(newPage.childNodes[1].childNodes[2].childNodes[2].childNodes[1], {
770
- target: {
771
- name: 'date-year',
772
- value: '2022'
773
- }
774
- });
775
-
776
- _react.fireEvent.click(newPage.childNodes[2].childNodes[0], {}); //Fill second page and navigate
777
-
778
-
779
- newPage = container.childNodes[0].childNodes[0];
780
-
781
- _react.fireEvent.click(newPage.childNodes[1].childNodes[2].childNodes[0].childNodes[0], {});
782
-
783
- _react.fireEvent.click(newPage.childNodes[2].childNodes[0], {}); //Continue on from CYA page
784
-
785
-
786
- _react.fireEvent.click(container.childNodes[0].childNodes[0].childNodes[5].childNodes[0], {}); //Launch same task again
787
-
788
-
789
- _react.fireEvent.click(container.childNodes[0].childNodes[1].childNodes[3].childNodes[1].childNodes[0].childNodes[0], {}); //Should be at CYA page
790
-
791
-
792
- expect(container.childNodes[0].childNodes[0].childNodes[0].textContent).toEqual('Check your answers');
793
-
794
- case 17:
795
- case "end":
796
- return _context22.stop();
797
- }
798
- }
799
- }, _callee22);
800
- })));
801
- it('should go to the last page of a complete task if noTaskCYAs specified', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee24() {
802
- var ON_SUBMIT, HOOKS, TASK_LIST_WITH_NO_TASK_CYAS, taskList, newPage;
803
- return regeneratorRuntime.wrap(function _callee24$(_context24) {
804
- while (1) {
805
- switch (_context24.prev = _context24.next) {
806
- case 0:
807
- ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess, onError) {
808
- onSuccess();
809
- };
810
-
811
- HOOKS = {
812
- onSubmit: ON_SUBMIT
813
- };
814
- TASK_LIST_WITH_NO_TASK_CYAS = JSON.parse(JSON.stringify(_taskList.default));
815
- TASK_LIST_WITH_NO_TASK_CYAS.hub.noTaskCYAs = true;
816
- TASK_LIST_WITH_NO_TASK_CYAS.pages[1].actions[0] = {
817
- type: 'save',
818
- complete: true
819
- };
820
- _context24.next = 7;
821
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee23() {
822
- return regeneratorRuntime.wrap(function _callee23$(_context23) {
823
- while (1) {
824
- switch (_context23.prev = _context23.next) {
825
- case 0:
826
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _extends({}, TASK_LIST_WITH_NO_TASK_CYAS, {
827
- hooks: HOOKS
828
- })), container);
829
-
830
- case 1:
831
- case "end":
832
- return _context23.stop();
833
- }
834
- }
835
- }, _callee23);
836
- })));
837
-
838
- case 7:
839
- taskList = container.childNodes[0].childNodes[1]; // Launch first task
840
-
841
- _react.fireEvent.click(taskList.childNodes[3].childNodes[1].childNodes[0].childNodes[0], {}); // Fill first page and navigate
842
-
843
-
844
- newPage = container.childNodes[0].childNodes[0];
845
-
846
- _react.fireEvent.change(newPage.childNodes[1].childNodes[2].childNodes[0].childNodes[1], {
847
- target: {
848
- name: 'date-day',
849
- value: '7'
850
- }
851
- });
852
-
853
- _react.fireEvent.change(newPage.childNodes[1].childNodes[2].childNodes[1].childNodes[1], {
854
- target: {
855
- name: 'date-month',
856
- value: '7'
857
- }
858
- });
859
-
860
- _react.fireEvent.change(newPage.childNodes[1].childNodes[2].childNodes[2].childNodes[1], {
861
- target: {
862
- name: 'date-year',
863
- value: '2022'
864
- }
865
- });
866
-
867
- _react.fireEvent.click(newPage.childNodes[2].childNodes[0], {}); // Fill second page
868
-
869
-
870
- newPage = container.childNodes[0].childNodes[0];
871
-
872
- _react.fireEvent.click(newPage.childNodes[1].childNodes[2].childNodes[0].childNodes[0], {});
873
-
874
- _react.fireEvent.click(newPage.childNodes[2].childNodes[0], {}); // Launch same task again
875
-
876
-
877
- _react.fireEvent.click(container.childNodes[0].childNodes[1].childNodes[3].childNodes[1].childNodes[0].childNodes[0], {}); // Should be on the second page
878
-
879
-
880
- expect(container.childNodes[0].childNodes[0].childNodes[0].textContent).toEqual('Event Mode');
881
-
882
- case 19:
883
- case "end":
884
- return _context24.stop();
885
- }
886
- }
887
- }, _callee24);
888
- })));
889
- it('should handle cancellation from a page', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee26() {
890
- var ON_CANCEL_CALLS, ON_CANCEL, HOOKS, form, hub, _hub$childNodes5, civilServantList, link, page, cancel;
891
-
892
- return regeneratorRuntime.wrap(function _callee26$(_context26) {
893
- while (1) {
894
- switch (_context26.prev = _context26.next) {
895
- case 0:
896
- ON_CANCEL_CALLS = [];
897
-
898
- ON_CANCEL = function ON_CANCEL() {
899
- ON_CANCEL_CALLS.push(undefined);
900
- };
901
-
902
- HOOKS = {
903
- onCancel: ON_CANCEL
904
- };
905
- _context26.next = 5;
906
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee25() {
907
- return regeneratorRuntime.wrap(function _callee25$(_context25) {
908
- while (1) {
909
- switch (_context25.prev = _context25.next) {
910
- case 0:
911
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _extends({}, _userProfile.default, {
912
- data: _userProfileData.default,
913
- hooks: HOOKS
914
- })), container);
915
-
916
- case 1:
917
- case "end":
918
- return _context25.stop();
919
- }
920
- }
921
- }, _callee25);
922
- })));
923
-
924
- case 5:
925
- form = checkForm(container); // Navigate to the "Are you a civil servant?" page.
926
-
927
- hub = form.childNodes[1]; // Hub = CYA
928
-
929
- _hub$childNodes5 = _slicedToArray(hub.childNodes, 3), civilServantList = _hub$childNodes5[2];
930
- link = getChangeLink(civilServantList);
931
-
932
- _react.fireEvent.click(link, {}); // Should already be answered "Yes", so simply click "Continue".
933
-
934
-
935
- page = form.childNodes[0];
936
- cancel = getCancelButton(page);
937
- expect(ON_CANCEL_CALLS.length).toEqual(0);
938
-
939
- _react.fireEvent.click(cancel, {});
940
-
941
- expect(ON_CANCEL_CALLS.length).toEqual(1);
942
-
943
- case 15:
944
- case "end":
945
- return _context26.stop();
946
- }
947
- }
948
- }, _callee26);
949
- })));
950
- it('should navigate to a specific page at the beginning of a task if it is set as the firstPage of a task', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee28() {
951
- var ON_SUBMIT_CALLS, ON_SUBMIT, HOOKS, TASK_LIST_NON_SEQUENTIAL, taskList, firstTask, newPage;
952
- return regeneratorRuntime.wrap(function _callee28$(_context28) {
953
- while (1) {
954
- switch (_context28.prev = _context28.next) {
955
- case 0:
956
- ON_SUBMIT_CALLS = [];
957
-
958
- ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess, onError) {
959
- ON_SUBMIT_CALLS.push(payload);
960
- onSuccess();
961
- };
962
-
963
- HOOKS = {
964
- onSubmit: ON_SUBMIT
965
- };
966
- TASK_LIST_NON_SEQUENTIAL = JSON.parse(JSON.stringify(_taskList.default));
967
- TASK_LIST_NON_SEQUENTIAL.hub.nonSequential = true;
968
- _context28.next = 7;
969
- return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee27() {
970
- return regeneratorRuntime.wrap(function _callee27$(_context27) {
971
- while (1) {
972
- switch (_context27.prev = _context27.next) {
973
- case 0:
974
- (0, _reactDom.render)( /*#__PURE__*/_react2.default.createElement(_FormRenderer.default, _extends({}, TASK_LIST_NON_SEQUENTIAL, {
975
- hooks: HOOKS
976
- })), container);
977
-
978
- case 1:
979
- case "end":
980
- return _context27.stop();
981
- }
982
- }
983
- }, _callee27);
984
- })));
985
-
986
- case 7:
987
- taskList = container.childNodes[0].childNodes[1]; // Launch first task of second section
988
-
989
- firstTask = taskList.childNodes[5].childNodes[1].childNodes[0].childNodes[0];
990
- expect(firstTask.textContent).toEqual('People details');
991
-
992
- _react.fireEvent.click(firstTask, {}); // Should be at Surname page
993
-
994
-
995
- newPage = container.childNodes[0].childNodes[0];
996
- expect(newPage.childNodes[0].textContent).toEqual('Surname');
997
-
998
- case 13:
999
- case "end":
1000
- return _context28.stop();
1001
- }
1002
- }
1003
- }, _callee28);
1004
- })));
1005
- });
1006
- });