@ukhomeoffice/cop-react-form-renderer 6.15.10 → 6.15.11
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.
- package/dist/components/FormRenderer/FormRenderer.js +8 -3
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +2 -2
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +35 -35
- package/dist/components/FormRenderer/onCYAAction.js +3 -3
- package/dist/components/FormRenderer/onCYAAction.test.js +2 -1
- package/dist/components/FormRenderer/onPageAction.js +2 -2
- package/dist/components/FormRenderer/onPageAction.test.js +2 -1
- package/package.json +1 -1
|
@@ -39,6 +39,7 @@ const FormRenderer = _ref => {
|
|
|
39
39
|
let {
|
|
40
40
|
title,
|
|
41
41
|
type,
|
|
42
|
+
cleanseHiddenData,
|
|
42
43
|
components,
|
|
43
44
|
pages,
|
|
44
45
|
hub,
|
|
@@ -61,6 +62,7 @@ const FormRenderer = _ref => {
|
|
|
61
62
|
}, /*#__PURE__*/_react.default.createElement(_context.ValidationContextProvider, null, /*#__PURE__*/_react.default.createElement(InternalFormRenderer, {
|
|
62
63
|
title: title,
|
|
63
64
|
type: type,
|
|
65
|
+
cleanseHiddenData: cleanseHiddenData,
|
|
64
66
|
components: components,
|
|
65
67
|
pages: pages,
|
|
66
68
|
hub: hub,
|
|
@@ -84,6 +86,7 @@ const InternalFormRenderer = _ref2 => {
|
|
|
84
86
|
let {
|
|
85
87
|
title,
|
|
86
88
|
type,
|
|
89
|
+
cleanseHiddenData,
|
|
87
90
|
components,
|
|
88
91
|
pages: _pages,
|
|
89
92
|
hub: _hub,
|
|
@@ -295,7 +298,7 @@ const InternalFormRenderer = _ref2 => {
|
|
|
295
298
|
actions: (_formState$page$actio = formState.page.actions) === null || _formState$page$actio === void 0 ? void 0 : _formState$page$actio.filter(action => _utils.default.Component.show(action, data))
|
|
296
299
|
}, formState.cya, {
|
|
297
300
|
onAction: action => {
|
|
298
|
-
(0, _onCYAAction.default)(setPagePoint, action, pages, validate, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState, submitting, setSubmitting);
|
|
301
|
+
(0, _onCYAAction.default)(setPagePoint, action, pages, validate, cleanseHiddenData, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState, submitting, setSubmitting);
|
|
299
302
|
},
|
|
300
303
|
onRowAction: onCYARowAction,
|
|
301
304
|
summaryListClassModifiers: summaryListClassModifiers,
|
|
@@ -316,7 +319,7 @@ const InternalFormRenderer = _ref2 => {
|
|
|
316
319
|
page: formState.page,
|
|
317
320
|
pages: [].concat(pages),
|
|
318
321
|
onAction: (action, patch, patchLabel) => {
|
|
319
|
-
(0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, errors);
|
|
322
|
+
(0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, cleanseHiddenData, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, errors);
|
|
320
323
|
},
|
|
321
324
|
onChange: onChange,
|
|
322
325
|
hashLink: hashLink,
|
|
@@ -329,7 +332,7 @@ const InternalFormRenderer = _ref2 => {
|
|
|
329
332
|
pages: pages,
|
|
330
333
|
onCollectionChange: onChange,
|
|
331
334
|
onAction: (action, patch, patchLabel) => {
|
|
332
|
-
(0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, errors);
|
|
335
|
+
(0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, cleanseHiddenData, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, errors);
|
|
333
336
|
},
|
|
334
337
|
hashLink: hashLink,
|
|
335
338
|
classModifiers: formState.page.classModifiers,
|
|
@@ -363,6 +366,7 @@ const propTypes = {
|
|
|
363
366
|
pages: _propTypes.default.arrayOf(_propTypes.default.shape({})).isRequired,
|
|
364
367
|
summaryListClassModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
365
368
|
title: _propTypes.default.string,
|
|
369
|
+
cleanseHiddenData: _propTypes.default.bool,
|
|
366
370
|
/** See <a href="/?path=/docs/f-json--page#formtypes">FormTypes</a>. */
|
|
367
371
|
type: _propTypes.default.oneOf([_models.FormTypes.CYA, _models.FormTypes.FORM, _models.FormTypes.HUB, _models.FormTypes.TASK, _models.FormTypes.WIZARD, _models.FormTypes.TASK_CYA, _models.FormTypes.FORM_WITH_TASK]).isRequired,
|
|
368
372
|
viewOnly: _propTypes.default.bool,
|
|
@@ -388,6 +392,7 @@ const defaultProps = {
|
|
|
388
392
|
noChangeAction: false,
|
|
389
393
|
summaryListClassModifiers: [],
|
|
390
394
|
title: '',
|
|
395
|
+
cleanseHiddenData: false,
|
|
391
396
|
viewOnly: true,
|
|
392
397
|
hideBlankRows: false
|
|
393
398
|
};
|
|
@@ -301,8 +301,8 @@ const cleanseCollectionData = (allCollections, formData, componentByIdMap, compo
|
|
|
301
301
|
* @param {*} formData
|
|
302
302
|
* @returns {*} cleansed form data
|
|
303
303
|
*/
|
|
304
|
-
const clearOutUncompletedRoutes = (form, formData) => {
|
|
305
|
-
if (!
|
|
304
|
+
const clearOutUncompletedRoutes = (cleanseHiddenData, form, formData) => {
|
|
305
|
+
if (!cleanseHiddenData) return formData;
|
|
306
306
|
|
|
307
307
|
// Load components into maps keyed on id and field for subsequent performant access
|
|
308
308
|
const componentByIdMap = new Map(form.components.map(c => [c.id, c]));
|
|
@@ -175,110 +175,110 @@ describe('FormRenderer', () => {
|
|
|
175
175
|
it('should not remove upload files from variance breach.', () => {
|
|
176
176
|
const submissionData = JSON.parse(JSON.stringify(_copVarianceBreachWithUploadFiles.default));
|
|
177
177
|
const form = JSON.parse(JSON.stringify(_formVarianceBreach.default));
|
|
178
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
178
|
+
const result = _index.default.clearOutUncompletedRoutes(false, form, submissionData);
|
|
179
179
|
expect(result).toEqual(_copVarianceBreachWithUploadFiles.default);
|
|
180
180
|
});
|
|
181
181
|
it('should remove hidden component.', () => {
|
|
182
182
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenComponent.default));
|
|
183
183
|
const form = JSON.parse(JSON.stringify(_formHiddenComponent.default));
|
|
184
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
184
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
185
185
|
expect(result).toEqual(_dataHiddenComponentRemoved.default);
|
|
186
186
|
});
|
|
187
187
|
it('should remove hidden component with show_when in page and component.', () => {
|
|
188
188
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenComponentShowWhenInComponentAndPage.default));
|
|
189
189
|
const form = JSON.parse(JSON.stringify(_formHiddenComponentShowWhenInComponentAndPage.default));
|
|
190
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
190
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
191
191
|
expect(result).toEqual(_dataHiddenComponentShowWhenInComponentAndPageRemoved.default);
|
|
192
192
|
});
|
|
193
193
|
it('should remove hidden component embedded in page.', () => {
|
|
194
194
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenEmbeddedComponent.default));
|
|
195
195
|
const form = JSON.parse(JSON.stringify(_formHiddenEmbeddedComponent.default));
|
|
196
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
196
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
197
197
|
expect(result).toEqual(_dataHiddenEmbeddedComponentRemoved.default);
|
|
198
198
|
});
|
|
199
199
|
it('should remove hidden collection component.', () => {
|
|
200
200
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenCollectionComponent.default));
|
|
201
201
|
const form = JSON.parse(JSON.stringify(_formHiddenCollectionComponent.default));
|
|
202
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
202
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
203
203
|
expect(result).toEqual(_dataHiddenCollectionComponentRemoved.default);
|
|
204
204
|
});
|
|
205
205
|
it('should remove hidden embedded collection component.', () => {
|
|
206
206
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenEmbeddedCollectionComponent.default));
|
|
207
207
|
const form = JSON.parse(JSON.stringify(_formHiddenEmbeddedCollectionComponent.default));
|
|
208
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
208
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
209
209
|
expect(result).toEqual(_dataHiddenEmbeddedCollectionComponentRemoved.default);
|
|
210
210
|
});
|
|
211
211
|
it('should remove hidden containerised component.', () => {
|
|
212
212
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenContainerisedComponent.default));
|
|
213
213
|
const form = JSON.parse(JSON.stringify(_formHiddenContainerisedComponent.default));
|
|
214
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
214
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
215
215
|
expect(result).toEqual(_dataHiddenContainerisedComponentRemoved.default);
|
|
216
216
|
});
|
|
217
217
|
it('should remove hidden multi-level containerised components.', () => {
|
|
218
218
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenMultilevelContainerisedComponent.default));
|
|
219
219
|
const form = JSON.parse(JSON.stringify(_formHiddenMultilevelContainerisedComponent.default));
|
|
220
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
220
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
221
221
|
expect(result).toEqual(_dataHiddenMultilevelContainerisedComponentRemoved.default);
|
|
222
222
|
});
|
|
223
223
|
it('should remove hidden leaf-level in a multi-level containerised component.', () => {
|
|
224
224
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenMultilevelContainerisedComponentLeafHidden.default));
|
|
225
225
|
const form = JSON.parse(JSON.stringify(_formHiddenMultilevelContainerisedComponentLeafHidden.default));
|
|
226
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
226
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
227
227
|
expect(result).toEqual(_dataHiddenMultilevelContainerisedComponentLeafHiddenRemoved.default);
|
|
228
228
|
});
|
|
229
229
|
it('should remove hidden component with options.', () => {
|
|
230
230
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenOptions.default));
|
|
231
231
|
const form = JSON.parse(JSON.stringify(_formHiddenOptions.default));
|
|
232
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
232
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
233
233
|
expect(result).toEqual(_dataHiddenOptionsRemoved.default);
|
|
234
234
|
});
|
|
235
235
|
it('should remove hidden component with nested questions in options.', () => {
|
|
236
236
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenComponentWithNestedQuestions.default));
|
|
237
237
|
const form = JSON.parse(JSON.stringify(_formHiddenComponentWithNestedQuestions.default));
|
|
238
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
238
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
239
239
|
expect(result).toEqual(_dataHiddenComponentWithNestedQuestionsRemoved.default);
|
|
240
240
|
});
|
|
241
241
|
it('should remove answers associated with unselected options in a containerised component.', () => {
|
|
242
242
|
const submissionData = JSON.parse(JSON.stringify(_dataNestedAnswersHiddenByOption.default));
|
|
243
243
|
const form = JSON.parse(JSON.stringify(_formNestedAnswersHiddenByOption.default));
|
|
244
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
244
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
245
245
|
expect(result).toEqual(_dataNestedAnswersHiddenByOptionRemoved.default);
|
|
246
246
|
});
|
|
247
247
|
it('should remove hidden page.', () => {
|
|
248
248
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenPage.default));
|
|
249
249
|
const form = JSON.parse(JSON.stringify(_formHiddenPage.default));
|
|
250
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
250
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
251
251
|
expect(result).toEqual(_dataHiddenPageRemoved.default);
|
|
252
252
|
});
|
|
253
253
|
it('should remove hidden page with same component reused.', () => {
|
|
254
254
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenPageSameComponentReused.default));
|
|
255
255
|
const form = JSON.parse(JSON.stringify(_formHiddenPageSameComponentReused.default));
|
|
256
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
256
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
257
257
|
expect(result).toEqual(_dataHiddenPageSameComponentReusedRemoved.default);
|
|
258
258
|
});
|
|
259
259
|
it('should show component when reused but only one show_when true.', () => {
|
|
260
260
|
const submissionData = JSON.parse(JSON.stringify(_dataPageSameComponentReusedOneShown.default));
|
|
261
261
|
const form = JSON.parse(JSON.stringify(_formPageSameComponentReusedOneShown.default));
|
|
262
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
262
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
263
263
|
expect(result).toEqual(_dataPageSameComponentReusedOneShownRemoved.default);
|
|
264
264
|
});
|
|
265
265
|
it('should remove a hidden collection on a page.', () => {
|
|
266
266
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenPageCollection.default));
|
|
267
267
|
const form = JSON.parse(JSON.stringify(_formHiddenPageCollection.default));
|
|
268
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
268
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
269
269
|
expect(result).toEqual(_dataHiddenPageCollectionRemoved.default);
|
|
270
270
|
});
|
|
271
271
|
it('hidden component with show_when rule referring to a collection.', () => {
|
|
272
272
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenComponentReferringToCollection.default));
|
|
273
273
|
const form = JSON.parse(JSON.stringify(_formHiddenComponentReferringToCollection.default));
|
|
274
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
274
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
275
275
|
expect(result).toEqual(_dataHiddenComponentReferringToCollectionRemoved.default);
|
|
276
276
|
});
|
|
277
277
|
it('hidden component with show_when rule referring to a hidden collection.', () => {
|
|
278
278
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenComponentReferringToHiddenCollection.default));
|
|
279
279
|
const form = JSON.parse(JSON.stringify(_formHiddenComponentReferringToHiddenCollection.default));
|
|
280
280
|
try {
|
|
281
|
-
_index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
281
|
+
_index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
282
282
|
throw new Error('Expected myFunction to throw an error, but it did not');
|
|
283
283
|
} catch (error) {
|
|
284
284
|
expect(error.message).toContain('It is not possible to reliably clean hidden data when a component is dependent');
|
|
@@ -287,103 +287,103 @@ describe('FormRenderer', () => {
|
|
|
287
287
|
it('should remove hidden collection components whether they are dependent on data inside or outside the collection.', () => {
|
|
288
288
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenCollectionComponentDependentOnExternalData.default));
|
|
289
289
|
const form = JSON.parse(JSON.stringify(_formHiddenCollectionComponentDependentOnExternalData.default));
|
|
290
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
290
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
291
291
|
expect(result).toEqual(_dataHiddenCollectionComponentDependentOnExternalDataRemoved.default);
|
|
292
292
|
});
|
|
293
293
|
it('should not remove component on hidden page if component used elsewhere.', () => {
|
|
294
294
|
const submissionData = JSON.parse(JSON.stringify(_dataHiddenPageComponentUsedElsewhere.default));
|
|
295
295
|
const form = JSON.parse(JSON.stringify(_formHiddenPageComponentUsedElsewhere.default));
|
|
296
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
296
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
297
297
|
expect(result).toEqual(_dataHiddenPageComponentUsedElsewhereRemoved.default);
|
|
298
298
|
});
|
|
299
299
|
it('chained show_whens should be resolved from the end of the chain backup to the start.', () => {
|
|
300
300
|
const submissionData = JSON.parse(JSON.stringify(_dataChainedComponentShowWhens.default));
|
|
301
301
|
const form = JSON.parse(JSON.stringify(_formChainedComponentShowWhens.default));
|
|
302
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
302
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
303
303
|
expect(result).toEqual(_dataChainedComponentShowWhensRemoved.default);
|
|
304
304
|
});
|
|
305
305
|
it('chained show_whens when top level dependency is field within refdata object.', () => {
|
|
306
306
|
const submissionData = JSON.parse(JSON.stringify(_dataChainedComponentShowWhensRefdata.default));
|
|
307
307
|
const form = JSON.parse(JSON.stringify(_formChainedComponentShowWhensRefdata.default));
|
|
308
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
308
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
309
309
|
expect(result).toEqual(_dataChainedComponentShowWhensRefdataRemoved.default);
|
|
310
310
|
});
|
|
311
311
|
it('chained show_whens should be resolved from the end of the chain backup to the start, even if the target and dependent components are in containers thus having segmented paths.', () => {
|
|
312
312
|
const submissionData = JSON.parse(JSON.stringify(_dataChainedComponentShowWhensContainerised.default));
|
|
313
313
|
const form = JSON.parse(JSON.stringify(_formChainedComponentShowWhensContainerised.default));
|
|
314
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
314
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
315
315
|
expect(result).toEqual(_dataChainedComponentShowWhensContainerisedRemoved.default);
|
|
316
316
|
});
|
|
317
317
|
it('chained show_whens when the component at the end of the chain is hidden indirectly via page show_when.', () => {
|
|
318
318
|
const submissionData = JSON.parse(JSON.stringify(_dataChainedShowWhensPageHidden.default));
|
|
319
319
|
const form = JSON.parse(JSON.stringify(_formChainedShowWhensPageHidden.default));
|
|
320
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
320
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
321
321
|
expect(result).toEqual(_dataChainedShowWhensPageHiddenRemoved.default);
|
|
322
322
|
});
|
|
323
323
|
it('chained show_whens when the dependent component is nested single question.', () => {
|
|
324
324
|
const submissionData = JSON.parse(JSON.stringify(_dataChainedComponentShowWhensDependentComponentNested.default));
|
|
325
325
|
const form = JSON.parse(JSON.stringify(_formChainedComponentShowWhensDependentComponentNested.default));
|
|
326
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
326
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
327
327
|
expect(result).toEqual(_dataChainedComponentShowWhensDependentComponentNestedRemoved.default);
|
|
328
328
|
});
|
|
329
329
|
it('chained show_whens when the target component is nested.', () => {
|
|
330
330
|
const submissionData = JSON.parse(JSON.stringify(_dataChainedComponentShowWhensTargetComponentNested.default));
|
|
331
331
|
const form = JSON.parse(JSON.stringify(_formChainedComponentShowWhensTargetComponentNested.default));
|
|
332
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
332
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
333
333
|
expect(result).toEqual(_dataChainedComponentShowWhensTargetComponentNestedRemoved.default);
|
|
334
334
|
});
|
|
335
335
|
it('chained show_whens when the dependent component is nested entire block.', () => {
|
|
336
336
|
const submissionData = JSON.parse(JSON.stringify(_dataChainedComponentShowWhensDependentComponentNestedBlock.default));
|
|
337
337
|
const form = JSON.parse(JSON.stringify(_formChainedComponentShowWhensDependentComponentNestedBlock.default));
|
|
338
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
338
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
339
339
|
expect(result).toEqual(_dataChainedComponentShowWhensDependentComponentNestedBlockRemoved.default);
|
|
340
340
|
});
|
|
341
341
|
it('business interests removed from mandec.', () => {
|
|
342
342
|
const submissionData = JSON.parse(JSON.stringify(_copMandecRemoveBusinessInterestsBefore.default));
|
|
343
343
|
const form = JSON.parse(JSON.stringify(_formCopMandec.default));
|
|
344
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
344
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
345
345
|
expect(result).toEqual(_copMandecRemoveBusinessInterestsAfter.default);
|
|
346
346
|
});
|
|
347
347
|
it('criminality removed from mandec.', () => {
|
|
348
348
|
const submissionData = JSON.parse(JSON.stringify(_copMandecRemoveCriminalityBefore.default));
|
|
349
349
|
const form = JSON.parse(JSON.stringify(_formCopMandec.default));
|
|
350
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
350
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
351
351
|
expect(result).toEqual(_copMandecRemoveCriminalityAfter.default);
|
|
352
352
|
});
|
|
353
353
|
it('Unspent convictions removed from mandec.', () => {
|
|
354
354
|
const submissionData = JSON.parse(JSON.stringify(_copMandecRemoveUnspentConvictionsBefore.default));
|
|
355
355
|
const form = JSON.parse(JSON.stringify(_formCopMandec.default));
|
|
356
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
356
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
357
357
|
expect(result).toEqual(_copMandecRemoveUnspentConvictionsAfter.default);
|
|
358
358
|
});
|
|
359
359
|
it('Reassign to RCC form, preserved fields not cleansed.', () => {
|
|
360
360
|
const submissionData = JSON.parse(JSON.stringify(_reassignToRcc.default));
|
|
361
361
|
const form = JSON.parse(JSON.stringify(_copReassignTaskToRcc.default));
|
|
362
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
362
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
363
363
|
expect(result).toEqual(_reassignToRcc.default);
|
|
364
364
|
});
|
|
365
365
|
it('photos removed from airpax.', () => {
|
|
366
366
|
const submissionData = JSON.parse(JSON.stringify(_copAirpaxRemovePhotosBefore.default));
|
|
367
367
|
const form = JSON.parse(JSON.stringify(_formCopAirpax.default));
|
|
368
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
368
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
369
369
|
expect(result).toEqual(_copAirpaxRemovePhotosAfter.default);
|
|
370
370
|
});
|
|
371
371
|
it('carrier not removed from airpax.', () => {
|
|
372
372
|
const submissionData = JSON.parse(JSON.stringify(_copAirpaxCarrier.default));
|
|
373
373
|
const form = JSON.parse(JSON.stringify(_formCopAirpax.default));
|
|
374
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
374
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
375
375
|
expect(result).toEqual(_copAirpaxCarrier.default);
|
|
376
376
|
});
|
|
377
377
|
it('airpax change whatHappened to hide whoDecidedSelection.', () => {
|
|
378
378
|
const submissionData = JSON.parse(JSON.stringify(_copAirpaxChangeWhatHappenedBefore.default));
|
|
379
379
|
const form = JSON.parse(JSON.stringify(_formCopAirpax.default));
|
|
380
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
380
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
381
381
|
expect(result).toEqual(_copAirpaxChangeWhatHappenedAfter.default);
|
|
382
382
|
});
|
|
383
383
|
it('should handle nested option in container componet defined in the page.', () => {
|
|
384
384
|
const submissionData = JSON.parse(JSON.stringify(_dataPageNestedRadioComponent.default));
|
|
385
385
|
const form = JSON.parse(JSON.stringify(_formPageNestedRadioComponent.default));
|
|
386
|
-
const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
386
|
+
const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
|
|
387
387
|
expect(result).toEqual(_dataPageNestedRadioComponentRemoved.default);
|
|
388
388
|
});
|
|
389
389
|
});
|
|
@@ -18,7 +18,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
18
18
|
*
|
|
19
19
|
* @param {*} action
|
|
20
20
|
*/
|
|
21
|
-
const onCYAAction = (setPagePoint, action, pages, validate, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState, submitting, setSubmitting) => {
|
|
21
|
+
const onCYAAction = (setPagePoint, action, pages, validate, cleanseHiddenData, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState, submitting, setSubmitting) => {
|
|
22
22
|
// Check to see whether the action is able to proceed, which in
|
|
23
23
|
// in the case of a submission will validate the fields in the page.
|
|
24
24
|
if (action.type === _models.PageAction.TYPES.SUBMIT && hub !== _models.HubFormats.TASK) {
|
|
@@ -36,7 +36,7 @@ const onCYAAction = (setPagePoint, action, pages, validate, components, data, se
|
|
|
36
36
|
pages,
|
|
37
37
|
components
|
|
38
38
|
};
|
|
39
|
-
_helpers.default.clearOutUncompletedRoutes(formPagesAndComponents, submissionData);
|
|
39
|
+
_helpers.default.clearOutUncompletedRoutes(cleanseHiddenData, formPagesAndComponents, submissionData);
|
|
40
40
|
submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
|
|
41
41
|
setData(submissionData);
|
|
42
42
|
// Now submit the data to the backend...
|
|
@@ -80,7 +80,7 @@ const onCYAAction = (setPagePoint, action, pages, validate, components, data, se
|
|
|
80
80
|
pages,
|
|
81
81
|
components
|
|
82
82
|
};
|
|
83
|
-
_helpers.default.clearOutUncompletedRoutes(formPagesAndComponents, submissionData);
|
|
83
|
+
_helpers.default.clearOutUncompletedRoutes(cleanseHiddenData, formPagesAndComponents, submissionData);
|
|
84
84
|
submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
|
|
85
85
|
setData(submissionData);
|
|
86
86
|
// Now submit the data to the backend...
|
|
@@ -57,7 +57,7 @@ jest.mock('./helpers', () => ({
|
|
|
57
57
|
this.getSubmissionStatusCalls = 0;
|
|
58
58
|
},
|
|
59
59
|
clearOutUncompletedRoutesCalls: 0,
|
|
60
|
-
clearOutUncompletedRoutes(formPagesAndComponents, formData) {
|
|
60
|
+
clearOutUncompletedRoutes(cleanseHiddenData, formPagesAndComponents, formData) {
|
|
61
61
|
this.clearOutUncompletedRoutesCalls += 1;
|
|
62
62
|
return formData;
|
|
63
63
|
}
|
|
@@ -170,6 +170,7 @@ describe('components.FormRenderer.onCYAAction', () => {
|
|
|
170
170
|
},
|
|
171
171
|
pages: PAGES,
|
|
172
172
|
validate: () => {},
|
|
173
|
+
cleanseHiddenData: true,
|
|
173
174
|
components: COMPONENTS,
|
|
174
175
|
data: {},
|
|
175
176
|
setData: mockSetData,
|
|
@@ -19,7 +19,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
19
19
|
// (patch captures payload-ready field name and value,
|
|
20
20
|
// patchLabel captures non-ID values
|
|
21
21
|
// for display purposes after submission.)
|
|
22
|
-
const onPageAction = (action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, existingErrors) => {
|
|
22
|
+
const onPageAction = (action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, cleanseHiddenData, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, existingErrors) => {
|
|
23
23
|
// Save a copy of data in case submit errors and we need to revert
|
|
24
24
|
const preSubmitData = _objectSpread({}, data);
|
|
25
25
|
const form = formState;
|
|
@@ -112,7 +112,7 @@ const onPageAction = (action, patch, patchLabel, hooks, data, formState, validat
|
|
|
112
112
|
components
|
|
113
113
|
};
|
|
114
114
|
if (action.type === _models.PageAction.TYPES.SUBMIT) {
|
|
115
|
-
_helpers.default.clearOutUncompletedRoutes(formPagesAndComponents, submissionData);
|
|
115
|
+
_helpers.default.clearOutUncompletedRoutes(cleanseHiddenData, formPagesAndComponents, submissionData);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
// In case of hub-and-spoke if patchLabel has changed then
|
|
@@ -47,7 +47,7 @@ jest.mock('./helpers', () => ({
|
|
|
47
47
|
return patch;
|
|
48
48
|
},
|
|
49
49
|
clearOutUncompletedRoutesCalls: 0,
|
|
50
|
-
clearOutUncompletedRoutes(formPagesAndComponents, formData) {
|
|
50
|
+
clearOutUncompletedRoutes(cleanseHiddenData, formPagesAndComponents, formData) {
|
|
51
51
|
this.clearOutUncompletedRoutesCalls += 1;
|
|
52
52
|
return formData;
|
|
53
53
|
},
|
|
@@ -229,6 +229,7 @@ describe('components.FormRenderer.onPageAction', () => {
|
|
|
229
229
|
validate: MOCK_VALIDATE,
|
|
230
230
|
onPageChange: mockOnPageChange,
|
|
231
231
|
type: _models.FormTypes.FORM_WITH_TASK,
|
|
232
|
+
cleanseHiddenData: true,
|
|
232
233
|
pages: PAGES,
|
|
233
234
|
components: COMPONENTS,
|
|
234
235
|
pageId: 'alpha',
|