@ukhomeoffice/cop-react-form-renderer 4.62.0 → 4.63.2

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.
@@ -23,7 +23,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
23
23
 
24
24
  var Answer = function Answer(_ref) {
25
25
  var value = _ref.value,
26
- component = _ref.component;
26
+ component = _ref.component,
27
+ formData = _ref.formData;
27
28
 
28
29
  if (!value) {
29
30
  return /*#__PURE__*/_react.default.createElement(_VisuallyHidden.default, null, "No answer");
@@ -38,7 +39,8 @@ var Answer = function Answer(_ref) {
38
39
  readonly: true
39
40
  }),
40
41
  wrap: false,
41
- value: value
42
+ value: value,
43
+ formData: formData
42
44
  });
43
45
  };
44
46
 
@@ -116,5 +116,47 @@ describe('components', function () {
116
116
  }
117
117
  }, _callee4);
118
118
  })));
119
+ it('should handle a component that requires interpolation', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
120
+ var VALUE, DATA, COMPONENT, _renderWithValidation5, container, answer;
121
+
122
+ return regeneratorRuntime.wrap(function _callee5$(_context5) {
123
+ while (1) {
124
+ switch (_context5.prev = _context5.next) {
125
+ case 0:
126
+ VALUE = 'beta';
127
+ DATA = {
128
+ dynamic: 'delta'
129
+ };
130
+ COMPONENT = {
131
+ id: 'alpha',
132
+ fieldId: 'alpha',
133
+ type: 'radios',
134
+ data: {
135
+ options: [{
136
+ value: 'beta',
137
+ label: 'hardcoded ${dynamic}'
138
+ }, {
139
+ value: 'charlie',
140
+ label: 'all hardcoded'
141
+ }]
142
+ }
143
+ };
144
+ _renderWithValidation5 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_Answer.default, {
145
+ value: VALUE,
146
+ component: COMPONENT,
147
+ formData: DATA
148
+ })), container = _renderWithValidation5.container;
149
+ answer = container.childNodes[0];
150
+ expect(answer.tagName).toEqual('DIV');
151
+ expect(answer.classList).toContain(_Readonly.DEFAULT_CLASS);
152
+ expect(answer.textContent).toEqual('hardcoded delta');
153
+
154
+ case 8:
155
+ case "end":
156
+ return _context5.stop();
157
+ }
158
+ }
159
+ }, _callee5);
160
+ })));
119
161
  });
120
162
  });
@@ -97,7 +97,8 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
97
97
  value: /*#__PURE__*/_react.default.createElement(_Answer.default, {
98
98
  key: "".concat(pageIndex, "_").concat(index),
99
99
  value: row.value,
100
- component: row.component
100
+ component: row.component,
101
+ formData: page.formData
101
102
  })
102
103
  });
103
104
  });
@@ -33,6 +33,8 @@ var _handlers = _interopRequireDefault(require("./handlers"));
33
33
 
34
34
  var _helpers = _interopRequireDefault(require("./helpers"));
35
35
 
36
+ var _onCYAAction = _interopRequireDefault(require("./onCYAAction"));
37
+
36
38
  require("./FormRenderer.scss");
37
39
 
38
40
  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); }
@@ -105,7 +107,7 @@ var DEFAULT_CLASS = 'hods-form';
105
107
  exports.DEFAULT_CLASS = DEFAULT_CLASS;
106
108
 
107
109
  var InternalFormRenderer = function InternalFormRenderer(_ref2) {
108
- var _formState$page5, _formState$page$actio, _formState$cya$hideCh, _formState$cya$hideGr;
110
+ var _formState$page4, _formState$page$actio, _formState$cya$hideCh, _formState$cya$hideGr;
109
111
 
110
112
  var title = _ref2.title,
111
113
  type = _ref2.type,
@@ -515,108 +517,6 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
515
517
  onPageChange(currentTask.pages[0], state);
516
518
  }
517
519
  }
