@zohodesk/components 1.6.31 → 1.6.34

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 (163) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/assets/Appearance/light/mode/Component_LightMode.module.css +1 -1
  3. package/es/Accordion/__tests__/Accordion.spec.js +117 -3
  4. package/es/Accordion/__tests__/AccordionItem.spec.js +118 -6
  5. package/es/Accordion/__tests__/__snapshots__/Accordion.spec.js.snap +344 -2
  6. package/es/Accordion/__tests__/__snapshots__/AccordionItem.spec.js.snap +155 -3
  7. package/es/Animation/__tests__/Animation.spec.js +28 -4
  8. package/es/Animation/__tests__/__snapshots__/Animation.spec.js.snap +92 -2
  9. package/es/Button/css/Button.module.css +2 -3
  10. package/es/CheckBox/CheckBox.js +1 -1
  11. package/es/CheckBox/__tests__/__snapshots__/CheckBox.spec.js.snap +1 -1
  12. package/es/DateTime/DateTime.module.css +2 -2
  13. package/es/DateTime/__tests__/CalendarView.spec.js +70 -3
  14. package/es/DateTime/__tests__/DateTime.spec.js +89 -6
  15. package/es/DateTime/__tests__/DateTimePopupFooter.spec.js +20 -2
  16. package/es/DateTime/__tests__/DateTimePopupHeader.spec.js +29 -2
  17. package/es/DateTime/__tests__/DateWidget.spec.js +34 -2
  18. package/es/DateTime/__tests__/DaysRow.spec.js +19 -3
  19. package/es/DateTime/__tests__/Time.spec.js +50 -3
  20. package/es/DateTime/__tests__/YearView.spec.js +60 -3
  21. package/es/DateTime/__tests__/__snapshots__/CalendarView.spec.js.snap +2907 -170
  22. package/es/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +4392 -108
  23. package/es/DateTime/__tests__/__snapshots__/DateTimePopupFooter.spec.js.snap +67 -1
  24. package/es/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +187 -1
  25. package/es/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +265 -1
  26. package/es/DateTime/__tests__/__snapshots__/DaysRow.spec.js.snap +155 -2
  27. package/es/DateTime/__tests__/__snapshots__/Time.spec.js.snap +522 -5
  28. package/es/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +540 -0
  29. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +1 -4
  30. package/es/Heading/Heading.module.css +1 -1
  31. package/es/Heading/__tests__/Heading.spec.js +57 -3
  32. package/es/Heading/__tests__/__snapshots__/Heading.spec.js.snap +87 -14
  33. package/es/ListItem/__tests__/ListContainer.spec.js +228 -1
  34. package/es/ListItem/__tests__/ListItem.spec.js +359 -1
  35. package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +390 -1
  36. package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +214 -1
  37. package/es/ListItem/__tests__/ListItemWithIcon.spec.js +303 -1
  38. package/es/ListItem/__tests__/ListItemWithRadio.spec.js +230 -1
  39. package/es/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +602 -0
  40. package/es/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +1807 -0
  41. package/es/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +2703 -0
  42. package/es/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +2909 -0
  43. package/es/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +2009 -0
  44. package/es/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +3070 -0
  45. package/es/MultiSelect/MultiSelect.module.css +1 -2
  46. package/es/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +671 -1
  47. package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +730 -1
  48. package/es/MultiSelect/__tests__/EmptyState.spec.js +268 -1
  49. package/es/MultiSelect/__tests__/MultiSelect.spec.js +889 -2
  50. package/es/MultiSelect/__tests__/MultiSelectHeader.spec.js +50 -1
  51. package/es/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +487 -1
  52. package/es/MultiSelect/__tests__/SelectedOptions.spec.js +291 -1
  53. package/es/MultiSelect/__tests__/Suggestions.spec.js +370 -2
  54. package/es/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +11785 -0
  55. package/es/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +12083 -0
  56. package/es/MultiSelect/__tests__/__snapshots__/EmptyState.spec.js.snap +253 -0
  57. package/es/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +14052 -0
  58. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +136 -0
  59. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +11506 -0
  60. package/es/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +1382 -0
  61. package/es/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +3611 -0
  62. package/es/PopOver/__tests__/PopOver.spec.js +141 -2
  63. package/es/PopOver/__tests__/__snapshots__/PopOver.spec.js.snap +1260 -0
  64. package/es/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +212 -1
  65. package/es/ResponsiveDropBox/__tests__/__snapshots__/ResponsiveDropBox.spec.js.snap +1802 -0
  66. package/es/Tab/Tabs.module.css +1 -2
  67. package/es/Tab/__tests__/Tab.spec.js +249 -1
  68. package/es/Tab/__tests__/TabContent.spec.js +34 -1
  69. package/es/Tab/__tests__/TabContentWrapper.spec.js +72 -1
  70. package/es/Tab/__tests__/TabWrapper.spec.js +163 -1
  71. package/es/Tab/__tests__/Tabs.spec.js +681 -1
  72. package/es/Tab/__tests__/__snapshots__/Tab.spec.js.snap +1049 -0
  73. package/es/Tab/__tests__/__snapshots__/TabContent.spec.js.snap +99 -0
  74. package/es/Tab/__tests__/__snapshots__/TabContentWrapper.spec.js.snap +121 -0
  75. package/es/Tab/__tests__/__snapshots__/TabWrapper.spec.js.snap +2002 -0
  76. package/es/Tab/__tests__/__snapshots__/Tabs.spec.js.snap +11053 -0
  77. package/es/Textarea/Textarea.module.css +1 -1
  78. package/es/Tooltip/Tooltip.module.css +1 -2
  79. package/es/Tooltip/__tests__/Tooltip.spec.js +590 -0
  80. package/es/Tooltip/__tests__/__snapshots__/Tooltip.spec.js.snap +813 -0
  81. package/es/Typography/css/Typography.module.css +8 -7
  82. package/es/common/common.module.css +4 -4
  83. package/lib/Accordion/__tests__/Accordion.spec.js +122 -2
  84. package/lib/Accordion/__tests__/AccordionItem.spec.js +126 -4
  85. package/lib/Accordion/__tests__/__snapshots__/Accordion.spec.js.snap +344 -2
  86. package/lib/Accordion/__tests__/__snapshots__/AccordionItem.spec.js.snap +155 -3
  87. package/lib/Animation/__tests__/Animation.spec.js +31 -5
  88. package/lib/Animation/__tests__/__snapshots__/Animation.spec.js.snap +92 -2
  89. package/lib/Button/css/Button.module.css +2 -3
  90. package/lib/CheckBox/CheckBox.js +1 -1
  91. package/lib/CheckBox/__tests__/__snapshots__/CheckBox.spec.js.snap +1 -1
  92. package/lib/DateTime/DateTime.module.css +2 -2
  93. package/lib/DateTime/__tests__/CalendarView.spec.js +71 -2
  94. package/lib/DateTime/__tests__/DateTime.spec.js +92 -6
  95. package/lib/DateTime/__tests__/DateTimePopupFooter.spec.js +21 -1
  96. package/lib/DateTime/__tests__/DateTimePopupHeader.spec.js +30 -1
  97. package/lib/DateTime/__tests__/DateWidget.spec.js +35 -1
  98. package/lib/DateTime/__tests__/DaysRow.spec.js +20 -2
  99. package/lib/DateTime/__tests__/Time.spec.js +51 -2
  100. package/lib/DateTime/__tests__/YearView.spec.js +61 -2
  101. package/lib/DateTime/__tests__/__snapshots__/CalendarView.spec.js.snap +2907 -170
  102. package/lib/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +4392 -108
  103. package/lib/DateTime/__tests__/__snapshots__/DateTimePopupFooter.spec.js.snap +67 -1
  104. package/lib/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +187 -1
  105. package/lib/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +265 -1
  106. package/lib/DateTime/__tests__/__snapshots__/DaysRow.spec.js.snap +155 -2
  107. package/lib/DateTime/__tests__/__snapshots__/Time.spec.js.snap +522 -5
  108. package/lib/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +540 -0
  109. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +1 -4
  110. package/lib/Heading/Heading.module.css +1 -1
  111. package/lib/Heading/__tests__/Heading.spec.js +60 -4
  112. package/lib/Heading/__tests__/__snapshots__/Heading.spec.js.snap +87 -14
  113. package/lib/ListItem/__tests__/ListContainer.spec.js +229 -0
  114. package/lib/ListItem/__tests__/ListItem.spec.js +362 -0
  115. package/lib/ListItem/__tests__/ListItemWithAvatar.spec.js +391 -0
  116. package/lib/ListItem/__tests__/ListItemWithCheckBox.spec.js +215 -0
  117. package/lib/ListItem/__tests__/ListItemWithIcon.spec.js +304 -0
  118. package/lib/ListItem/__tests__/ListItemWithRadio.spec.js +231 -0
  119. package/lib/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +602 -0
  120. package/lib/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +1807 -0
  121. package/lib/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +2703 -0
  122. package/lib/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +2909 -0
  123. package/lib/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +2009 -0
  124. package/lib/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +3070 -0
  125. package/lib/MultiSelect/MultiSelect.module.css +1 -2
  126. package/lib/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +692 -0
  127. package/lib/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +741 -0
  128. package/lib/MultiSelect/__tests__/EmptyState.spec.js +273 -0
  129. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +910 -0
  130. package/lib/MultiSelect/__tests__/MultiSelectHeader.spec.js +51 -0
  131. package/lib/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +497 -0
  132. package/lib/MultiSelect/__tests__/SelectedOptions.spec.js +305 -0
  133. package/lib/MultiSelect/__tests__/Suggestions.spec.js +375 -0
  134. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +11785 -0
  135. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +12083 -0
  136. package/lib/MultiSelect/__tests__/__snapshots__/EmptyState.spec.js.snap +253 -0
  137. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +14052 -0
  138. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +136 -0
  139. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +11506 -0
  140. package/lib/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +1382 -0
  141. package/lib/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +3611 -0
  142. package/lib/PopOver/__tests__/PopOver.spec.js +150 -1
  143. package/lib/PopOver/__tests__/__snapshots__/PopOver.spec.js.snap +1260 -0
  144. package/lib/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +213 -0
  145. package/lib/ResponsiveDropBox/__tests__/__snapshots__/ResponsiveDropBox.spec.js.snap +1802 -0
  146. package/lib/Tab/Tabs.module.css +1 -2
  147. package/lib/Tab/__tests__/Tab.spec.js +250 -0
  148. package/lib/Tab/__tests__/TabContent.spec.js +35 -0
  149. package/lib/Tab/__tests__/TabContentWrapper.spec.js +76 -0
  150. package/lib/Tab/__tests__/TabWrapper.spec.js +174 -0
  151. package/lib/Tab/__tests__/Tabs.spec.js +741 -0
  152. package/lib/Tab/__tests__/__snapshots__/Tab.spec.js.snap +1049 -0
  153. package/lib/Tab/__tests__/__snapshots__/TabContent.spec.js.snap +99 -0
  154. package/lib/Tab/__tests__/__snapshots__/TabContentWrapper.spec.js.snap +121 -0
  155. package/lib/Tab/__tests__/__snapshots__/TabWrapper.spec.js.snap +2002 -0
  156. package/lib/Tab/__tests__/__snapshots__/Tabs.spec.js.snap +11053 -0
  157. package/lib/Textarea/Textarea.module.css +1 -1
  158. package/lib/Tooltip/Tooltip.module.css +1 -2
  159. package/lib/Tooltip/__tests__/Tooltip.spec.js +629 -0
  160. package/lib/Tooltip/__tests__/__snapshots__/Tooltip.spec.js.snap +813 -0
  161. package/lib/Typography/css/Typography.module.css +8 -7
  162. package/lib/common/common.module.css +4 -4
  163. package/package.json +6 -5
