@ukhomeoffice/cop-react-form-renderer 4.56.0 → 4.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/TaskList/TaskList.js +6 -4
- package/dist/components/TaskList/TaskList.test.js +52 -2
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +15 -1
- package/dist/utils/Validate/additional/index.js +5 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +24 -0
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +48 -0
- package/package.json +1 -1
|
@@ -70,16 +70,18 @@ var TaskList = function TaskList(_ref) {
|
|
|
70
70
|
var classes = _copReactComponents.Utils.classBuilder(classBlock, classModifiers, className); //TODO state will be retrieved from a document in S3 rather than given in the component definition, covered under COP-9885
|
|
71
71
|
|
|
72
72
|
|
|
73
|
-
var _sections$
|
|
73
|
+
var _sections$filter$redu = sections.filter(function (section) {
|
|
74
|
+
return !section.skipped;
|
|
75
|
+
}).reduce(function (acc, current) {
|
|
74
76
|
var _current$tasks$filter, _current$tasks, _current$tasks$length, _current$tasks2;
|
|
75
77
|
|
|
76
78
|
return [acc[0] + ((_current$tasks$filter = (_current$tasks = current.tasks) === null || _current$tasks === void 0 ? void 0 : _current$tasks.filter(function (t) {
|
|
77
79
|
return t.state === _models.TaskStates.TYPES.COMPLETE;
|
|
78
80
|
}).length) !== null && _current$tasks$filter !== void 0 ? _current$tasks$filter : 0), acc[1] + ((_current$tasks$length = (_current$tasks2 = current.tasks) === null || _current$tasks2 === void 0 ? void 0 : _current$tasks2.length) !== null && _current$tasks$length !== void 0 ? _current$tasks$length : 0)];
|
|
79
81
|
}, [0, 0]),
|
|
80
|
-
_sections$
|
|
81
|
-
completeSections = _sections$
|
|
82
|
-
totalSections = _sections$
|
|
82
|
+
_sections$filter$redu2 = _slicedToArray(_sections$filter$redu, 2),
|
|
83
|
+
completeSections = _sections$filter$redu2[0],
|
|
84
|
+
totalSections = _sections$filter$redu2[1];
|
|
83
85
|
|
|
84
86
|
var notesId = "".concat(attrs.id, "Notes");
|
|
85
87
|
|
|
@@ -309,6 +309,56 @@ describe('components', function () {
|
|
|
309
309
|
var incompleteForm = childNodes[0].childNodes[0];
|
|
310
310
|
expect(incompleteForm.textContent).toEqual(INCOMPLETE_TITLE);
|
|
311
311
|
});
|
|
312
|
+
it('should not show skipped sections', function () {
|
|
313
|
+
var INCOMPLETE_TITLE = 'Alpha Bravo';
|
|
314
|
+
var COP_REF = '123';
|
|
315
|
+
var sections = [{
|
|
316
|
+
name: 'These are your tasks',
|
|
317
|
+
skipped: true,
|
|
318
|
+
tasks: [{
|
|
319
|
+
name: 'Nice task',
|
|
320
|
+
state: 'complete',
|
|
321
|
+
pages: ['pageOne']
|
|
322
|
+
}, {
|
|
323
|
+
name: 'Ok task',
|
|
324
|
+
state: 'inProgress',
|
|
325
|
+
pages: ['pageTwo']
|
|
326
|
+
}, {
|
|
327
|
+
name: 'Terrible task',
|
|
328
|
+
state: 'notStarted',
|
|
329
|
+
pages: ['pageThree']
|
|
330
|
+
}]
|
|
331
|
+
}, {
|
|
332
|
+
name: 'These are your extra bonus tasks',
|
|
333
|
+
tasks: [{
|
|
334
|
+
name: 'Nice task',
|
|
335
|
+
state: 'complete',
|
|
336
|
+
pages: ['pageFour']
|
|
337
|
+
}, {
|
|
338
|
+
name: 'Ok task',
|
|
339
|
+
state: 'cannotStartYet',
|
|
340
|
+
pages: ['pageFive']
|
|
341
|
+
}, {
|
|
342
|
+
name: 'Terrible task',
|
|
343
|
+
state: 'cannotStartYet',
|
|
344
|
+
pages: ['pageSix']
|
|
345
|
+
}]
|
|
346
|
+
}];
|
|
347
|
+
|
|
348
|
+
var _render6 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
|
|
349
|
+
refNumber: COP_REF,
|
|
350
|
+
sections: sections,
|
|
351
|
+
incompleteTitle: INCOMPLETE_TITLE
|
|
352
|
+
})),
|
|
353
|
+
container = _render6.container;
|
|
354
|
+
|
|
355
|
+
var childNodes = container.childNodes;
|
|
356
|
+
expect(childNodes.length).toEqual(1);
|
|
357
|
+
expect(childNodes[0].childNodes.length).toEqual(4);
|
|
358
|
+
expect(childNodes[0].childNodes[0].textContent).toEqual(INCOMPLETE_TITLE);
|
|
359
|
+
expect(childNodes[0].childNodes[1].textContent).toEqual('You have completed 1 of 3 sections');
|
|
360
|
+
expect(childNodes[0].childNodes[2].textContent).toEqual("1. ".concat(sections[1].name));
|
|
361
|
+
});
|
|
312
362
|
});
|
|
313
363
|
it('should pass the selected task to the given onTaskAction function', function () {
|
|
314
364
|
var COP_REF = '123';
|
|
@@ -336,13 +386,13 @@ describe('components', function () {
|
|
|
336
386
|
}]
|
|
337
387
|
}];
|
|
338
388
|
|
|
339
|
-
var
|
|
389
|
+
var _render7 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
|
|
340
390
|
refNumber: COP_REF,
|
|
341
391
|
refTitle: REF_TITLE,
|
|
342
392
|
sections: sections,
|
|
343
393
|
onTaskAction: ON_CLICK
|
|
344
394
|
})),
|
|
345
|
-
container =
|
|
395
|
+
container = _render7.container;
|
|
346
396
|
|
|
347
397
|
var taskList = container.childNodes[0].childNodes[5].childNodes;
|
|
348
398
|
var firstTask = taskList[1].childNodes[0].childNodes[0];
|
|
@@ -92,6 +92,19 @@ var getActionRows = function getActionRows(page, item, onAction, labelCount) {
|
|
|
92
92
|
return actions;
|
|
93
93
|
};
|
|
94
94
|
|
|
95
|
+
var getChangeActionForPage = function getChangeActionForPage(page, item, onAction) {
|
|
96
|
+
return function () {
|
|
97
|
+
var changeCallback = function changeCallback(data) {
|
|
98
|
+
data["".concat(page.collection.name, "ActiveId")] = item.id;
|
|
99
|
+
return data;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
onAction({
|
|
103
|
+
pageId: page.id
|
|
104
|
+
}, changeCallback);
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
|
|
95
108
|
var getCYARowsForCollectionPage = function getCYARowsForCollectionPage(page, onAction) {
|
|
96
109
|
var _page$formData, _page$formData$page$c;
|
|
97
110
|
|
|
@@ -135,7 +148,8 @@ var getCYARowsForCollectionPage = function getCYARowsForCollectionPage(page, onA
|
|
|
135
148
|
}
|
|
136
149
|
|
|
137
150
|
var container = getContainerForPage(p, item, labelCount, full_path);
|
|
138
|
-
var
|
|
151
|
+
var rowChangeAction = getChangeActionForPage(p, item, onAction);
|
|
152
|
+
var containerRows = (0, _getCYARowsForContainer.default)(p, container, item, rowChangeAction);
|
|
139
153
|
rows = rows.concat(containerRows);
|
|
140
154
|
}
|
|
141
155
|
});
|
|
@@ -21,11 +21,13 @@ var _mustBeLongerThan = _interopRequireDefault(require("./mustBeLongerThan"));
|
|
|
21
21
|
|
|
22
22
|
var _mustBeShorterThan = _interopRequireDefault(require("./mustBeShorterThan"));
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _mustBeGreaterThan = _interopRequireDefault(require("./mustBeGreaterThan"));
|
|
25
|
+
|
|
26
|
+
var _mustBeLessThan = _interopRequireDefault(require("./mustBeLessThan"));
|
|
25
27
|
|
|
26
28
|
var _mustBeNumbersOnly = _interopRequireDefault(require("./mustBeNumbersOnly"));
|
|
27
29
|
|
|
28
|
-
var
|
|
30
|
+
var _mustEnterAtLeastOne = _interopRequireDefault(require("./mustEnterAtLeastOne"));
|
|
29
31
|
|
|
30
32
|
var _mustHaveLessThanDecimalPlaces = _interopRequireDefault(require("./mustHaveLessThanDecimalPlaces"));
|
|
31
33
|
|
|
@@ -46,6 +48,7 @@ var functions = {
|
|
|
46
48
|
mustEnterAtLeastOne: _mustEnterAtLeastOne.default,
|
|
47
49
|
mustBeNumbersOnly: _mustBeNumbersOnly.default,
|
|
48
50
|
mustBeLessThan: _mustBeLessThan.default,
|
|
51
|
+
mustBeGreaterThan: _mustBeGreaterThan.default,
|
|
49
52
|
mustHaveLessThanDecimalPlaces: _mustHaveLessThanDecimalPlaces.default,
|
|
50
53
|
mustSelectOnlyOne: _mustSelectOnlyOne.default
|
|
51
54
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @param {string} string - the string to check value.
|
|
10
|
+
* @param {number} config.value - the string.value must be greater than config.value.
|
|
11
|
+
* @returns true if string value is greater than config.value, false if not.
|
|
12
|
+
*/
|
|
13
|
+
var mustBeGreaterThan = function mustBeGreaterThan(string, config) {
|
|
14
|
+
if (!string) {
|
|
15
|
+
// null, undefined and empty strings should be picked up by the required flag
|
|
16
|
+
// and not considered here as they would be valid for optional fields.
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return parseFloat(string) > config.value;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
var _default = mustBeGreaterThan;
|
|
24
|
+
exports.default = _default;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _mustBeGreaterThan = _interopRequireDefault(require("./mustBeGreaterThan"));
|
|
4
|
+
|
|
5
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
+
|
|
7
|
+
describe('utils', function () {
|
|
8
|
+
describe('Validate', function () {
|
|
9
|
+
describe('additional', function () {
|
|
10
|
+
describe('mustBeGreaterThan', function () {
|
|
11
|
+
test('should return true given a number greater than 10', function () {
|
|
12
|
+
var result = (0, _mustBeGreaterThan.default)('11', {
|
|
13
|
+
value: 10
|
|
14
|
+
});
|
|
15
|
+
expect(result).toEqual(true);
|
|
16
|
+
});
|
|
17
|
+
test('should return false if provided value less than or equal to 10', function () {
|
|
18
|
+
var result1 = (0, _mustBeGreaterThan.default)('9', {
|
|
19
|
+
value: 10
|
|
20
|
+
});
|
|
21
|
+
expect(result1).toBeFalsy();
|
|
22
|
+
var result2 = (0, _mustBeGreaterThan.default)('10', {
|
|
23
|
+
value: 10
|
|
24
|
+
});
|
|
25
|
+
expect(result2).toBeFalsy();
|
|
26
|
+
});
|
|
27
|
+
test('should return true when string is undefined', function () {
|
|
28
|
+
var result = (0, _mustBeGreaterThan.default)(undefined, {
|
|
29
|
+
value: 10
|
|
30
|
+
});
|
|
31
|
+
expect(result).toEqual(true);
|
|
32
|
+
});
|
|
33
|
+
test('should return true when string is empty', function () {
|
|
34
|
+
var result = (0, _mustBeGreaterThan.default)('', {
|
|
35
|
+
value: 10
|
|
36
|
+
});
|
|
37
|
+
expect(result).toEqual(true);
|
|
38
|
+
});
|
|
39
|
+
test('should return true when string is null', function () {
|
|
40
|
+
var result = (0, _mustBeGreaterThan.default)(null, {
|
|
41
|
+
value: 10
|
|
42
|
+
});
|
|
43
|
+
expect(result).toEqual(true);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|