518
- }; // Handle actions from "Check your answers".
519
-
520
-
521
- var onCYAAction = function onCYAAction(action) {
522
- // Check to see whether the action is able to proceed, which in
523
- // in the case of a submission will validate the fields in the page.
524
- if (action.type === _models.PageAction.TYPES.SUBMIT) {
525
- setPagePoint('submit');
526
-
527
- if (_helpers.default.canCYASubmit(pages, validate.pages)) {
528
- // Submit.
529
- var submissionData = _utils.default.Format.form({
530
- pages: pages,
531
- components: components
532
- }, _objectSpread({}, data), _models.EventTypes.SUBMIT);
533
-
534
- submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
535
- setData(submissionData); // Now submit the data to the backend...
536
-
537
- hooks.onSubmit(action.type, submissionData, function () {
538
- return hooks.onFormComplete();
539
- }, function (errors) {
540
- return _handlers.default.submissionError(errors, addErrors);
541
- });
542
- }
543
- }
544
-
545
- if (action.type === _models.PageAction.TYPES.SAVE_AND_CONTINUE && hub === _models.HubFormats.TASK) {
546
- var shouldValidate = !(action.hasOwnProperty('validate') && !action.validate);
547
- var canSubmit = shouldValidate ? _helpers.default.canCYASubmit(currentTask.fullPages, validate.pages) : true;
548
-
549
- if (canSubmit) {
550
- var _submissionData = _utils.default.Format.form({
551
- pages: pages,
552
- components: components
553
- }, _objectSpread({}, data), _models.EventTypes.SUBMIT);
554
-
555
- _submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, _submissionData, currentTask, true);
556
- setData(_submissionData);
557
- hooks.onSubmit(action.type, _submissionData, function () {
558
- return onPageChange(_models.FormPages.HUB);
559
- }, function (errors) {
560
- return _handlers.default.submissionError(errors, addErrors);
561
- });
562
- }
563
- }
564
-
565
- if (action.type === _models.PageAction.TYPES.SUBMIT && hub === _models.HubFormats.TASK) {
566
- setPagePoint('submit');
567
-
568
- if (_helpers.default.canCYASubmit(currentTask.fullPages, validate.pages)) {
569
- // Submit.
570
- var _submissionData2 = _utils.default.Format.form({
571
- pages: pages,
572
- components: components
573
- }, _objectSpread({}, data), _models.EventTypes.SUBMIT);
574
-
575
- _submissionData2.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, _submissionData2, currentTask, true);
576
- setData(_submissionData2); // Now submit the data to the backend...
577
-
578
- hooks.onSubmit(action.type, _submissionData2, function () {
579
- return hooks.onFormComplete();
580
- }, function (errors) {
581
- return _handlers.default.submissionError(errors, addErrors);
582
- });
583
- }
584
- }
585
-
586
- if (action.type === _models.PageAction.TYPES.SAVE_AND_RETURN) {
587
- var _shouldValidate = !(action.hasOwnProperty('validate') && !action.validate);
588
-
589
- var _canSubmit = _shouldValidate ? _helpers.default.canCYASubmit(currentTask.fullPages, validate.pages) : true;
590
-
591
- if (_canSubmit) {
592
- var _submissionData3 = _utils.default.Format.form({
593
- pages: pages,
594
- components: components
595
- }, _objectSpread({}, data), _models.EventTypes.SUBMIT);
596
-
597
- _submissionData3.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, _submissionData3, currentTask);
598
- setData(_submissionData3);
599
- hooks.onSubmit(action.type, _submissionData3, function () {
600
- if (type === _models.FormTypes.TASK) {
601
- onPageChange(undefined);
602
- } else {
603
- onPageChange(_models.FormPages.HUB);
604
- }
605
- }, function (errors) {
606
- return _handlers.default.submissionError(errors, addErrors);
607
- });
608
- }
609
- }
610
-
611
- if (action.type === _models.PageAction.TYPES.NAVIGATE) {
612
- var _formState$page4;
613
-
614
- onPageChange(_helpers.default.getNextPageId(type, pages, pageId, action, (_formState$page4 = formState.page) === null || _formState$page4 === void 0 ? void 0 : _formState$page4.formData));
615
- }
616
-
617
- if (action.type === _models.PageAction.TYPES.CANCEL) {
618
- hooks.onCancel();
619
- }
620
520
  };
621
521
 
622
522
  var classes = _utils.default.classBuilder(classBlock, classModifiers, className);
@@ -629,12 +529,14 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
629
529
  className: classes()