@@ -1,5 +1,7 @@
1
+ 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); }
2
+
1
3
  import React from 'react';
2
- import { render, cleanup } from "@testing-library/react";
4
+ import { render, cleanup, fireEvent } from "@testing-library/react";
3
5
  import { setGlobalId } from "../../Provider/IdProvider";
4
6
  import AdvancedMultiSelect from "../AdvancedMultiSelect";
5
7
  beforeEach(() => {
@@ -54,4 +56,731 @@ describe('AdvancedMultiSelect', () => {
54
56
  }));
55
57
  expect(asFragment()).toMatchSnapshot();
56
58
  });
59
+ const advancedOptions = [{
60
+ id: 'option1',
61
+ text: 'Option 1'
62
+ }, {
63
+ id: 'option2',
64
+ text: 'Option 2'
65
+ }, {
66
+ id: 'option3',
67
+ text: 'Option 3'
68
+ }]; // id, options, selectedOptions, onChange and emptyMessage are required without defaults
69
+
70
+ const getRequiredProps = () => ({
71
+ id: 'advanced-multi-select',
72
+ emptyMessage: 'No options',
73
+ onChange: jest.fn(),
74
+ options: advancedOptions,
75
+ selectedOptions: []
76
+ });
77
+
78
+ const getSearchInput = container => container.querySelector('input[role="combobox"]'); // selected options, clear icon and more button
79
+
80
+
81
+ test('Render with selectedOptions', () => {
82
+ const {
83
+ asFragment
84
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
85
+ selectedOptions: ['option1']
86
+ })));
87
+ expect(asFragment()).toMatchSnapshot();
88
+ });
89
+ test('Render with two selectedOptions', () => {
90
+ const {
91
+ asFragment
92
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
93
+ selectedOptions: ['option1', 'option2']
94
+ })));
95
+ expect(asFragment()).toMatchSnapshot();
96
+ });
97
+ test('Render with selectedOptions not in options', () => {
98
+ const {
99
+ asFragment
100
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
101
+ selectedOptions: ['unknown']
102
+ })));
103
+ expect(asFragment()).toMatchSnapshot();
104
+ });
105
+ test('Render with selectedOptionsLimit lower than selectedOptions', () => {
106
+ const {
107
+ asFragment
108
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
109
+ selectedOptions: ['option1', 'option2', 'option3'],
110
+ selectedOptionsLimit: 1
111
+ })));
112
+ expect(asFragment()).toMatchSnapshot();
113
+ });
114
+ test('Render with selectedOptionsLimit not exceeded', () => {
115
+ const {
116
+ asFragment
117
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
118
+ selectedOptions: ['option1', 'option2'],
119
+ selectedOptionsLimit: 5
120
+ })));
121
+ expect(asFragment()).toMatchSnapshot();
122
+ });
123
+ test('Render with selectedOptionDetails for options not in options', () => {
124
+ const {
125
+ asFragment
126
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
127
+ selectedOptions: ['remote1'],
128
+ selectedOptionDetails: [{
129
+ id: 'remote1',
130
+ text: 'Remote option'
131
+ }],
132
+ allowValueFallback: false
133
+ })));
134
+ expect(asFragment()).toMatchSnapshot();
135
+ });
136
+ test('Render with limit as 2 and three selectedOptions', () => {
137
+ const {
138
+ asFragment
139
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
140
+ selectedOptions: ['option1', 'option2', 'option3'],
141
+ limit: 2
142
+ })));
143
+ expect(asFragment()).toMatchSnapshot();
144
+ });
145
+ test('Render with isReadOnly', () => {
146
+ const {
147
+ asFragment
148
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
149
+ selectedOptions: ['option1', 'option2'],
150
+ isReadOnly: true
151
+ })));
152
+ expect(asFragment()).toMatchSnapshot();
153
+ });
154
+ test('Render with isDisabled and title', () => {
155
+ const {
156
+ asFragment
157
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
158
+ selectedOptions: ['option1'],
159
+ isDisabled: true,
160
+ title: "Disabled title"
161
+ })));
162
+ expect(asFragment()).toMatchSnapshot();
163
+ });
164
+ test('Render with disabledOptions leaving one enabled selected option', () => {
165
+ const {
166
+ asFragment
167
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
168
+ selectedOptions: ['option1', 'option2'],
169
+ disabledOptions: ['option1']
170
+ })));
171
+ expect(asFragment()).toMatchSnapshot();
172
+ });
173
+ test('Render with disabledOptions leaving two enabled selected options', () => {
174
+ const {
175
+ asFragment
176
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
177
+ selectedOptions: ['option1', 'option2', 'option3'],
178
+ disabledOptions: ['option1']
179
+ })));
180
+ expect(asFragment()).toMatchSnapshot();
181
+ }); // appearance
182
+
183
+ test('Render with size as xmedium', () => {
184
+ const {
185
+ asFragment
186
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
187
+ selectedOptions: ['option1'],
188
+ size: "xmedium"
189
+ })));
190
+ expect(asFragment()).toMatchSnapshot();
191
+ });
192
+ test.each(['small', 'xmedium'])('Render with textBoxSize as %s', textBoxSize => {
193
+ const {
194
+ asFragment
195
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
196
+ textBoxSize: textBoxSize
197
+ })));
198
+ expect(asFragment()).toMatchSnapshot();
199
+ });
200
+ test.each(['primary', 'secondary'])('Render with variant as %s', variant => {
201
+ const {
202
+ asFragment
203
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
204
+ variant: variant
205
+ })));
206
+ expect(asFragment()).toMatchSnapshot();
207
+ });
208
+ test.each(['transparent', 'dark'])('Render with borderColor as %s', borderColor => {
209
+ const {
210
+ asFragment
211
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
212
+ borderColor: borderColor
213
+ })));
214
+ expect(asFragment()).toMatchSnapshot();
215
+ });
216
+ test('Render with needBorder=false', () => {
217
+ const {
218
+ asFragment
219
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
220
+ needBorder: false
221
+ })));
222
+ expect(asFragment()).toMatchSnapshot();
223
+ });
224
+ test('Render with isFocus', () => {
225
+ const {
226
+ asFragment
227
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
228
+ isFocus: true
229
+ })));
230
+ expect(asFragment()).toMatchSnapshot();
231
+ });
232
+ test('Render with isFocus and isReadOnly', () => {
233
+ const {
234
+ asFragment
235
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
236
+ isFocus: true,
237
+ isReadOnly: true
238
+ })));
239
+ expect(asFragment()).toMatchSnapshot();
240
+ });
241
+ test('Render with needEffect=false', () => {
242
+ const {
243
+ asFragment
244
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
245
+ needEffect: false
246
+ })));
247
+ expect(asFragment()).toMatchSnapshot();
248
+ });
249
+ test('Render with placeHolder', () => {
250
+ const {
251
+ asFragment
252
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
253
+ placeHolder: "Select options"
254
+ })));
255
+ expect(asFragment()).toMatchSnapshot();
256
+ });
257
+ test('Render with customClass containerClass', () => {
258
+ const {
259
+ asFragment
260
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
261
+ customClass: {
262
+ containerClass: 'custom-container'
263
+ }
264
+ })));
265
+ expect(asFragment()).toMatchSnapshot();
266
+ }); // option types
267
+
268
+ test('Render with optionType as avatar', () => {
269
+ const {
270
+ asFragment
271
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
272
+ options: [{
273
+ id: 'option1',
274
+ text: 'Option 1',
275
+ photoURL: 'avatar1.png'
276
+ }],
277
+ selectedOptions: ['option1'],
278
+ optionType: "avatar",
279
+ imageField: "photoURL"
280
+ })));
281
+ expect(asFragment()).toMatchSnapshot();
282
+ });
283
+ test('Render with optionType as icon', () => {
284
+ const {
285
+ asFragment
286
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
287
+ selectedOptions: ['option1'],
288
+ optionType: "icon",
289
+ iconName: "ZD-GN-info",
290
+ iconSize: "12"
291
+ })));
292
+ expect(asFragment()).toMatchSnapshot();
293
+ }); // identification and accessibility
294
+
295
+ test('Render with dataIdMultiSelectComp', () => {
296
+ const {
297
+ asFragment
298
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
299
+ dataIdMultiSelectComp: "advanced-comp-dataId"
300
+ })));
301
+ expect(asFragment()).toMatchSnapshot();
302
+ });
303
+ test('Render with dataIdClearIcon and two selectedOptions', () => {
304
+ const {
305
+ asFragment
306
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
307
+ selectedOptions: ['option1', 'option2'],
308
+ dataIdClearIcon: "advanced-clear-dataId"
309
+ })));
310
+ expect(asFragment()).toMatchSnapshot();
311
+ });
312
+ test('Render with dataSelectorId', () => {
313
+ const {
314
+ asFragment
315
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
316
+ dataSelectorId: "advanced-selector"
317
+ })));
318
+ expect(asFragment()).toMatchSnapshot();
319
+ });
320
+ test('Render with htmlId', () => {
321
+ const {
322
+ asFragment
323
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
324
+ htmlId: "advanced-htmlId"
325
+ })));
326
+ expect(asFragment()).toMatchSnapshot();
327
+ });
328
+ test('Render with a11y clearLabel', () => {
329
+ const {
330
+ asFragment
331
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
332
+ selectedOptions: ['option1', 'option2'],
333
+ a11y: {
334
+ clearLabel: 'Clear selected'
335
+ }
336
+ })));
337
+ expect(asFragment()).toMatchSnapshot();
338
+ });
339
+ test('Render with i18nKeys clearText', () => {
340
+ const {
341
+ asFragment
342
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
343
+ selectedOptions: ['option1', 'option2'],
344
+ i18nKeys: {
345
+ clearText: 'Remove all'
346
+ }
347
+ })));
348
+ expect(asFragment()).toMatchSnapshot();
349
+ }); // open menu
350
+
351
+ test('Render with isPopupOpen, isPopupReady and options', () => {
352
+ const {
353
+ asFragment
354
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
355
+ isPopupOpen: true,
356
+ isPopupReady: true
357
+ })));
358
+ expect(asFragment()).toMatchSnapshot();
359
+ });
360
+ test('Render with isPopupOpen, isPopupReady and isDisabled', () => {
361
+ const {
362
+ asFragment
363
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
364
+ isPopupOpen: true,
365
+ isPopupReady: true,
366
+ isDisabled: true
367
+ })));
368
+ expect(asFragment()).toMatchSnapshot();
369
+ });
370
+ test('Render with isPopupOpen, isPopupReady and isReadOnly', () => {
371
+ const {
372
+ asFragment
373
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
374
+ isPopupOpen: true,
375
+ isPopupReady: true,
376
+ isReadOnly: true
377
+ })));
378
+ expect(asFragment()).toMatchSnapshot();
379
+ }); // selected options stay in the list with a tick
380
+
381
+ test('Render with isPopupOpen, isPopupReady and selectedOptions', () => {
382
+ const {
383
+ asFragment
384
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
385
+ isPopupOpen: true,
386
+ isPopupReady: true,
387
+ selectedOptions: ['option1']
388
+ })));
389
+ expect(asFragment()).toMatchSnapshot();
390
+ });
391
+ test('Render with isPopupOpen, isPopupReady and disabledOptions', () => {
392
+ const {
393
+ asFragment
394
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
395
+ isPopupOpen: true,
396
+ isPopupReady: true,
397
+ disabledOptions: ['option2']
398
+ })));
399
+ expect(asFragment()).toMatchSnapshot();
400
+ });
401
+ test('Render with isPopupOpen, isPopupReady and secondaryField', () => {
402
+ const {
403
+ asFragment
404
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
405
+ isPopupOpen: true,
406
+ isPopupReady: true,
407
+ options: [{
408
+ id: 'option1',
409
+ text: 'Option 1',
410
+ secondary: 'Secondary 1'
411
+ }],
412
+ secondaryField: "secondary"
413
+ })));
414
+ expect(asFragment()).toMatchSnapshot();
415
+ });
416
+ test('Render with isPopupOpen, isPopupReady, valueField and textField', () => {
417
+ const {
418
+ asFragment
419
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
420
+ isPopupOpen: true,
421
+ isPopupReady: true,
422
+ options: [{
423
+ key: 'k1',
424
+ label: 'Label 1'
425
+ }, {
426
+ key: 'k2',
427
+ label: 'Label 2'
428
+ }],
429
+ valueField: "key",
430
+ textField: "label"
431
+ })));
432
+ expect(asFragment()).toMatchSnapshot();
433
+ });
434
+ test('Render with isPopupOpen, isPopupReady and optionType as avatar', () => {
435
+ const {
436
+ asFragment
437
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
438
+ isPopupOpen: true,
439
+ isPopupReady: true,
440
+ options: [{
441
+ id: 'option1',
442
+ text: 'Option 1',
443
+ photoURL: 'avatar1.png'
444
+ }],
445
+ optionType: "avatar",
446
+ imageField: "photoURL"
447
+ })));
448
+ expect(asFragment()).toMatchSnapshot();
449
+ });
450
+ test('Render with isPopupOpen, isPopupReady and optionType as icon', () => {
451
+ const {
452
+ asFragment
453
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
454
+ isPopupOpen: true,
455
+ isPopupReady: true,
456
+ optionType: "icon",
457
+ iconName: "ZD-GN-agent",
458
+ iconSize: "12"
459
+ })));
460
+ expect(asFragment()).toMatchSnapshot();
461
+ });
462
+ test.each(['small', 'large'])('Render with isPopupOpen, isPopupReady and listItemSize as %s', listItemSize => {
463
+ const {
464
+ asFragment
465
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
466
+ isPopupOpen: true,
467
+ isPopupReady: true,
468
+ listItemSize: listItemSize
469
+ })));
470
+ expect(asFragment()).toMatchSnapshot();
471
+ });
472
+ test('Render with isPopupOpen, isPopupReady and customProps SuggestionsProps', () => {
473
+ const {
474
+ asFragment
475
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
476
+ isPopupOpen: true,
477
+ isPopupReady: true,
478
+ selectedOptions: ['option1'],
479
+ customProps: {
480
+ SuggestionsProps: {
481
+ needTick: false,
482
+ needBorder: false
483
+ }
484
+ }
485
+ })));
486
+ expect(asFragment()).toMatchSnapshot();
487
+ });
488
+ test('Render with isPopupOpen, isPopupReady and customProps DropBoxProps', () => {
489
+ const {
490
+ asFragment
491
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
492
+ isPopupOpen: true,
493
+ isPopupReady: true,
494
+ customProps: {
495
+ DropBoxProps: {
496
+ size: 'medium',
497
+ isArrow: true
498
+ }
499
+ }
500
+ })));
501
+ expect(asFragment()).toMatchSnapshot();
502
+ });
503
+ test('Render with isPopupOpen, isPopupReady and needSelectAll', () => {
504
+ const {
505
+ asFragment
506
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
507
+ isPopupOpen: true,
508
+ isPopupReady: true,
509
+ needSelectAll: true
510
+ })));
511
+ expect(asFragment()).toMatchSnapshot();
512
+ });
513
+ test('Render with isPopupOpen, isPopupReady, needSelectAll and selectAllText', () => {
514
+ const {
515
+ asFragment
516
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
517
+ isPopupOpen: true,
518
+ isPopupReady: true,
519
+ needSelectAll: true,
520
+ selectAllText: "Select every option"
521
+ })));
522
+ expect(asFragment()).toMatchSnapshot();
523
+ });
524
+ test('Render with isPopupOpen, isPopupReady, needSelectAll and dataIdSelectAllEle', () => {
525
+ const {
526
+ asFragment
527
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
528
+ isPopupOpen: true,
529
+ isPopupReady: true,
530
+ needSelectAll: true,
531
+ dataIdSelectAllEle: "advanced-select-all-dataId"
532
+ })));
533
+ expect(asFragment()).toMatchSnapshot();
534
+ }); // select all is hidden once a limit is set
535
+
536
+ test('Render with isPopupOpen, isPopupReady, needSelectAll and limit', () => {
537
+ const {
538
+ asFragment
539
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
540
+ isPopupOpen: true,
541
+ isPopupReady: true,
542
+ needSelectAll: true,
543
+ limit: 3
544
+ })));
545
+ expect(asFragment()).toMatchSnapshot();
546
+ });
547
+ test('Render with isPopupOpen, isPopupReady and limit reached', () => {
548
+ const {
549
+ asFragment
550
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
551
+ isPopupOpen: true,
552
+ isPopupReady: true,
553
+ selectedOptions: ['option1'],
554
+ limit: 1
555
+ })));
556
+ expect(asFragment()).toMatchSnapshot();
557
+ });
558
+ test('Render with isPopupOpen, isPopupReady, limit reached and i18nKeys limitReachedMessage', () => {
559
+ const {
560
+ asFragment
561
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
562
+ isPopupOpen: true,
563
+ isPopupReady: true,
564
+ selectedOptions: ['option1'],
565
+ limit: 1,
566
+ i18nKeys: {
567
+ limitReachedMessage: 'Only one allowed'
568
+ }
569
+ })));
570
+ expect(asFragment()).toMatchSnapshot();
571
+ });
572
+ test('Render with isPopupOpen, isPopupReady and isLoading', () => {
573
+ const {
574
+ asFragment
575
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
576
+ isPopupOpen: true,
577
+ isPopupReady: true,
578
+ isLoading: true
579
+ })));
580
+ expect(asFragment()).toMatchSnapshot();
581
+ });
582
+ test('Render with isPopupOpen, isPopupReady, isLoading and shouldUseInternalLoader=false', () => {
583
+ const {
584
+ asFragment
585
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
586
+ isPopupOpen: true,
587
+ isPopupReady: true,
588
+ isLoading: true,
589
+ shouldUseInternalLoader: false
590
+ })));
591
+ expect(asFragment()).toMatchSnapshot();
592
+ });
593
+ test('Render with isPopupOpen, isPopupReady, isLoading, shouldUseInternalLoader=false and no options', () => {
594
+ const {
595
+ asFragment
596
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
597
+ options: [],
598
+ isPopupOpen: true,
599
+ isPopupReady: true,
600
+ isLoading: true,
601
+ shouldUseInternalLoader: false
602
+ })));
603
+ expect(asFragment()).toMatchSnapshot();
604
+ }); // empty states
605
+
606
+ test('Render with isPopupOpen, isPopupReady and no options', () => {
607
+ const {
608
+ asFragment
609
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
610
+ options: [],
611
+ isPopupOpen: true,
612
+ isPopupReady: true
613
+ })));
614
+ expect(asFragment()).toMatchSnapshot();
615
+ });
616
+ test('Render with isPopupOpen, isPopupReady, no options and emptyMessage', () => {
617
+ const {
618
+ asFragment
619
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
620
+ options: [],
621
+ isPopupOpen: true,
622
+ isPopupReady: true,
623
+ emptyMessage: "Nothing to select"
624
+ })));
625
+ expect(asFragment()).toMatchSnapshot();
626
+ });
627
+ test('Render with isPopupOpen, isPopupReady, no options and i18nKeys emptyText', () => {
628
+ const {
629
+ asFragment
630
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
631
+ options: [],
632
+ isPopupOpen: true,
633
+ isPopupReady: true,
634
+ i18nKeys: {
635
+ emptyText: 'Empty from i18n'
636
+ }
637
+ })));
638
+ expect(asFragment()).toMatchSnapshot();
639
+ });
640
+ test('Render with isPopupOpen, isPopupReady, no options and renderCustomEmptyState', () => {
641
+ const {
642
+ asFragment
643
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
644
+ options: [],
645
+ isPopupOpen: true,
646
+ isPopupReady: true,
647
+ renderCustomEmptyState: () => /*#__PURE__*/React.createElement("span", null, "Custom empty state")
648
+ })));
649
+ expect(asFragment()).toMatchSnapshot();
650
+ });
651
+ test('Render with isPopupOpen, isPopupReady, no options and dataIdLoading', () => {
652
+ const {
653
+ asFragment
654
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
655
+ options: [],
656
+ isPopupOpen: true,
657
+ isPopupReady: true,
658
+ dataIdLoading: "advanced-empty-dataId"
659
+ })));
660
+ expect(asFragment()).toMatchSnapshot();
661
+ }); // typed search
662
+
663
+ test('Render with isPopupOpen, isPopupReady and search text matching an option', () => {
664
+ const {
665
+ asFragment,
666
+ container
667
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
668
+ isPopupOpen: true,
669
+ isPopupReady: true
670
+ })));
671
+ fireEvent.change(getSearchInput(container), {
672
+ target: {
673
+ value: 'Option 2'
674
+ }
675
+ });
676
+ expect(asFragment()).toMatchSnapshot();
677
+ });
678
+ test('Render with isPopupOpen, isPopupReady and search text matching no option', () => {
679
+ const {
680
+ asFragment,
681
+ container
682
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
683
+ isPopupOpen: true,
684
+ isPopupReady: true
685
+ })));
686
+ fireEvent.change(getSearchInput(container), {
687
+ target: {
688
+ value: 'zzz'
689
+ }
690
+ });
691
+ expect(asFragment()).toMatchSnapshot();
692
+ });
693
+ test('Render with isPopupOpen, isPopupReady, search text matching no option and searchEmptyMessage', () => {
694
+ const {
695
+ asFragment,
696
+ container
697
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
698
+ isPopupOpen: true,
699
+ isPopupReady: true,
700
+ searchEmptyMessage: "No matches found"
701
+ })));
702
+ fireEvent.change(getSearchInput(container), {
703
+ target: {
704
+ value: 'zzz'
705
+ }
706
+ });
707
+ expect(asFragment()).toMatchSnapshot();
708
+ });
709
+ test('Render with isPopupOpen, isPopupReady, search text and needLocalSearch=false', () => {
710
+ const {
711
+ asFragment,
712
+ container
713
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
714
+ isPopupOpen: true,
715
+ isPopupReady: true,
716
+ needLocalSearch: false
717
+ })));
718
+ fireEvent.change(getSearchInput(container), {
719
+ target: {
720
+ value: 'zzz'
721
+ }
722
+ });
723
+ expect(asFragment()).toMatchSnapshot();
724
+ }); // drop box
725
+
726
+ test.each(['medium', 'large'])('Render with isPopupOpen, isPopupReady and dropBoxSize as %s', dropBoxSize => {
727
+ const {
728
+ asFragment
729
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
730
+ isPopupOpen: true,
731
+ isPopupReady: true,
732
+ dropBoxSize: dropBoxSize
733
+ })));
734
+ expect(asFragment()).toMatchSnapshot();
735
+ });
736
+ test('Render with isPopupOpen, isPopupReady and isAnimate=false', () => {
737
+ const {
738
+ asFragment
739
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
740
+ isPopupOpen: true,
741
+ isPopupReady: true,
742
+ isAnimate: false
743
+ })));
744
+ expect(asFragment()).toMatchSnapshot();
745
+ });
746
+ test('Render with isPopupOpen, isPopupReady and animationStyle as default', () => {
747
+ const {
748
+ asFragment
749
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
750
+ isPopupOpen: true,
751
+ isPopupReady: true,
752
+ animationStyle: "default"
753
+ })));
754
+ expect(asFragment()).toMatchSnapshot();
755
+ });
756
+ test('Render with isPopupOpen, isPopupReady and isBoxPaddingNeed=false', () => {
757
+ const {
758
+ asFragment
759
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
760
+ isPopupOpen: true,
761
+ isPopupReady: true,
762
+ isBoxPaddingNeed: false
763
+ })));
764
+ expect(asFragment()).toMatchSnapshot();
765
+ });
766
+ test('Render with isPopupOpen, isPopupReady and getFooter', () => {
767
+ const {
768
+ asFragment
769
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
770
+ isPopupOpen: true,
771
+ isPopupReady: true,
772
+ getFooter: () => /*#__PURE__*/React.createElement("span", null, "Footer content")
773
+ })));
774
+ expect(asFragment()).toMatchSnapshot();
775
+ });
776
+ test('Render with isPopupOpen, isPopupReady and dataIdMultiSelectComp', () => {
777
+ const {
778
+ asFragment
779
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, _extends({}, getRequiredProps(), {
780
+ isPopupOpen: true,
781
+ isPopupReady: true,
782
+ dataIdMultiSelectComp: "advanced-comp-dataId"
783
+ })));
784
+ expect(asFragment()).toMatchSnapshot();
785
+ });
57
786
  });