630
530
  }, title && !hide_title && pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_copReactComponents.LargeHeading, null, title), formState.cya && /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, _extends({
631
531
  pages: _helpers.default.getRelevantPages(formState, pages, currentTask.fullPages)
632
- }, cya, ((_formState$page5 = formState.page) === null || _formState$page5 === void 0 ? void 0 : _formState$page5.type) === _models.FormPages.PARTIAL_CYA && {
532
+ }, cya, ((_formState$page4 = formState.page) === null || _formState$page4 === void 0 ? void 0 : _formState$page4.type) === _models.FormPages.PARTIAL_CYA && {
633
533
  actions: (_formState$page$actio = formState.page.actions) === null || _formState$page$actio === void 0 ? void 0 : _formState$page$actio.filter(function (action) {
634
534
  return _utils.default.Component.show(action, data);
635
535
  })
636
536
  }, formState.cya, {
637
- onAction: onCYAAction,
537
+ onAction: function onAction(action) {
538
+ (0, _onCYAAction.default)(setPagePoint, action, pages, validate, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState);
539
+ },
638
540
  onRowAction: onCYARowAction,
639
541
  summaryListClassModifiers: summaryListClassModifiers,
640
542
  hide_title: hide_title,
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _models = require("../../models");
9
+
10
+ var _utils = _interopRequireDefault(require("../../utils"));
11
+
12
+ var _handlers = _interopRequireDefault(require("./handlers"));
13
+
14
+ var _helpers = _interopRequireDefault(require("./helpers"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
+
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
+
22
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23
+
24
+ /**
25
+ *
26
+ * @param {*} action
27
+ */
28
+ var onCYAAction = function onCYAAction(setPagePoint, action, pages, validate, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState) {
29
+ // Check to see whether the action is able to proceed, which in
30
+ // in the case of a submission will validate the fields in the page.
31
+ if (action.type === _models.PageAction.TYPES.SUBMIT && hub !== _models.HubFormats.TASK) {
32
+ setPagePoint('submit');
33
+
34
+ if (_helpers.default.canCYASubmit(pages, validate.pages)) {
35
+ // Submit.
36
+ var submissionData = _utils.default.Format.form({
37
+ pages: pages,
38
+ components: components
39
+ }, _objectSpread({}, data), _models.EventTypes.SUBMIT);
40
+
41
+ submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
42
+ setData(submissionData); // Now submit the data to the backend...
43
+
44
+ hooks.onSubmit(action.type, submissionData, function () {
45
+ return hooks.onFormComplete();
46
+ }, function (errors) {
47
+ return _handlers.default.submissionError(errors, addErrors);
48
+ });
49
+ }
50
+ }
51
+
52
+ if (action.type === _models.PageAction.TYPES.SAVE_AND_CONTINUE && hub === _models.HubFormats.TASK) {
53
+ var shouldValidate = !(action.hasOwnProperty('validate') && !action.validate);
54
+ var canSubmit = shouldValidate ? _helpers.default.canCYASubmit(currentTask.fullPages, validate.pages) : true;
55
+
56
+ if (canSubmit) {
57
+ var _submissionData = _utils.default.Format.form({
58
+ pages: pages,
59
+ components: components
60
+ }, _objectSpread({}, data), _models.EventTypes.SUBMIT);
61
+
62
+ _submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, _submissionData, currentTask, true);
63
+ setData(_submissionData);
64
+ hooks.onSubmit(action.type, _submissionData, function () {
65
+ return onPageChange(_models.FormPages.HUB);
66
+ }, function (errors) {
67
+ return _handlers.default.submissionError(errors, addErrors);
68
+ });
69
+ }
70
+ }
71
+
72
+ if (action.type === _models.PageAction.TYPES.SUBMIT && hub === _models.HubFormats.TASK) {
73
+ setPagePoint('submit');
74
+
75
+ if (_helpers.default.canCYASubmit(currentTask.fullPages, validate.pages)) {
76
+ // Submit.
77
+ var _submissionData2 = _utils.default.Format.form({
78
+ pages: pages,
79
+ components: components
80
+ }, _objectSpread({}, data), _models.EventTypes.SUBMIT);
81
+
82
+ _submissionData2.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, _submissionData2, currentTask, true);
83
+ setData(_submissionData2); // Now submit the data to the backend...
84
+
85
+ hooks.onSubmit(action.type, _submissionData2, function () {
86
+ return hooks.onFormComplete();
87
+ }, function (errors) {
88
+ return _handlers.default.submissionError(errors, addErrors);
89
+ });
90
+ }
91
+ }
92
+
93
+ if (action.type === _models.PageAction.TYPES.SAVE_AND_RETURN) {
94
+ var _shouldValidate = !(action.hasOwnProperty('validate') && !action.validate);
95
+
96
+ var _canSubmit = _shouldValidate ? _helpers.default.canCYASubmit(currentTask.fullPages, validate.pages) : true;
97
+
98
+ if (_canSubmit) {
99
+ var _submissionData3 = _utils.default.Format.form({
100
+ pages: pages,
101
+ components: components
102
+ }, _objectSpread({}, data), _models.EventTypes.SUBMIT);
103
+
104
+ _submissionData3.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, _submissionData3, currentTask, false);
105
+ setData(_submissionData3);
106
+ hooks.onSubmit(action.type, _submissionData3, function () {
107
+ if (type === _models.FormTypes.TASK) {
108
+ onPageChange(undefined);
109
+ } else {
110
+ onPageChange(_models.FormPages.HUB);
111
+ }
112
+ }, function (errors) {
113
+ return _handlers.default.submissionError(errors, addErrors);
114
+ });
115
+ }
116
+ }
117
+
118
+ if (action.type === _models.PageAction.TYPES.NAVIGATE) {
119
+ var _formState$page;
120
+
121
+ onPageChange(_helpers.default.getNextPageId(type, pages, pageId, action, (_formState$page = formState.page) === null || _formState$page === void 0 ? void 0 : _formState$page.formData));
122
+ }
123
+
124
+ if (action.type === _models.PageAction.TYPES.CANCEL) {
125
+ hooks.onCancel();
126
+ }
127
+ };
128
+
129
+ var _default = onCYAAction;
130
+ exports.default = _default;
@@ -0,0 +1,608 @@
1
+ "use strict";
2
+
3
+ var _models = require("../../models");
4
+
5
+ var _utils = _interopRequireDefault(require("../../utils"));
6
+
7
+ var _handlers = _interopRequireDefault(require("./handlers"));
8
+
9
+ var _helpers = _interopRequireDefault(require("./helpers"));
10
+
11
+ var _onCYAAction = _interopRequireDefault(require("./onCYAAction"));
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+
15
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
16
+
17
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18
+
19
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
+
21
+ jest.mock('./handlers', function () {
22
+ return {
23
+ submissionErrorCalls: 0,
24
+ submissionErrorArgs: [],
25
+ submissionError: function submissionError(errors, addErrors) {
26
+ this.submissionErrorCalls++;
27
+ this.submissionErrorArgs.push(errors);
28
+
29
+ if (typeof addErrors === 'function') {
30
+ addErrors(errors);
31
+ }
32
+ },
33
+ reset: function reset() {
34
+ this.submissionErrorCalls = 0;
35
+ this.submissionErrorArgs = [];
36
+ }
37
+ };
38
+ });
39
+ jest.mock('./helpers', function () {
40
+ return {
41
+ canCYASubmitResult: true,
42
+ canCYASubmitCalls: 0,
43
+ canCYASubmit: function canCYASubmit() {
44
+ this.canCYASubmitCalls++;
45
+ return this.canCYASubmitResult;
46
+ },
47
+ getNextPageIdCalls: 0,
48
+ getNextPageId: function getNextPageId() {
49
+ this.getNextPageIdCalls++;
50
+ return 'page2';
51
+ },
52
+ getFormStateCalls: 0,
53
+ getFormState: function getFormState() {
54
+ this.getFormStateCalls++;
55
+ return {};
56
+ },
57
+ getSubmissionStatusCalls: 0,
58
+ getSubmissionStatus: function getSubmissionStatus() {
59
+ this.getSubmissionStatusCalls++;
60
+ return 'Good to go!';
61
+ },
62
+ reset: function reset() {
63
+ this.canCYASubmitCalls = 0;
64
+ this.canCYASubmitResult = true;
65
+ this.getFormStateCalls = 0;
66
+ this.getNextPageIdCalls = 0;
67
+ this.getFormStateCalls = 0;
68
+ this.getSubmissionStatusCalls = 0;
69
+ }
70
+ };
71
+ });
72
+ jest.mock('../../utils', function () {
73
+ return {
74
+ Format: {
75
+ formCalls: 0,
76
+ form: function form() {
77
+ this.formCalls++;
78
+ return {
79
+ id: 'formId'
80
+ };
81
+ }
82
+ },
83
+ reset: function reset() {
84
+ this.Format.formCalls = 0;
85
+ }
86
+ };
87
+ });
88
+ describe('components.FormRenderer.onCYAAction', function () {
89
+ var MOCK_HOOKS = {
90
+ onSubmitCalls: 0,
91
+ onSubmitArgs: [],
92
+ onSubmit: function onSubmit(type, payload, onSuccess, onError) {
93
+ this.onSubmitCalls++;
94
+ this.onSubmitArgs.push({
95
+ type: type,
96
+ payload: payload
97
+ });
98
+
99
+ if (typeof onSuccess === 'function') {
100
+ onSuccess();
101
+ } // onError would not normally be called alongside
102
+ // onSuccess, we're just doing it here to make sure
103
+ // the expected function chain is called.
104
+
105
+
106
+ if (typeof onError === 'function') {
107
+ onError(['an example error']);
108
+ }
109
+ },
110
+ onFormCompleteCalls: 0,
111
+ onFormComplete: function onFormComplete() {
112
+ this.onFormCompleteCalls++;
113
+ },
114
+ onCancelCalls: 0,
115
+ onCancel: function onCancel() {
116
+ this.onCancelCalls++;
117
+ },
118
+ reset: function reset() {
119
+ this.onSubmitCalls = 0;
120
+ this.onSubmitArgs = [];
121
+ this.onFormCompleteCalls = 0;
122
+ this.onCancelCalls = 0;
123
+ }
124
+ };
125
+ var setPagePointCalls = 0;
126
+ var setPagePointArgs = [];
127
+
128
+ var mockSetPagePoint = function mockSetPagePoint(point) {
129
+ setPagePointCalls++;
130
+ setPagePointArgs.push(point);
131
+ };
132
+
133
+ var setDataCalls = 0;
134
+ var setDataArgs = [];
135
+
136
+ var mockSetData = function mockSetData(data) {
137
+ setDataCalls++;
138
+ setDataArgs.push(data);
139
+ };
140
+
141
+ var onPageChangeCalls = 0;
142
+ var onPageChangeArgs = [];
143
+
144
+ var mockOnPageChange = function mockOnPageChange(pageId) {
145
+ onPageChangeCalls++;
146
+ onPageChangeArgs.push(pageId);
147
+ };
148
+
149
+ var addErrorsCalls = 0;
150
+ var addErrorsArgs = [];
151
+
152
+ var mockAddErrors = function mockAddErrors(errors) {
153
+ addErrorsCalls++;
154
+ addErrorsArgs.push(errors);
155
+ };
156
+
157
+ var COMPONENTS = [{
158
+ id: 'alpha',
159
+ fieldId: 'alpha'
160
+ }, {
161
+ id: 'bravo',
162
+ fieldId: 'bravo'
163
+ }, {
164
+ id: 'charlie',
165
+ fieldId: 'charlie'
166
+ }, {
167
+ id: 'delta',
168
+ fieldId: 'delta'
169
+ }];
170
+ var PAGES = [{
171
+ id: 'page1',
172
+ components: [_objectSpread({}, COMPONENTS[0]), _objectSpread({}, COMPONENTS[1])]
173
+ }, {
174
+ id: 'page2',
175
+ components: [_objectSpread({}, COMPONENTS[2]), _objectSpread({}, COMPONENTS[3])]
176
+ }];
177
+ var CURRENT_TASK = {
178
+ name: 'testTask',
179
+ fullPages: PAGES
180
+ };
181
+ var ARGS = {
182
+ setPagePoint: mockSetPagePoint,
183
+ action: {
184
+ type: _models.PageAction.TYPES.SUBMIT
185
+ },
186
+ pages: PAGES,
187
+ validate: function validate() {},
188
+ components: COMPONENTS,
189
+ data: {},
190
+ setData: mockSetData,
191
+ type: _models.FormTypes.FORM_WITH_TASK,
192
+ pageId: 'alpha',
193
+ currentTask: CURRENT_TASK,
194
+ hooks: MOCK_HOOKS,
195
+ addErrors: mockAddErrors,
196
+ hub: _models.HubFormats.TASK,
197
+ onPageChange: mockOnPageChange,
198
+ formState: _helpers.default.getFormState('alpha', PAGES, null)
199
+ };
200
+ beforeEach(function () {
201
+ _handlers.default.reset();
202
+
203
+ _helpers.default.reset();
204
+
205
+ _utils.default.reset();
206
+
207
+ MOCK_HOOKS.reset();
208
+ setPagePointCalls = 0;
209
+ setPagePointArgs = [];
210
+ setDataCalls = 0;
211
+ setDataArgs = [];
212
+ onPageChangeCalls = 0;
213
+ onPageChangeArgs = [];
214
+ addErrorsCalls = 0;
215
+ addErrorsArgs = [];
216
+ });
217
+ describe('with a page action of PageAction.TYPES.SUBMIT', function () {
218
+ it('should handle a hub format of HubFormats.CYA', function () {
219
+ var CUSTOM_ARGS = _objectSpread(_objectSpread({}, ARGS), {}, {
220
+ hub: _models.HubFormats.CYA
221
+ });
222
+
223
+ _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
224
+
225
+ expect(setPagePointCalls).toEqual(1);
226
+ expect(setPagePointArgs[0]).toEqual('submit');
227
+ expect(_helpers.default.canCYASubmitCalls).toEqual(1);
228
+ expect(_utils.default.Format.formCalls).toEqual(1);
229
+ expect(_helpers.default.getSubmissionStatusCalls).toEqual(1);
230
+ expect(setDataCalls).toEqual(1);
231
+ expect(setDataArgs[0]).toEqual({
232
+ id: 'formId',
233
+ formStatus: 'Good to go!'
234
+ });
235
+ expect(MOCK_HOOKS.onSubmitCalls).toEqual(1);
236
+ expect(MOCK_HOOKS.onSubmitArgs[0]).toEqual({
237
+ type: _models.PageAction.TYPES.SUBMIT,
238
+ payload: {
239
+ id: 'formId',
240
+ formStatus: 'Good to go!'
241
+ }
242
+ }); // Checking the onSuccess branch.
243
+
244
+ expect(MOCK_HOOKS.onFormCompleteCalls).toEqual(1); // Checking the onError branch.
245
+
246
+ expect(_handlers.default.submissionErrorCalls).toEqual(1);
247
+ expect(_handlers.default.submissionErrorArgs[0]).toEqual(['an example error']);
248
+ expect(addErrorsCalls).toEqual(1);
249
+ expect(addErrorsArgs[0]).toEqual(['an example error']);
250
+ });
251
+ it('should handle a hub format of HubFormats.TASK', function () {
252
+ var CUSTOM_ARGS = _objectSpread(_objectSpread({}, ARGS), {}, {
253
+ hub: _models.HubFormats.TASK
254
+ });
255
+
256
+ _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
257
+
258
+ expect(setPagePointCalls).toEqual(1);
259
+ expect(setPagePointArgs[0]).toEqual('submit');
260
+ expect(_helpers.default.canCYASubmitCalls).toEqual(1);
261
+ expect(_utils.default.Format.formCalls).toEqual(1);
262
+ expect(_helpers.default.getSubmissionStatusCalls).toEqual(1);
263
+ expect(setDataCalls).toEqual(1);
264
+ expect(setDataArgs[0]).toEqual({
265
+ id: 'formId',
266
+ formStatus: 'Good to go!'
267
+ });
268
+ expect(MOCK_HOOKS.onSubmitCalls).toEqual(1);
269
+ expect(MOCK_HOOKS.onSubmitArgs[0]).toEqual({
270
+ type: _models.PageAction.TYPES.SUBMIT,
271
+ payload: {
272
+ id: 'formId',
273
+ formStatus: 'Good to go!'
274
+ }
275
+ }); // Checking the onSuccess branch.
276
+
277
+ expect(MOCK_HOOKS.onFormCompleteCalls).toEqual(1); // Checking the onError branch.
278
+
279
+ expect(_handlers.default.submissionErrorCalls).toEqual(1);
280
+ expect(_handlers.default.submissionErrorArgs[0]).toEqual(['an example error']);
281
+ expect(addErrorsCalls).toEqual(1);
282
+ expect(addErrorsArgs[0]).toEqual(['an example error']);
283
+ });
284
+ it('should handle no hub', function () {
285
+ var CUSTOM_ARGS = _objectSpread(_objectSpread({}, ARGS), {}, {
286
+ hub: null
287
+ });
288
+
289
+ _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
290
+
291
+ expect(setPagePointCalls).toEqual(1);
292
+ expect(setPagePointArgs[0]).toEqual('submit');
293
+ expect(_helpers.default.canCYASubmitCalls).toEqual(1);
294
+ expect(_utils.default.Format.formCalls).toEqual(1);
295
+ expect(_helpers.default.getSubmissionStatusCalls).toEqual(1);
296
+ expect(setDataCalls).toEqual(1);
297
+ expect(setDataArgs[0]).toEqual({
298
+ id: 'formId',
299
+ formStatus: 'Good to go!'
300
+ });
301
+ expect(MOCK_HOOKS.onSubmitCalls).toEqual(1);
302
+ expect(MOCK_HOOKS.onSubmitArgs[0]).toEqual({
303
+ type: _models.PageAction.TYPES.SUBMIT,
304
+ payload: {
305
+ id: 'formId',
306
+ formStatus: 'Good to go!'
307
+ }
308
+ }); // Checking the onSuccess branch.
309
+
310
+ expect(MOCK_HOOKS.onFormCompleteCalls).toEqual(1); // Checking the onError branch.
311
+
312
+ expect(_handlers.default.submissionErrorCalls).toEqual(1);
313
+ expect(_handlers.default.submissionErrorArgs[0]).toEqual(['an example error']);
314
+ expect(addErrorsCalls).toEqual(1);
315
+ expect(addErrorsArgs[0]).toEqual(['an example error']);
316
+ });
317
+ });
318
+ describe('with a page action of PageAction.TYPES.SAVE_AND_CONTINUE', function () {
319
+ it('should validate if action.validate is not defined', function () {
320
+ var CUSTOM_ARGS = _objectSpread(_objectSpread({}, ARGS), {}, {
321
+ action: {
322
+ type: _models.PageAction.TYPES.SAVE_AND_CONTINUE
323
+ },
324
+ hub: _models.HubFormats.TASK
325
+ });
326
+
327
+ _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
328
+
329
+ expect(_helpers.default.canCYASubmitCalls).toEqual(1); // Validating.
330
+
331
+ expect(_utils.default.Format.formCalls).toEqual(1);
332
+ expect(_helpers.default.getSubmissionStatusCalls).toEqual(1);
333
+ expect(setDataCalls).toEqual(1);
334
+ expect(setDataArgs[0]).toEqual({
335
+ id: 'formId',
336
+ formStatus: 'Good to go!'
337
+ });
338
+ expect(MOCK_HOOKS.onSubmitCalls).toEqual(1);
339
+ expect(MOCK_HOOKS.onSubmitArgs[0]).toEqual({
340
+ type: CUSTOM_ARGS.action.type,
341
+ payload: {
342
+ id: 'formId',
343
+ formStatus: 'Good to go!'
344
+ }
345
+ }); // Checking the onSuccess branch.
346
+
347
+ expect(onPageChangeCalls).toEqual(1);
348
+ expect(onPageChangeArgs[0]).toEqual(_models.FormPages.HUB); // Checking the onError branch.
349
+
350
+ expect(_handlers.default.submissionErrorCalls).toEqual(1);
351
+ expect(_handlers.default.submissionErrorArgs[0]).toEqual(['an example error']);
352
+ expect(addErrorsCalls).toEqual(1);
353
+ expect(addErrorsArgs[0]).toEqual(['an example error']);
354
+ });
355
+ it('should validate if action.validate is true', function () {
356
+ var CUSTOM_ARGS = _objectSpread(_objectSpread({}, ARGS), {}, {
357
+ action: {
358
+ type: _models.PageAction.TYPES.SAVE_AND_CONTINUE,
359
+ validate: true
360
+ },
361
+ hub: _models.HubFormats.TASK
362
+ });
363
+
364
+ _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
365
+
366
+ expect(_helpers.default.canCYASubmitCalls).toEqual(1); // Validating.
367
+
368
+ expect(_utils.default.Format.formCalls).toEqual(1);
369
+ expect(_helpers.default.getSubmissionStatusCalls).toEqual(1);
370
+ expect(setDataCalls).toEqual(1);
371
+ expect(setDataArgs[0]).toEqual({
372
+ id: 'formId',
373
+ formStatus: 'Good to go!'
374
+ });
375
+ expect(MOCK_HOOKS.onSubmitCalls).toEqual(1);
376
+ expect(MOCK_HOOKS.onSubmitArgs[0]).toEqual({
377
+ type: CUSTOM_ARGS.action.type,
378
+ payload: {
379
+ id: 'formId',
380
+ formStatus: 'Good to go!'
381
+ }
382
+ }); // Checking the onSuccess branch.
383
+
384
+ expect(onPageChangeCalls).toEqual(1);
385
+ expect(onPageChangeArgs[0]).toEqual(_models.FormPages.HUB); // Checking the onError branch.
386
+
387
+ expect(_handlers.default.submissionErrorCalls).toEqual(1);
388
+ expect(_handlers.default.submissionErrorArgs[0]).toEqual(['an example error']);
389
+ expect(addErrorsCalls).toEqual(1);
390
+ expect(addErrorsArgs[0]).toEqual(['an example error']);
391
+ });
392
+ it('should not validate if action.validate is false', function () {
393
+ var CUSTOM_ARGS = _objectSpread(_objectSpread({}, ARGS), {}, {
394
+ action: {
395
+ type: _models.PageAction.TYPES.SAVE_AND_CONTINUE,
396
+ validate: false
397
+ },
398
+ hub: _models.HubFormats.TASK
399
+ });
400
+
401
+ _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS)); // Validation.
402
+
403
+
404
+ expect(_helpers.default.canCYASubmitCalls).toEqual(0); // Everything after this point should be normal, we just
405
+ // haven't validated this time round.
406
+
407
+ expect(_utils.default.Format.formCalls).toEqual(1);
408
+ expect(_helpers.default.getSubmissionStatusCalls).toEqual(1);
409
+ expect(setDataCalls).toEqual(1);
410
+ expect(setDataArgs[0]).toEqual({
411
+ id: 'formId',
412
+ formStatus: 'Good to go!'
413
+ });
414
+ expect(MOCK_HOOKS.onSubmitCalls).toEqual(1);
415
+ expect(MOCK_HOOKS.onSubmitArgs[0]).toEqual({
416
+ type: CUSTOM_ARGS.action.type,
417
+ payload: {
418
+ id: 'formId',
419
+ formStatus: 'Good to go!'
420
+ }
421
+ }); // Checking the onSuccess branch.
422
+
423
+ expect(onPageChangeCalls).toEqual(1);
424
+ expect(onPageChangeArgs[0]).toEqual(_models.FormPages.HUB); // Checking the onError branch.
425
+
426
+ expect(_handlers.default.submissionErrorCalls).toEqual(1);
427
+ expect(_handlers.default.submissionErrorArgs[0]).toEqual(['an example error']);
428
+ expect(addErrorsCalls).toEqual(1);
429
+ expect(addErrorsArgs[0]).toEqual(['an example error']);
430
+ });
431
+ });
432
+ describe('with an action type of PageAction.TYPES.SAVE_AND_RETURN', function () {
433
+ it('should validate if action.validate is not defined', function () {
434
+ var CUSTOM_ARGS = _objectSpread(_objectSpread({}, ARGS), {}, {
435
+ action: {
436
+ type: _models.PageAction.TYPES.SAVE_AND_RETURN
437
+ },
438
+ hub: _models.HubFormats.TASK
439
+ });
440
+
441
+ _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
442
+
443
+ expect(_helpers.default.canCYASubmitCalls).toEqual(1); // Validating.
444
+
445
+ expect(_utils.default.Format.formCalls).toEqual(1);
446
+ expect(_helpers.default.getSubmissionStatusCalls).toEqual(1);
447
+ expect(setDataCalls).toEqual(1);
448
+ expect(setDataArgs[0]).toEqual({
449
+ id: 'formId',
450
+ formStatus: 'Good to go!'
451
+ });
452
+ expect(MOCK_HOOKS.onSubmitCalls).toEqual(1);
453
+ expect(MOCK_HOOKS.onSubmitArgs[0]).toEqual({
454
+ type: CUSTOM_ARGS.action.type,
455
+ payload: {
456
+ id: 'formId',
457
+ formStatus: 'Good to go!'
458
+ }
459
+ }); // Checking the onSuccess branch.
460
+
461
+ expect(onPageChangeCalls).toEqual(1);
462
+ expect(onPageChangeArgs[0]).toEqual(_models.FormPages.HUB); // Checking the onError branch.
463
+
464
+ expect(_handlers.default.submissionErrorCalls).toEqual(1);
465
+ expect(_handlers.default.submissionErrorArgs[0]).toEqual(['an example error']);
466
+ expect(addErrorsCalls).toEqual(1);
467
+ expect(addErrorsArgs[0]).toEqual(['an example error']);
468
+ });
469
+ it('should validate if action.validate is true', function () {
470
+ var CUSTOM_ARGS = _objectSpread(_objectSpread({}, ARGS), {}, {
471
+ action: {
472
+ type: _models.PageAction.TYPES.SAVE_AND_RETURN,
473
+ validate: true
474
+ },
475
+ hub: _models.HubFormats.TASK
476
+ });
477
+
478
+ _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
479
+
480
+ expect(_helpers.default.canCYASubmitCalls).toEqual(1); // Validating.
481
+
482
+ expect(_utils.default.Format.formCalls).toEqual(1);
483
+ expect(_helpers.default.getSubmissionStatusCalls).toEqual(1);
484
+ expect(setDataCalls).toEqual(1);
485
+ expect(setDataArgs[0]).toEqual({
486
+ id: 'formId',
487
+ formStatus: 'Good to go!'
488
+ });
489
+ expect(MOCK_HOOKS.onSubmitCalls).toEqual(1);
490
+ expect(MOCK_HOOKS.onSubmitArgs[0]).toEqual({
491
+ type: CUSTOM_ARGS.action.type,
492
+ payload: {
493
+ id: 'formId',
494
+ formStatus: 'Good to go!'
495
+ }
496
+ }); // Checking the onSuccess branch.
497
+
498
+ expect(onPageChangeCalls).toEqual(1);
499
+ expect(onPageChangeArgs[0]).toEqual(_models.FormPages.HUB); // Checking the onError branch.
500
+
501
+ expect(_handlers.default.submissionErrorCalls).toEqual(1);
502
+ expect(_handlers.default.submissionErrorArgs[0]).toEqual(['an example error']);
503
+ expect(addErrorsCalls).toEqual(1);
504
+ expect(addErrorsArgs[0]).toEqual(['an example error']);
505
+ });
506
+ it('should not validate if action.validate is false', function () {
507
+ var CUSTOM_ARGS = _objectSpread(_objectSpread({}, ARGS), {}, {
508
+ action: {
509
+ type: _models.PageAction.TYPES.SAVE_AND_RETURN,
510
+ validate: false
511
+ },
512
+ hub: _models.HubFormats.TASK
513
+ });
514
+
515
+ _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS)); // Validation.
516
+
517
+
518
+ expect(_helpers.default.canCYASubmitCalls).toEqual(0); // Everything after this point should be normal, we just
519
+ // haven't validated this time round.
520
+
521
+ expect(_utils.default.Format.formCalls).toEqual(1);
522
+ expect(_helpers.default.getSubmissionStatusCalls).toEqual(1);
523
+ expect(setDataCalls).toEqual(1);
524
+ expect(setDataArgs[0]).toEqual({
525
+ id: 'formId',
526
+ formStatus: 'Good to go!'
527
+ });
528
+ expect(MOCK_HOOKS.onSubmitCalls).toEqual(1);
529
+ expect(MOCK_HOOKS.onSubmitArgs[0]).toEqual({
530
+ type: CUSTOM_ARGS.action.type,
531
+ payload: {
532
+ id: 'formId',
533
+ formStatus: 'Good to go!'
534
+ }
535
+ }); // Checking the onSuccess branch.
536
+
537
+ expect(onPageChangeCalls).toEqual(1);
538
+ expect(onPageChangeArgs[0]).toEqual(_models.FormPages.HUB); // Checking the onError branch.
539
+
540
+ expect(_handlers.default.submissionErrorCalls).toEqual(1);
541
+ expect(_handlers.default.submissionErrorArgs[0]).toEqual(['an example error']);
542
+ expect(addErrorsCalls).toEqual(1);
543
+ expect(addErrorsArgs[0]).toEqual(['an example error']);
544
+ });
545
+ it('should call onPageChange with undefined if type is FormTypes.TASK', function () {
546
+ var CUSTOM_ARGS = _objectSpread(_objectSpread({}, ARGS), {}, {
547
+ action: {
548
+ type: _models.PageAction.TYPES.SAVE_AND_RETURN,
549
+ validate: true
550
+ },
551
+ hub: _models.HubFormats.TASK,
552
+ type: _models.FormTypes.TASK
553
+ });
554
+
555
+ _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
556
+
557
+ expect(_helpers.default.canCYASubmitCalls).toEqual(1); // Validating.
558
+
559
+ expect(_utils.default.Format.formCalls).toEqual(1);
560
+ expect(_helpers.default.getSubmissionStatusCalls).toEqual(1);
561
+ expect(setDataCalls).toEqual(1);
562
+ expect(setDataArgs[0]).toEqual({
563
+ id: 'formId',
564
+ formStatus: 'Good to go!'
565
+ });
566
+ expect(MOCK_HOOKS.onSubmitCalls).toEqual(1);
567
+ expect(MOCK_HOOKS.onSubmitArgs[0]).toEqual({
568
+ type: CUSTOM_ARGS.action.type,
569
+ payload: {
570
+ id: 'formId',
571
+ formStatus: 'Good to go!'
572
+ }
573
+ }); // Checking the onSuccess branch.
574
+
575
+ expect(onPageChangeCalls).toEqual(1);
576
+ expect(onPageChangeArgs[0]).toEqual(undefined); // Checking the onError branch.
577
+
578
+ expect(_handlers.default.submissionErrorCalls).toEqual(1);
579
+ expect(_handlers.default.submissionErrorArgs[0]).toEqual(['an example error']);
580
+ expect(addErrorsCalls).toEqual(1);
581
+ expect(addErrorsArgs[0]).toEqual(['an example error']);
582
+ });
583
+ });
584
+ it('should handle a page action type of PageAction.TYPES.NAVIGATE', function () {
585
+ var CUSTOM_ARGS = _objectSpread(_objectSpread({}, ARGS), {}, {
586
+ action: {
587
+ type: _models.PageAction.TYPES.NAVIGATE,
588
+ page: 'page2'
589
+ }
590
+ });
591
+
592
+ _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
593
+
594
+ expect(onPageChangeCalls).toEqual(1);
595
+ expect(onPageChangeArgs[0]).toEqual('page2');
596
+ });
597
+ it('should handle a page action type of PageAction.TYPES.CANCEL', function () {
598
+ var CUSTOM_ARGS = _objectSpread(_objectSpread({}, ARGS), {}, {
599
+ action: {
600
+ type: _models.PageAction.TYPES.CANCEL
601
+ }
602
+ });
603
+
604
+ _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
605
+
606
+ expect(MOCK_HOOKS.onCancelCalls).toEqual(1);
607
+ });
608
+ });
@@ -7,6 +7,10 @@ exports.default = void 0;
7
7
 
8
8
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
9
9
 
10
+ var _Condition = _interopRequireDefault(require("../Condition"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
10
14
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
15
 
12
16
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -15,6 +19,14 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
15
19
 
16
20
  var interpolateOptions = function interpolateOptions(config, options) {
17
21
  return options.map(function (opt) {
22
+ if (opt.show_when) {
23
+ var result = opt.show_when.type === 'or' ? _Condition.default.meetsOne(opt, config.formData) : _Condition.default.meetsAll(opt, config.formData);
24
+
25
+ if (!result) {
26
+ return null;
27
+ }
28
+ }
29
+
18
30
  if (typeof opt === 'string') {
19
31
  return opt;
20
32
  }
@@ -23,6 +35,8 @@ var interpolateOptions = function interpolateOptions(config, options) {
23
35
  value: _copReactComponents.Utils.interpolateString(opt.value, config.formData),
24
36
  label: _copReactComponents.Utils.interpolateString(opt.label, config.formData)
25
37
  });
38
+ }).filter(function (n) {
39
+ return n;
26
40
  });
27
41
  };
28
42
 
@@ -66,6 +66,76 @@ describe('utils', function () {
66
66
  expect(options).toEqual(CONFIG.options);
67
67
  });
68
68
  });
69
+ it('should exclude options from the config that fail show_when checks', function () {
70
+ var CONFIG = {
71
+ id: 'test',
72
+ options: [{
73
+ value: 'a',
74
+ label: 'Alpha',
75
+ show_when: {
76
+ field: 'other',
77
+ op: 'eq',
78
+ value: 'c'
79
+ }
80
+ }, {
81
+ value: 'b',
82
+ label: 'Bravo',
83
+ show_when: {
84
+ field: 'other',
85
+ op: 'neq',
86
+ value: 'c'
87
+ }
88
+ }],
89
+ formData: {
90
+ other: 'c'
91
+ }
92
+ };
93
+ (0, _getOptions.default)(CONFIG, function (options) {
94
+ expect(options).toEqual([CONFIG.options[0]]);
95
+ });
96
+ });
97
+ it('should exclude options from the config that fail or type show_when checks', function () {
98
+ var CONFIG = {
99
+ id: 'test',
100
+ options: [{
101
+ value: 'a',
102
+ label: 'Alpha',
103
+ show_when: {
104
+ type: 'or',
105
+ conditions: [{
106
+ field: 'other',
107
+ op: 'eq',
108
+ value: 'c'
109
+ }, {
110
+ field: 'other',
111
+ op: 'eq',
112
+ value: 'd'
113
+ }]
114
+ }
115
+ }, {
116
+ value: 'b',
117
+ label: 'Bravo',
118
+ show_when: {
119
+ type: 'or',
120
+ conditions: [{
121
+ field: 'other',
122
+ op: 'eq',
123
+ value: 'e'
124
+ }, {
125
+ field: 'other',
126
+ op: 'eq',
127
+ value: 'f'
128
+ }]
129
+ }
130
+ }],
131
+ formData: {
132
+ other: 'c'
133
+ }
134
+ };
135
+ (0, _getOptions.default)(CONFIG, function (options) {
136
+ expect(options).toEqual([CONFIG.options[0]]);
137
+ });
138
+ });
69
139
  });
70
140
  });
71
141
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukhomeoffice/cop-react-form-renderer",
3
- "version": "4.62.0",
3
+ "version": "4.63.2",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "clean": "rimraf dist",