@geotab/zenith 1.16.1 → 1.17.0-beta.1

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 (231) hide show
  1. package/README.md +15 -0
  2. package/dist/alertRaw/alertRaw.test.js +20 -10
  3. package/dist/alertRaw/alertRaw.test.js.map +1 -1
  4. package/dist/betaPill/betaPill.d.ts +13 -3
  5. package/dist/betaPill/betaPill.js +19 -6
  6. package/dist/betaPill/betaPill.js.map +1 -1
  7. package/dist/betaPill/betaPillContext.d.ts +20 -0
  8. package/dist/betaPill/betaPillContext.js +11 -0
  9. package/dist/betaPill/betaPillContext.js.map +1 -0
  10. package/dist/button/button.d.ts +2 -0
  11. package/dist/button/button.js +2 -2
  12. package/dist/button/button.js.map +1 -1
  13. package/dist/calendar/calendar.js.map +1 -1
  14. package/dist/calendar/calendar.mocked.test.js +2 -3
  15. package/dist/calendar/calendar.mocked.test.js.map +1 -1
  16. package/dist/calendar/calendar.test.js +53 -55
  17. package/dist/calendar/calendar.test.js.map +1 -1
  18. package/dist/calendar/calendarUtils.js.map +1 -1
  19. package/dist/calendar/calendarUtils.test.js +12 -22
  20. package/dist/calendar/calendarUtils.test.js.map +1 -1
  21. package/dist/calendar/dateUtils.js.map +1 -1
  22. package/dist/calendar/dateUtils.test.js +7 -115
  23. package/dist/calendar/dateUtils.test.js.map +1 -1
  24. package/dist/card/card.js.map +1 -1
  25. package/dist/card/components/titleLink.js.map +1 -1
  26. package/dist/card/components/titleLink.test.js +4 -4
  27. package/dist/card/components/titleLink.test.js.map +1 -1
  28. package/dist/checkbox/checkboxIconMinus.js.map +1 -1
  29. package/dist/dataFeed/dataFeed.js.map +1 -1
  30. package/dist/dataFeed/dataFeed.test.js +10 -7
  31. package/dist/dataFeed/dataFeed.test.js.map +1 -1
  32. package/dist/dataFeed/dataFeedColumnsItems.js.map +1 -1
  33. package/dist/dataFeed/feedExpandControl/feedExpandControl.js.map +1 -1
  34. package/dist/dataFeed/hooks/useVisibleColumns.js.map +1 -1
  35. package/dist/dataFeed/hooks/useVisibleColumns.test.js +12 -12
  36. package/dist/dataFeed/hooks/useVisibleColumns.test.js.map +1 -1
  37. package/dist/dataGrid/dataGrid.accessibility.test.js +124 -0
  38. package/dist/dataGrid/dataGrid.accessibility.test.js.map +1 -0
  39. package/dist/dataGrid/dataGrid.test.js +8 -39
  40. package/dist/dataGrid/dataGrid.test.js.map +1 -1
  41. package/dist/dataGrid/withLoading/withLoading.js.map +1 -1
  42. package/dist/dataGrid/withLoading/withLoading.test.js +47 -25
  43. package/dist/dataGrid/withLoading/withLoading.test.js.map +1 -1
  44. package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.accessibility.test.js +39 -0
  45. package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.accessibility.test.js.map +1 -0
  46. package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.test.js +0 -5
  47. package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.test.js.map +1 -1
  48. package/dist/dateInput/dateInput.js.map +1 -1
  49. package/dist/dateInput/dateInput.test.js +219 -105
  50. package/dist/dateInput/dateInput.test.js.map +1 -1
  51. package/dist/dateInputInner/dateInputInner.js.map +1 -1
  52. package/dist/dateInputInner/dateInputInner.mocked.test.js +19 -5
  53. package/dist/dateInputInner/dateInputInner.mocked.test.js.map +1 -1
  54. package/dist/dateInputInner/dateInputInner.test.js +264 -55
  55. package/dist/dateInputInner/dateInputInner.test.js.map +1 -1
  56. package/dist/dateInputInner/dateInputInnerControlBlock.js.map +1 -1
  57. package/dist/dateInputInner/dateInputInnerReducer.js.map +1 -0
  58. package/dist/dateRange/dateRange.accessibility.test.js +79 -0
  59. package/dist/dateRange/dateRange.accessibility.test.js.map +1 -0
  60. package/dist/dateRange/dateRange.js.map +1 -1
  61. package/dist/dateRange/dateRange.test.js +84 -57
  62. package/dist/dateRange/dateRange.test.js.map +1 -1
  63. package/dist/dateRange/dateRangeUtils.js.map +1 -1
  64. package/dist/dateRangeInner/dateRangeInner.js.map +1 -1
  65. package/dist/dateRangeInner/dateRangeInner.test.js +15 -11
  66. package/dist/dateRangeInner/dateRangeInner.test.js.map +1 -1
  67. package/dist/dropdown/dropdown.js +18 -13
  68. package/dist/dropdown/dropdown.js.map +1 -1
  69. package/dist/dropdown/dropdown.test.js +240 -72
  70. package/dist/dropdown/dropdown.test.js.map +1 -1
  71. package/dist/dropdownOld/dropdownOld.js +1 -1
  72. package/dist/dropdownOld/dropdownOld.js.map +1 -1
  73. package/dist/feedbackContainer/hooks/useFeedbackAlert.test.js +259 -0
  74. package/dist/feedbackContainer/hooks/useFeedbackAlert.test.js.map +1 -1
  75. package/dist/feedbackContainer/hooks/useFeedbackToast.test.js +197 -0
  76. package/dist/feedbackContainer/hooks/useFeedbackToast.test.js.map +1 -1
  77. package/dist/filtersBar/components/filtersBarDropdown/filtersBarDropdown.d.ts +1 -1
  78. package/dist/filtersBar/components/filtersBarDropdown/filtersBarDropdown.js.map +1 -1
  79. package/dist/filtersBar/components/filtersBarDropdown/filtersBarDropdown.test.js +29 -19
  80. package/dist/filtersBar/components/filtersBarDropdown/filtersBarDropdown.test.js.map +1 -1
  81. package/dist/filtersBar/components/filtersBarPeriodPicker/filtersBarPeriodPicker.js.map +1 -1
  82. package/dist/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js.map +1 -1
  83. package/dist/filtersBar/components/filtersBarPeriodPicker/getRangeOption.test.js +122 -0
  84. package/dist/filtersBar/components/filtersBarPeriodPicker/getRangeOption.test.js.map +1 -1
  85. package/dist/filtersBar/components/filtersBarPeriodPicker/normalizeDates.js.map +1 -1
  86. package/dist/filtersBar/components/filtersBarPeriodPicker/normalizeDates.test.js +4 -3
  87. package/dist/filtersBar/components/filtersBarPeriodPicker/normalizeDates.test.js.map +1 -1
  88. package/dist/filtersBar/filtersBar.d.ts +4 -0
  89. package/dist/filtersBar/filtersBar.js +13 -4
  90. package/dist/filtersBar/filtersBar.js.map +1 -1
  91. package/dist/filtersBar/filtersBarProvider.d.ts +18 -0
  92. package/dist/filtersBar/filtersBarProvider.js +28 -0
  93. package/dist/filtersBar/filtersBarProvider.js.map +1 -0
  94. package/dist/filtersBar/filtersBarProviderSearch.d.ts +13 -0
  95. package/dist/filtersBar/filtersBarProviderSearch.js +31 -0
  96. package/dist/filtersBar/filtersBarProviderSearch.js.map +1 -0
  97. package/dist/filtersBar/filtersBarSidePanel/filtersBarSidePanel.accessibility.test.js +27 -0
  98. package/dist/filtersBar/filtersBarSidePanel/filtersBarSidePanel.accessibility.test.js.map +1 -0
  99. package/dist/filtersBar/filtersBarSidePanel/filtersBarSidePanel.test.js +78 -67
  100. package/dist/filtersBar/filtersBarSidePanel/filtersBarSidePanel.test.js.map +1 -1
  101. package/dist/groupsFilter/groupsFilter.accessibility.test.js +69 -0
  102. package/dist/groupsFilter/groupsFilter.accessibility.test.js.map +1 -0
  103. package/dist/groupsFilter/groupsFilter.test.js +0 -37
  104. package/dist/groupsFilter/groupsFilter.test.js.map +1 -1
  105. package/dist/header/components/collapsedItemsControl/collapsedItemsControl.js.map +1 -1
  106. package/dist/header/header.js +44 -39
  107. package/dist/header/header.js.map +1 -1
  108. package/dist/header/header.test.js +98 -5
  109. package/dist/header/header.test.js.map +1 -1
  110. package/dist/header/headerContext.js.map +1 -0
  111. package/dist/header/headerHelpers.d.ts +0 -1
  112. package/dist/header/headerHelpers.js +1 -12
  113. package/dist/header/headerHelpers.js.map +1 -1
  114. package/dist/header/headerHelpers.test.js +8 -9
  115. package/dist/header/headerHelpers.test.js.map +1 -1
  116. package/dist/header/headerMenu.js.map +1 -1
  117. package/dist/headerTitle/headerTitle.d.ts +3 -0
  118. package/dist/headerTitle/headerTitle.js +2 -2
  119. package/dist/headerTitle/headerTitle.js.map +1 -1
  120. package/dist/index.css +687 -678
  121. package/dist/index.d.ts +2 -1
  122. package/dist/index.js +17 -15
  123. package/dist/index.js.map +1 -1
  124. package/dist/inputAdornments/inputAdornments.js.map +1 -1
  125. package/dist/lineChart/utils.d.ts +3 -3
  126. package/dist/menu/components/menuItem.js.map +1 -1
  127. package/dist/menu/controlledMenu.accessibility.test.js +75 -0
  128. package/dist/menu/controlledMenu.accessibility.test.js.map +1 -0
  129. package/dist/menu/controlledMenu.test.js +0 -44
  130. package/dist/menu/controlledMenu.test.js.map +1 -1
  131. package/dist/parallelSelection/parallelSelection.js.map +1 -1
  132. package/dist/pillExpandable/pillExpandable.d.ts +2 -0
  133. package/dist/pillExpandable/pillExpandable.js +3 -3
  134. package/dist/pillExpandable/pillExpandable.js.map +1 -1
  135. package/dist/pillExpandable/pillExpandableSimple.d.ts +1 -0
  136. package/dist/pillExpandable/pillExpandableSimple.js +4 -2
  137. package/dist/pillExpandable/pillExpandableSimple.js.map +1 -1
  138. package/dist/searchInputRaw/searchInputRaw.accessibility.test.js +46 -0
  139. package/dist/searchInputRaw/searchInputRaw.accessibility.test.js.map +1 -0
  140. package/dist/searchInputRaw/searchInputRaw.test.js +0 -14
  141. package/dist/searchInputRaw/searchInputRaw.test.js.map +1 -1
  142. package/dist/select/select.d.ts +8 -23
  143. package/dist/select/select.js +4 -147
  144. package/dist/select/select.js.map +1 -1
  145. package/dist/selectField/selectField.d.ts +4 -4
  146. package/dist/selectField/selectField.js +1 -6
  147. package/dist/selectField/selectField.js.map +1 -1
  148. package/dist/selectList/selectList.d.ts +2 -2
  149. package/dist/selectList/selectList.js +4 -5
  150. package/dist/selectList/selectList.js.map +1 -1
  151. package/dist/selectList/selectList.test.js +1 -2
  152. package/dist/selectList/selectList.test.js.map +1 -1
  153. package/dist/selectList/selectListItem.js +6 -1
  154. package/dist/selectList/selectListItem.js.map +1 -1
  155. package/dist/selectRaw/hooks/usePopupWidth.d.ts +8 -0
  156. package/dist/selectRaw/hooks/usePopupWidth.js +72 -0
  157. package/dist/selectRaw/hooks/usePopupWidth.js.map +1 -0
  158. package/dist/selectRaw/hooks/usePopupWidth.test.js +193 -0
  159. package/dist/selectRaw/hooks/usePopupWidth.test.js.map +1 -0
  160. package/dist/selectRaw/select.actionTypes.js.map +1 -0
  161. package/dist/{select → selectRaw}/select.helpers.d.ts +2 -2
  162. package/dist/selectRaw/select.helpers.js.map +1 -0
  163. package/dist/selectRaw/select.helpers.test.js.map +1 -0
  164. package/dist/{select → selectRaw}/select.reducer.d.ts +2 -2
  165. package/dist/selectRaw/select.reducer.js.map +1 -0
  166. package/dist/selectRaw/select.reducer.test.js.map +1 -0
  167. package/dist/selectRaw/selectRaw.d.ts +30 -0
  168. package/dist/selectRaw/selectRaw.js +153 -0
  169. package/dist/selectRaw/selectRaw.js.map +1 -0
  170. package/dist/{select/select.test.js → selectRaw/selectRaw.test.js} +95 -117
  171. package/dist/selectRaw/selectRaw.test.js.map +1 -0
  172. package/dist/selectRaw/utils/constants.d.ts +2 -0
  173. package/dist/selectRaw/utils/constants.js +5 -0
  174. package/dist/selectRaw/utils/constants.js.map +1 -0
  175. package/dist/selectRaw/utils/getValidWidth.d.ts +1 -0
  176. package/dist/selectRaw/utils/getValidWidth.js +6 -0
  177. package/dist/selectRaw/utils/getValidWidth.js.map +1 -0
  178. package/dist/selectRaw/utils/getValidWidth.test.js +19 -0
  179. package/dist/selectRaw/utils/getValidWidth.test.js.map +1 -0
  180. package/dist/sortControl/sortControl.js +1 -1
  181. package/dist/sortControl/sortControl.js.map +1 -1
  182. package/dist/table/expandable/useFeedExpandable.js.map +1 -0
  183. package/dist/table/expandable/{useFeedbackExpandable.test.js → useFeedExpandable.test.js} +17 -17
  184. package/dist/table/expandable/useFeedExpandable.test.js.map +1 -0
  185. package/dist/table/flexible/useFlexibleColumns.js.map +1 -1
  186. package/dist/table/loading/useLoading.js +8 -7
  187. package/dist/table/loading/useLoading.js.map +1 -1
  188. package/dist/table/table.js.map +1 -1
  189. package/dist/table/table.test.js +46 -0
  190. package/dist/table/table.test.js.map +1 -1
  191. package/dist/textareaRaw/textareaRaw.d.ts +1 -0
  192. package/dist/textareaRaw/textareaRaw.js.map +1 -1
  193. package/dist/timePicker/timePicker.js.map +1 -1
  194. package/dist/toastRaw/toastRaw.test.js +2 -2
  195. package/dist/toastRaw/toastRaw.test.js.map +1 -1
  196. package/dist/utils/dateInputUtils/useTodayButton.js.map +1 -0
  197. package/dist/utils/localization/translations/cs-json.js.map +1 -1
  198. package/dist/utils/localization/translations/de-json.js.map +1 -1
  199. package/dist/utils/localization/translations/en-json.d.ts +3 -0
  200. package/dist/utils/localization/translations/en-json.js +3 -0
  201. package/dist/utils/localization/translations/en-json.js.map +1 -1
  202. package/dist/utils/localization/translations/es-json.js.map +1 -1
  203. package/dist/utils/localization/translations/fr-FR-json.js.map +1 -1
  204. package/dist/utils/localization/translations/fr-json.js.map +1 -1
  205. package/dist/utils/localization/translations/id-json.js.map +1 -1
  206. package/dist/utils/localization/translations/it-json.js.map +1 -1
  207. package/dist/utils/localization/translations/ja-json.js.map +1 -1
  208. package/dist/utils/localization/translations/ms-json.js.map +1 -1
  209. package/dist/utils/localization/translations/nl-json.js.map +1 -1
  210. package/dist/utils/localization/translations/pl-json.js.map +1 -1
  211. package/dist/utils/localization/translations/pt-BR-json.js.map +1 -1
  212. package/dist/utils/localization/translations/sv-json.js.map +1 -1
  213. package/dist/utils/localization/translations/th-json.js.map +1 -1
  214. package/dist/utils/localization/translations/tr-json.js.map +1 -1
  215. package/dist/utils/localization/translations/zh-Hans-json.js.map +1 -1
  216. package/package.json +4 -4
  217. package/dist/select/select.actionTypes.js.map +0 -1
  218. package/dist/select/select.helpers.js.map +0 -1
  219. package/dist/select/select.helpers.test.js.map +0 -1
  220. package/dist/select/select.reducer.js.map +0 -1
  221. package/dist/select/select.reducer.test.js.map +0 -1
  222. package/dist/select/select.test.js.map +0 -1
  223. package/dist/table/expandable/useFeedbackExpandable.js +0 -18
  224. package/dist/table/expandable/useFeedbackExpandable.js.map +0 -1
  225. package/dist/table/expandable/useFeedbackExpandable.test.js.map +0 -1
  226. /package/dist/{select → selectRaw}/select.actionTypes.d.ts +0 -0
  227. /package/dist/{select → selectRaw}/select.actionTypes.js +0 -0
  228. /package/dist/{select → selectRaw}/select.helpers.js +0 -0
  229. /package/dist/{select → selectRaw}/select.helpers.test.js +0 -0
  230. /package/dist/{select → selectRaw}/select.reducer.js +0 -0
  231. /package/dist/{select → selectRaw}/select.reducer.test.js +0 -0
@@ -11,6 +11,7 @@ jest.mock("./../utils/localization/useLanguage", () => ({
11
11
  })
12
12
  }));
13
13
  describe("Dropdown", () => {
14
+ const debounceTimeout = 300;
14
15
  beforeEach(() => {
15
16
  window.HTMLElement.prototype.scrollIntoView = jest.fn();
16
17
  });
@@ -70,21 +71,26 @@ describe("Dropdown", () => {
70
71
  react_1.fireEvent.click(getByTitle("Open filter"));
71
72
  await (0, react_1.waitFor)(() => {
72
73
  expect(mockedDataLoader).toHaveBeenCalled();
74
+ }, { timeout: debounceTimeout });
75
+ await (0, react_1.waitFor)(() => {
76
+ expect(mockedDataLoader).toHaveBeenCalled();
77
+ const itemsList = document.body.querySelectorAll(".zen-checkbox-list-with-action__label");
78
+ expect(itemsList[0].textContent).toBe("A");
79
+ expect(itemsList[1].textContent).toBe("B");
80
+ expect(itemsList[2].textContent).toBe("C");
73
81
  });
74
- let itemsList = document.body.querySelectorAll(".zen-checkbox-list-with-action__label");
75
- expect(itemsList[0].textContent).toBe("A");
76
- expect(itemsList[1].textContent).toBe("B");
77
- expect(itemsList[2].textContent).toBe("C");
78
82
  react_1.fireEvent.click(getByTitle("Open filter"));
79
83
  (0, react_1.act)(() => rerender((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: [], onChange: mockedOnSelect, getData: mockedDataLoaderSorted, errorHandler: jest.fn() })));
80
84
  react_1.fireEvent.click(getByTitle("Open filter"));
81
85
  await (0, react_1.waitFor)(() => {
82
86
  expect(mockedDataLoaderSorted).toHaveBeenCalled();
87
+ }, { timeout: debounceTimeout });
88
+ await (0, react_1.waitFor)(() => {
89
+ const itemsList = document.body.querySelectorAll(".zen-checkbox-list-with-action__label");
90
+ expect(itemsList[0].textContent).toBe("C");
91
+ expect(itemsList[1].textContent).toBe("B");
92
+ expect(itemsList[2].textContent).toBe("A");
83
93
  });
84
- itemsList = document.body.querySelectorAll(".zen-checkbox-list-with-action__label");
85
- expect(itemsList[0].textContent).toBe("C");
86
- expect(itemsList[1].textContent).toBe("B");
87
- expect(itemsList[2].textContent).toBe("A");
88
94
  });
89
95
  test("Test dropdown sorting tree structure", async () => {
90
96
  const mockedOnSelect = jest.fn();
@@ -93,21 +99,25 @@ describe("Dropdown", () => {
93
99
  react_1.fireEvent.click(getByTitle("Open filter"));
94
100
  await (0, react_1.waitFor)(() => {
95
101
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
102
+ }, { timeout: debounceTimeout });
103
+ await (0, react_1.waitFor)(() => {
104
+ const itemsList = document.body.querySelectorAll(".zen-checkbox-list-with-action__label-text");
105
+ expect(itemsList[0].textContent).toBe("A element");
106
+ expect(itemsList[1].textContent).toBe("B element");
96
107
  });
97
- let itemsList = document.body.querySelectorAll(".zen-checkbox-list-with-action__label-text");
98
- expect(itemsList[0].textContent).toBe("A element");
99
- expect(itemsList[1].textContent).toBe("B element");
100
108
  let inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
101
109
  (0, react_1.act)(() => {
102
110
  react_1.fireEvent.change(inputField, { target: { value: "QA" } });
103
111
  });
104
112
  await (0, react_1.waitFor)(() => {
105
113
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
114
+ }, { timeout: debounceTimeout });
115
+ await (0, react_1.waitFor)(() => {
116
+ const itemsList = document.body.querySelectorAll(".zen-checkbox-list-with-action__label-text");
117
+ expect(itemsList[0].textContent).toBe("A element");
118
+ expect(itemsList[1].textContent).toBe("D element");
119
+ expect(itemsList[2].textContent).toBe("E element");
106
120
  });
107
- itemsList = document.body.querySelectorAll(".zen-checkbox-list-with-action__label-text");
108
- expect(itemsList[0].textContent).toBe("A element");
109
- expect(itemsList[1].textContent).toBe("D element");
110
- expect(itemsList[2].textContent).toBe("E element");
111
121
  inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
112
122
  (0, react_1.act)(() => {
113
123
  react_1.fireEvent.change(inputField, { target: { value: "" } });
@@ -117,21 +127,25 @@ describe("Dropdown", () => {
117
127
  react_1.fireEvent.click(getByTitle("Open filter"));
118
128
  await (0, react_1.waitFor)(() => {
119
129
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
130
+ }, { timeout: debounceTimeout });
131
+ await (0, react_1.waitFor)(() => {
132
+ const itemsList = document.body.querySelectorAll(".zen-checkbox-list-with-action__label");
133
+ expect(itemsList[0].textContent).toBe("B element");
134
+ expect(itemsList[1].textContent).toBe("A element");
120
135
  });
121
- itemsList = document.body.querySelectorAll(".zen-checkbox-list-with-action__label");
122
- expect(itemsList[0].textContent).toBe("B element");
123
- expect(itemsList[1].textContent).toBe("A element");
124
136
  inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
125
137
  (0, react_1.act)(() => {
126
138
  react_1.fireEvent.change(inputField, { target: { value: "QA" } });
127
139
  });
128
140
  await (0, react_1.waitFor)(() => {
129
141
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
142
+ }, { timeout: debounceTimeout });
143
+ await (0, react_1.waitFor)(() => {
144
+ const itemsList = document.body.querySelectorAll(".zen-checkbox-list-with-action__label-text");
145
+ expect(itemsList[0].textContent).toBe("E element");
146
+ expect(itemsList[1].textContent).toBe("D element");
147
+ expect(itemsList[2].textContent).toBe("A element");
130
148
  });
131
- itemsList = document.body.querySelectorAll(".zen-checkbox-list-with-action__label-text");
132
- expect(itemsList[0].textContent).toBe("E element");
133
- expect(itemsList[1].textContent).toBe("D element");
134
- expect(itemsList[2].textContent).toBe("A element");
135
149
  react_1.fireEvent.click(getByTitle("Open filter"));
136
150
  });
137
151
  test("Test dropdown with getSelectedItem", async () => {
@@ -169,6 +183,73 @@ describe("Dropdown", () => {
169
183
  expect(container.querySelector(".zen-filter-button__quantity")?.textContent).toBe("2");
170
184
  });
171
185
  });
186
+ test("Test dropdown always generate data on every 'getData'", async () => {
187
+ const mockedOnSelect = jest.fn();
188
+ const mockedDataArr = [
189
+ { id: "b1", name: "Car" },
190
+ { id: "b2", name: "Bus" },
191
+ { id: "b3", name: "Truck" },
192
+ { id: "b5", name: "Motorcycle" },
193
+ { id: "b8", name: "Bus" }
194
+ ];
195
+ const mockedGetData = jest.fn().mockImplementation((_) => Promise.resolve(mockedDataArr));
196
+ const { container, getByTitle } = await (0, react_1.act)(() => (0, react_1.render)((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: [], onChange: mockedOnSelect, getData: mockedGetData, errorHandler: jest.fn() })));
197
+ react_1.fireEvent.click(getByTitle("Open filter"));
198
+ await (0, react_1.waitFor)(() => {
199
+ expect(mockedGetData).toHaveBeenCalled();
200
+ }, { timeout: debounceTimeout });
201
+ await (0, react_1.waitFor)(() => {
202
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
203
+ });
204
+ let elementB8 = document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='b8'] .zen-checkbox-list-with-action__label-text");
205
+ expect(elementB8).not.toBeNull();
206
+ expect(elementB8?.textContent).toBe("Bus");
207
+ await (0, react_1.act)(() => react_1.fireEvent.click(container.querySelector(".zen-dropdown-searchable-trigger__popup-trigger")));
208
+ await (0, react_1.waitFor)(() => {
209
+ expect(document.body.querySelector(".zen-dropdown-list")).toBeNull();
210
+ });
211
+ mockedDataArr[4].name = "Plane";
212
+ react_1.fireEvent.click(getByTitle("Open filter"));
213
+ await (0, react_1.waitFor)(() => {
214
+ expect(mockedGetData).toHaveBeenCalled();
215
+ }, { timeout: debounceTimeout });
216
+ await (0, react_1.waitFor)(() => {
217
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
218
+ });
219
+ elementB8 = document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='b8'] .zen-checkbox-list-with-action__label-text");
220
+ expect(elementB8).not.toBeNull();
221
+ expect(elementB8?.textContent).toBe("Plane");
222
+ });
223
+ test("Test dropdown always generate data on every customGetData call", async () => {
224
+ const mockedOnSelect = jest.fn();
225
+ const mockedDataArr = [
226
+ { id: "b1", name: "Car" },
227
+ { id: "b2", name: "Bus" },
228
+ { id: "b3", name: "Truck" },
229
+ { id: "b5", name: "Motorcycle" },
230
+ { id: "b8", name: "Bus" }
231
+ ];
232
+ const { container, getByTitle } = await (0, react_1.act)(() => (0, react_1.render)((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: [], onChange: mockedOnSelect, dataItems: mockedDataArr, errorHandler: jest.fn() })));
233
+ react_1.fireEvent.click(getByTitle("Open filter"));
234
+ await (0, react_1.waitFor)(() => {
235
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
236
+ }, { timeout: debounceTimeout });
237
+ let elementB8 = document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='b8'] .zen-checkbox-list-with-action__label-text");
238
+ expect(elementB8).not.toBeNull();
239
+ expect(elementB8?.textContent).toBe("Bus");
240
+ await (0, react_1.act)(() => react_1.fireEvent.click(container.querySelector(".zen-dropdown-searchable-trigger__popup-trigger")));
241
+ await (0, react_1.waitFor)(() => {
242
+ expect(document.body.querySelector(".zen-dropdown-list")).toBeNull();
243
+ });
244
+ mockedDataArr[4].name = "Plane";
245
+ react_1.fireEvent.click(getByTitle("Open filter"));
246
+ await (0, react_1.waitFor)(() => {
247
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
248
+ }, { timeout: debounceTimeout });
249
+ elementB8 = document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='b8'] .zen-checkbox-list-with-action__label-text");
250
+ expect(elementB8).not.toBeNull();
251
+ expect(elementB8?.textContent).toBe("Plane");
252
+ });
172
253
  test("Test dropdown clean search field on close", async () => {
173
254
  const mockedOnSelect = jest.fn();
174
255
  const { container, getByTitle } = await (0, react_1.act)(() => (0, react_1.render)((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: [], onChange: mockedOnSelect, getData: mockedGroupLoaderWithSearch, errorHandler: jest.fn(), hasApplyButton: true })));
@@ -176,15 +257,17 @@ describe("Dropdown", () => {
176
257
  react_1.fireEvent.click(getByTitle("Open filter"));
177
258
  await (0, react_1.waitFor)(() => {
178
259
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
179
- });
260
+ }, { timeout: debounceTimeout });
180
261
  let inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
181
262
  (0, react_1.act)(() => {
182
263
  react_1.fireEvent.change(inputField, { target: { value: "QA" } });
183
264
  });
184
265
  await (0, react_1.waitFor)(() => {
185
266
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
267
+ }, { timeout: debounceTimeout });
268
+ await (0, react_1.waitFor)(() => {
269
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
186
270
  });
187
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
188
271
  inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
189
272
  expect(inputField?.getAttribute("value")).toBe("QA");
190
273
  await (0, react_1.act)(() => react_1.fireEvent.keyDown(container.querySelector(".zen-dropdown-searchable-trigger"), { key: "Escape" }));
@@ -197,15 +280,17 @@ describe("Dropdown", () => {
197
280
  react_1.fireEvent.click(getByTitle("Open filter"));
198
281
  await (0, react_1.waitFor)(() => {
199
282
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
200
- });
283
+ }, { timeout: debounceTimeout });
201
284
  inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
202
285
  (0, react_1.act)(() => {
203
286
  react_1.fireEvent.change(inputField, { target: { value: "QA" } });
204
287
  });
205
288
  await (0, react_1.waitFor)(() => {
206
289
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
290
+ }, { timeout: debounceTimeout });
291
+ await (0, react_1.waitFor)(() => {
292
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
207
293
  });
208
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
209
294
  inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
210
295
  expect(inputField?.getAttribute("value")).toBe("QA");
211
296
  await (0, react_1.act)(() => react_1.fireEvent.click(container.querySelector(".zen-dropdown-searchable-trigger__popup-trigger")));
@@ -218,17 +303,19 @@ describe("Dropdown", () => {
218
303
  react_1.fireEvent.click(getByTitle("Open filter"));
219
304
  await (0, react_1.waitFor)(() => {
220
305
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
221
- });
306
+ }, { timeout: debounceTimeout });
222
307
  inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
223
308
  (0, react_1.act)(() => {
224
309
  react_1.fireEvent.change(inputField, { target: { value: "QA" } });
225
310
  });
226
311
  await (0, react_1.waitFor)(() => {
227
312
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
313
+ }, { timeout: debounceTimeout });
314
+ await (0, react_1.waitFor)(() => {
315
+ inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
316
+ expect(inputField?.getAttribute("value")).toBe("QA");
317
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
228
318
  });
229
- inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
230
- expect(inputField?.getAttribute("value")).toBe("QA");
231
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
232
319
  react_1.fireEvent.click(document.body.querySelector(".zen-dropdown-list__cancel-button"));
233
320
  await (0, react_1.waitFor)(() => {
234
321
  expect(document.body.querySelector(".zen-dropdown-list")).toBeNull();
@@ -239,17 +326,19 @@ describe("Dropdown", () => {
239
326
  react_1.fireEvent.click(getByTitle("Open filter"));
240
327
  await (0, react_1.waitFor)(() => {
241
328
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
242
- });
329
+ }, { timeout: debounceTimeout });
243
330
  inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
244
331
  (0, react_1.act)(() => {
245
332
  react_1.fireEvent.change(inputField, { target: { value: "QA" } });
246
333
  });
247
334
  await (0, react_1.waitFor)(() => {
248
335
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
336
+ }, { timeout: debounceTimeout });
337
+ await (0, react_1.waitFor)(() => {
338
+ inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
339
+ expect(inputField?.getAttribute("value")).toBe("QA");
340
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
249
341
  });
250
- inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
251
- expect(inputField?.getAttribute("value")).toBe("QA");
252
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
253
342
  react_1.fireEvent.click(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildA'] .zen-checkbox__label"));
254
343
  react_1.fireEvent.click(document.body.querySelector(".zen-dropdown-list__apply-button"));
255
344
  await (0, react_1.waitFor)(() => {
@@ -261,17 +350,19 @@ describe("Dropdown", () => {
261
350
  react_1.fireEvent.click(getByTitle("Open filter"));
262
351
  await (0, react_1.waitFor)(() => {
263
352
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
264
- });
353
+ }, { timeout: debounceTimeout });
265
354
  inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
266
355
  (0, react_1.act)(() => {
267
356
  react_1.fireEvent.change(inputField, { target: { value: "QA" } });
268
357
  });
269
358
  await (0, react_1.waitFor)(() => {
270
359
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
360
+ }, { timeout: debounceTimeout });
361
+ await (0, react_1.waitFor)(() => {
362
+ inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
363
+ expect(inputField?.getAttribute("value")).toBe("QA");
364
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
271
365
  });
272
- inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
273
- expect(inputField?.getAttribute("value")).toBe("QA");
274
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
275
366
  react_1.fireEvent.click(document.body);
276
367
  await (0, react_1.waitFor)(() => {
277
368
  expect(document.body.querySelector(".zen-dropdown-list")).toBeNull();
@@ -287,9 +378,11 @@ describe("Dropdown", () => {
287
378
  react_1.fireEvent.click(getByTitle("Open filter"));
288
379
  await (0, react_1.waitFor)(() => {
289
380
  expect(mockedGroupLoader).toHaveBeenCalled();
290
- });
381
+ }, { timeout: debounceTimeout });
291
382
  (0, react_1.act)(() => rerender((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: [], dataItems: groupsFilterTestData_1.groupsArr, onChange: mockedOnSelect, getData: mockedGroupLoader, errorHandler: jest.fn() })));
292
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
383
+ await (0, react_1.waitFor)(() => {
384
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
385
+ });
293
386
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildA']")).not.toBeNull();
294
387
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildB']")).not.toBeNull();
295
388
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildC']")).toBeNull();
@@ -349,9 +442,11 @@ describe("Dropdown", () => {
349
442
  react_1.fireEvent.click(getByTitle("Open filter"));
350
443
  await (0, react_1.waitFor)(() => {
351
444
  expect(mockedGroupLoader).toHaveBeenCalled();
352
- });
445
+ }, { timeout: debounceTimeout });
353
446
  (0, react_1.act)(() => rerender((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: [], onChange: mockedOnSelect, getData: mockedGroupLoader, errorHandler: jest.fn() })));
354
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
447
+ await (0, react_1.waitFor)(() => {
448
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
449
+ });
355
450
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildA']")).not.toBeNull();
356
451
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildB']")).not.toBeNull();
357
452
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildC']")).toBeNull();
@@ -366,9 +461,11 @@ describe("Dropdown", () => {
366
461
  react_1.fireEvent.click(getByTitle("Open filter"));
367
462
  await (0, react_1.waitFor)(() => {
368
463
  expect(mockedGroupLoader).toHaveBeenCalled();
369
- });
464
+ }, { timeout: debounceTimeout });
370
465
  (0, react_1.act)(() => rerender((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: [], onChange: mockedOnSelect, getData: mockedGroupLoader, errorHandler: jest.fn(), hasApplyButton: true })));
371
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
466
+ await (0, react_1.waitFor)(() => {
467
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
468
+ });
372
469
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildA']")).not.toBeNull();
373
470
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildB']")).not.toBeNull();
374
471
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildC']")).toBeNull();
@@ -393,8 +490,10 @@ describe("Dropdown", () => {
393
490
  react_1.fireEvent.click(getByTitle("Open filter"));
394
491
  await (0, react_1.waitFor)(() => {
395
492
  expect(mockedGroupLoader).toHaveBeenCalled();
493
+ }, { timeout: debounceTimeout });
494
+ await (0, react_1.waitFor)(() => {
495
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
396
496
  });
397
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
398
497
  applyButton = getApplyButton();
399
498
  expect(applyButton?.getAttribute("disabled")).not.toBeNull();
400
499
  react_1.fireEvent.click(getByText("B element"));
@@ -409,8 +508,10 @@ describe("Dropdown", () => {
409
508
  react_1.fireEvent.click(getByTitle("Open filter"));
410
509
  await (0, react_1.waitFor)(() => {
411
510
  expect(mockedUsersLoader).toHaveBeenCalled();
511
+ }, { timeout: debounceTimeout });
512
+ await (0, react_1.waitFor)(() => {
513
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
412
514
  });
413
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
414
515
  expect(queryByText("Select all")).toBeNull();
415
516
  react_1.fireEvent.click(getByText("atticuspinch@gmail.com"));
416
517
  expect(mockedOnSelect).toHaveBeenCalledWith([
@@ -421,8 +522,10 @@ describe("Dropdown", () => {
421
522
  react_1.fireEvent.click(getByTitle("Open filter"));
422
523
  await (0, react_1.waitFor)(() => {
423
524
  expect(mockedUsersLoader).toHaveBeenCalled();
525
+ }, { timeout: debounceTimeout });
526
+ await (0, react_1.waitFor)(() => {
527
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
424
528
  });
425
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
426
529
  let inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
427
530
  expect(inputField?.getAttribute("placeholder")).toBe("atticuspinch@gmail.com");
428
531
  react_1.fireEvent.click(getByText("jeanlouisepinch@gmail.com"));
@@ -434,8 +537,10 @@ describe("Dropdown", () => {
434
537
  react_1.fireEvent.click(getByTitle("Open filter"));
435
538
  await (0, react_1.waitFor)(() => {
436
539
  expect(mockedUsersLoader).toHaveBeenCalled();
540
+ }, { timeout: debounceTimeout });
541
+ await (0, react_1.waitFor)(() => {
542
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
437
543
  });
438
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
439
544
  inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
440
545
  expect(inputField?.getAttribute("placeholder")).toBe("jeanlouisepinch@gmail.com");
441
546
  react_1.fireEvent.click(getByText("jeanlouisepinch@gmail.com"));
@@ -455,6 +560,8 @@ describe("Dropdown", () => {
455
560
  react_1.fireEvent.click(getByTitle("Open filter"));
456
561
  await (0, react_1.waitFor)(() => {
457
562
  expect(mockedUsersLoader).toHaveBeenCalled();
563
+ }, { timeout: debounceTimeout });
564
+ await (0, react_1.waitFor)(() => {
458
565
  expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
459
566
  });
460
567
  expect(document.body.querySelector(".zen-dropdown-list__footer")).toBeNull();
@@ -468,8 +575,10 @@ describe("Dropdown", () => {
468
575
  react_1.fireEvent.click(getByTitle("Open filter"));
469
576
  await (0, react_1.waitFor)(() => {
470
577
  expect(mockedUsersLoader).toHaveBeenCalled();
578
+ }, { timeout: debounceTimeout });
579
+ await (0, react_1.waitFor)(() => {
580
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
471
581
  });
472
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
473
582
  selectedItem = document.body.querySelector(".zen-select-item[data-id='b12']");
474
583
  expect(selectedItem?.getAttribute("aria-selected")).toBe("true");
475
584
  nextSelectedItem = document.body.querySelector(".zen-select-item[data-id='b4']");
@@ -484,8 +593,10 @@ describe("Dropdown", () => {
484
593
  react_1.fireEvent.click(getByTitle("Open filter"));
485
594
  await (0, react_1.waitFor)(() => {
486
595
  expect(mockedUsersLoader).toHaveBeenCalled();
596
+ }, { timeout: debounceTimeout });
597
+ await (0, react_1.waitFor)(() => {
598
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
487
599
  });
488
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
489
600
  const prevSelectedItem = document.body.querySelector(".zen-select-item[data-id='b12']");
490
601
  expect(prevSelectedItem?.getAttribute("aria-selected")).toBe("false");
491
602
  const currentSelectedItem = document.body.querySelector(".zen-select-item[data-id='b4']");
@@ -538,8 +649,10 @@ describe("Dropdown", () => {
538
649
  });
539
650
  await (0, react_1.waitFor)(() => {
540
651
  expect(mockedUsersLoader).toHaveBeenCalled();
652
+ }, { timeout: debounceTimeout });
653
+ await (0, react_1.waitFor)(() => {
654
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
541
655
  });
542
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
543
656
  expect(document.body.querySelector(".zen-dropdown-list__footer")).not.toBeNull();
544
657
  const selectedItem = document.body.querySelector(".zen-select-item[data-id='b12']");
545
658
  expect(selectedItem?.getAttribute("aria-selected")).toBe("true");
@@ -567,6 +680,8 @@ describe("Dropdown", () => {
567
680
  });
568
681
  await (0, react_1.waitFor)(() => {
569
682
  expect(mockedUsersLoader).toHaveBeenCalled();
683
+ }, { timeout: debounceTimeout });
684
+ await (0, react_1.waitFor)(() => {
570
685
  expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
571
686
  });
572
687
  expect(mockedOnSelect).toHaveBeenCalledTimes(1);
@@ -588,6 +703,8 @@ describe("Dropdown", () => {
588
703
  });
589
704
  await (0, react_1.waitFor)(() => {
590
705
  expect(mockedUsersLoader).toHaveBeenCalled();
706
+ }, { timeout: debounceTimeout });
707
+ await (0, react_1.waitFor)(() => {
591
708
  expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
592
709
  });
593
710
  const currentSelectedItem = document.body.querySelector(".zen-select-item[data-id='b4']");
@@ -600,11 +717,11 @@ describe("Dropdown", () => {
600
717
  react_1.fireEvent.click(document.body.querySelector(".zen-filter-button"));
601
718
  await (0, react_1.waitFor)(() => {
602
719
  expect(mockedUsersLoader).toHaveBeenCalled();
603
- });
720
+ }, { timeout: debounceTimeout });
604
721
  await (0, react_1.waitFor)(() => {
605
- expect(getByText("booadley@gmail.com").getAttribute("aria-selected")).toBeFalsy();
722
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
606
723
  });
607
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
724
+ expect(getByText("booadley@gmail.com").getAttribute("aria-selected")).toBeFalsy();
608
725
  expect(queryByText("Select all")).toBeNull();
609
726
  let applyButton = document.body.querySelector(".zen-dropdown-list__apply-button");
610
727
  expect(applyButton.classList.contains("zen-button--disabled")).toBeTruthy();
@@ -645,10 +762,12 @@ describe("Dropdown", () => {
645
762
  react_1.fireEvent.click(getByTitle("Open filter"));
646
763
  await (0, react_1.waitFor)(() => {
647
764
  expect(mockedEmptyLoader).toHaveBeenCalled();
648
- });
765
+ }, { timeout: debounceTimeout });
649
766
  (0, react_1.act)(() => rerender((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: [], onChange: mockedOnSelect, getData: mockedEmptyLoader, errorHandler: jest.fn() })));
767
+ await (0, react_1.waitFor)(() => {
768
+ expect(getByText("No data")).not.toBeNull();
769
+ });
650
770
  expect(document.body.querySelector(".zen-dropdown-list")).toBeNull();
651
- expect(getByText("No data")).not.toBeNull();
652
771
  });
653
772
  test("Test dropdown with options", async () => {
654
773
  const mockedOnSelect = jest.fn();
@@ -665,8 +784,10 @@ describe("Dropdown", () => {
665
784
  react_1.fireEvent.click(getByTitle("Custom title test"));
666
785
  await (0, react_1.waitFor)(() => {
667
786
  expect(mockedGroupLoader).toHaveBeenCalled();
787
+ }, { timeout: debounceTimeout });
788
+ await (0, react_1.waitFor)(() => {
789
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
668
790
  });
669
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
670
791
  expect(document.body.querySelector(".zen-dropdown-list")?.getAttribute("style")).toBe("min-width: 300px;");
671
792
  await (0, react_1.act)(() => react_1.fireEvent.keyDown(container.querySelector(".zen-dropdown-searchable-trigger"), { key: "Escape" }));
672
793
  expect(document.body.querySelector(".zen-dropdown-list")).toBeNull();
@@ -687,9 +808,11 @@ describe("Dropdown", () => {
687
808
  react_1.fireEvent.click(getByTitle("Custom title test"));
688
809
  await (0, react_1.waitFor)(() => {
689
810
  expect(mockedEmptyLoader).toHaveBeenCalled();
811
+ }, { timeout: debounceTimeout });
812
+ await (0, react_1.waitFor)(() => {
813
+ expect(document.body.querySelector(".zen-dropdown-list__container--empty")).not.toBeNull();
690
814
  });
691
815
  expect(document.body.querySelector(".zen-dropdown-list")).toBeNull();
692
- expect(document.body.querySelector(".zen-dropdown-list__container--empty")).not.toBeNull();
693
816
  await (0, react_1.waitFor)(() => {
694
817
  expect(document.body.querySelector(".zen-dropdown-list__container")?.getAttribute("style")).toBe("width: 300px;");
695
818
  });
@@ -702,8 +825,10 @@ describe("Dropdown", () => {
702
825
  react_1.fireEvent.keyDown(container.querySelector(".zen-dropdown-searchable-trigger__input-container"), { key: "Enter" });
703
826
  await (0, react_1.waitFor)(() => {
704
827
  expect(mockedGroupLoader).toHaveBeenCalled();
828
+ }, { timeout: debounceTimeout });
829
+ await (0, react_1.waitFor)(() => {
830
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
705
831
  });
706
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
707
832
  react_1.fireEvent.click(container.querySelector(".zen-dropdown-searchable-trigger__input"));
708
833
  expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
709
834
  react_1.fireEvent.keyDown(container.querySelector(".zen-dropdown-searchable-trigger"), { key: "Escape" });
@@ -715,13 +840,13 @@ describe("Dropdown", () => {
715
840
  });
716
841
  test("Test dropdown search", async () => {
717
842
  const mockedOnSelect = jest.fn();
718
- const { container, getByText, getByTitle, rerender } = await (0, react_1.act)(() => (0, react_1.render)((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: [], onChange: mockedOnSelect, getData: mockedGroupLoaderWithSearch, errorHandler: jest.fn() })));
843
+ const { container, getByTitle, rerender } = await (0, react_1.act)(() => (0, react_1.render)((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: [], onChange: mockedOnSelect, getData: mockedGroupLoaderWithSearch, errorHandler: jest.fn() })));
719
844
  expect(container.querySelector(".dropdownTestClass")).not.toBeNull();
720
845
  expect(document.body.querySelector(".zen-dropdown-list")).toBeNull();
721
846
  react_1.fireEvent.keyDown(container.querySelector(".zen-dropdown-searchable-trigger__input-container"), { key: "Enter" });
722
847
  await (0, react_1.waitFor)(() => {
723
848
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
724
- });
849
+ }, { timeout: debounceTimeout });
725
850
  const inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
726
851
  expect(inputField).not.toBeNull();
727
852
  (0, react_1.act)(() => {
@@ -729,18 +854,27 @@ describe("Dropdown", () => {
729
854
  });
730
855
  await (0, react_1.waitFor)(() => {
731
856
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
857
+ }, { timeout: debounceTimeout });
858
+ await (0, react_1.waitFor)(() => {
859
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
860
+ expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildA'] .zen-checkbox-list-with-action__label--action")).not.toBeNull();
732
861
  });
733
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
734
862
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildA']")).not.toBeNull();
735
863
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildD']")).not.toBeNull();
736
864
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildE']")).not.toBeNull();
737
865
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildB']")).toBeNull();
738
866
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildC']")).toBeNull();
739
867
  expect(document.body.querySelector(".zen-dropdown-list button[title='Select all']")).not.toBeNull();
740
- react_1.fireEvent.click(getByText("A element"));
741
- expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildC']")).not.toBeNull();
742
- expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildE']")).not.toBeNull();
743
- expect(container.querySelector(".zen-dropdown-searchable-trigger__input")?.getAttribute("value")).toBe("");
868
+ (0, react_1.act)(() => {
869
+ react_1.fireEvent.click(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildA'] .zen-checkbox-list-with-action__label--action"));
870
+ });
871
+ await (0, react_1.waitFor)(() => {
872
+ expect(container.querySelector(".zen-dropdown-searchable-trigger__input")?.getAttribute("value")).toBe("");
873
+ });
874
+ await (0, react_1.waitFor)(() => {
875
+ expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildC']")).not.toBeNull();
876
+ expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildE']")).not.toBeNull();
877
+ });
744
878
  react_1.fireEvent.click(getByTitle("Back"));
745
879
  (0, react_1.act)(() => rerender((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: ["ChildD"], onChange: mockedOnSelect, getData: mockedGroupLoaderWithSearch, errorHandler: jest.fn() })));
746
880
  });
@@ -762,7 +896,7 @@ describe("Dropdown", () => {
762
896
  });
763
897
  await (0, react_1.waitFor)(() => {
764
898
  expect(mockedGroupLoaderWithErrorData).toHaveBeenCalled();
765
- });
899
+ }, { timeout: debounceTimeout });
766
900
  const inputField = container.querySelector(".zen-dropdown-searchable-trigger__input");
767
901
  expect(inputField).not.toBeNull();
768
902
  (0, react_1.act)(() => {
@@ -770,8 +904,10 @@ describe("Dropdown", () => {
770
904
  });
771
905
  await (0, react_1.waitFor)(() => {
772
906
  expect(mockedGroupLoaderWithErrorData).toHaveBeenCalled();
907
+ }, { timeout: debounceTimeout });
908
+ await (0, react_1.waitFor)(() => {
909
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
773
910
  });
774
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
775
911
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildN']")).not.toBeNull();
776
912
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='ChildQ']")).not.toBeNull();
777
913
  (0, react_1.act)(() => {
@@ -796,8 +932,10 @@ describe("Dropdown", () => {
796
932
  react_1.fireEvent.click(getByTitle("Open filter"));
797
933
  await (0, react_1.waitFor)(() => {
798
934
  expect(mockedLoaderWithReject).toHaveBeenCalled();
935
+ }, { timeout: debounceTimeout });
936
+ await (0, react_1.waitFor)(() => {
937
+ expect(mockedErrorHandler).toHaveBeenCalledWith(new Error("Loading error"));
799
938
  });
800
- expect(mockedErrorHandler).toHaveBeenCalledWith(new Error("Loading error"));
801
939
  });
802
940
  test("Test dropdown without children in data item", async () => {
803
941
  const mockedOnSelect = jest.fn();
@@ -806,8 +944,10 @@ describe("Dropdown", () => {
806
944
  react_1.fireEvent.click(getByTitle("Open filter"));
807
945
  await (0, react_1.waitFor)(() => {
808
946
  expect(mockedUsersLoader).toHaveBeenCalled();
947
+ }, { timeout: debounceTimeout });
948
+ await (0, react_1.waitFor)(() => {
949
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
809
950
  });
810
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
811
951
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='b4']")).not.toBeNull();
812
952
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='b6']")).not.toBeNull();
813
953
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='b12']")).not.toBeNull();
@@ -824,6 +964,9 @@ describe("Dropdown", () => {
824
964
  });
825
965
  await (0, react_1.waitFor)(() => {
826
966
  expect(mockedUsersLoader).toHaveBeenCalled();
967
+ }, { timeout: debounceTimeout });
968
+ await (0, react_1.waitFor)(() => {
969
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
827
970
  });
828
971
  react_1.fireEvent.click(getByText("Deselect all"));
829
972
  expect(mockedOnSelect).toHaveBeenCalledWith([]);
@@ -835,8 +978,10 @@ describe("Dropdown", () => {
835
978
  react_1.fireEvent.click(getByTitle("Open filter"));
836
979
  await (0, react_1.waitFor)(() => {
837
980
  expect(mockedUsersLoaderWithDisable).toHaveBeenCalled();
981
+ }, { timeout: debounceTimeout });
982
+ await (0, react_1.waitFor)(() => {
983
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
838
984
  });
839
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
840
985
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='b4']")).not.toBeNull();
841
986
  expect(document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='b6']")).not.toBeNull();
842
987
  const disabledEl = document.body.querySelector(".zen-checkbox-list-with-action__action-item[data-item='b6'] input");
@@ -856,6 +1001,9 @@ describe("Dropdown", () => {
856
1001
  });
857
1002
  await (0, react_1.waitFor)(() => {
858
1003
  expect(mockedUsersLoaderWithDisable).toHaveBeenCalled();
1004
+ }, { timeout: debounceTimeout });
1005
+ await (0, react_1.waitFor)(() => {
1006
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
859
1007
  });
860
1008
  react_1.fireEvent.click(getByText("Deselect all"));
861
1009
  await (0, react_1.waitFor)(() => {
@@ -869,6 +1017,9 @@ describe("Dropdown", () => {
869
1017
  });
870
1018
  await (0, react_1.waitFor)(() => {
871
1019
  expect(mockedUsersLoaderWithDisable).toHaveBeenCalled();
1020
+ }, { timeout: debounceTimeout });
1021
+ await (0, react_1.waitFor)(() => {
1022
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
872
1023
  });
873
1024
  (0, react_1.act)(() => {
874
1025
  react_1.fireEvent.click(document.body.querySelector(".zen-dropdown-list__clear-button"));
@@ -892,6 +1043,9 @@ describe("Dropdown", () => {
892
1043
  });
893
1044
  await (0, react_1.waitFor)(() => {
894
1045
  expect(mockedGroupLoaderWithSearch).toHaveBeenCalled();
1046
+ }, { timeout: debounceTimeout });
1047
+ await (0, react_1.waitFor)(() => {
1048
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
895
1049
  });
896
1050
  (0, react_1.act)(() => {
897
1051
  react_1.fireEvent.click(document.body.querySelector(".zen-dropdown-list__action-button[title='Select all']"));
@@ -911,8 +1065,10 @@ describe("Dropdown", () => {
911
1065
  react_1.fireEvent.click(getByTitle("Open filter"));
912
1066
  await (0, react_1.waitFor)(() => {
913
1067
  expect(mockedUsersLoaderWithDisable).toHaveBeenCalled();
1068
+ }, { timeout: debounceTimeout });
1069
+ await (0, react_1.waitFor)(() => {
1070
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
914
1071
  });
915
- expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
916
1072
  let disabledItem = document.body.querySelector(".zen-select-item[data-id='b6']");
917
1073
  expect(disabledItem?.getAttribute("aria-disabled")).toBe("true");
918
1074
  let enabledItem = document.body.querySelector(".zen-select-item[data-id='b4']");
@@ -931,6 +1087,9 @@ describe("Dropdown", () => {
931
1087
  react_1.fireEvent.click(getByTitle("Open filter"));
932
1088
  await (0, react_1.waitFor)(() => {
933
1089
  expect(mockedUsersLoaderWithDisable2).toHaveBeenCalled();
1090
+ }, { timeout: debounceTimeout });
1091
+ await (0, react_1.waitFor)(() => {
1092
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
934
1093
  });
935
1094
  disabledItem = document.body.querySelector(".zen-select-item[data-id='b12']");
936
1095
  expect(disabledItem?.getAttribute("aria-disabled")).toBe("true");
@@ -948,6 +1107,9 @@ describe("Dropdown", () => {
948
1107
  react_1.fireEvent.click(getByTitle("Open filter"));
949
1108
  await (0, react_1.waitFor)(() => {
950
1109
  expect(mockedGroupLoader).toHaveBeenCalled();
1110
+ }, { timeout: debounceTimeout });
1111
+ await (0, react_1.waitFor)(() => {
1112
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
951
1113
  });
952
1114
  (0, react_1.act)(() => rerender((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: [], dataItems: groupsFilterTestData_1.groupsArr, onChange: mockedOnSelect, getData: mockedGroupLoader, errorHandler: jest.fn(), searchField: true })));
953
1115
  await expect(container).toBeAccessible();
@@ -982,6 +1144,9 @@ describe("Dropdown", () => {
982
1144
  react_1.fireEvent.click(document.body.querySelector(".zen-filter-button"));
983
1145
  await (0, react_1.waitFor)(() => {
984
1146
  expect(mockedGroupLoader).toHaveBeenCalled();
1147
+ }, { timeout: debounceTimeout });
1148
+ await (0, react_1.waitFor)(() => {
1149
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
985
1150
  });
986
1151
  (0, react_1.act)(() => rerender((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: [], dataItems: groupsFilterTestData_1.groupsArr, onChange: mockedOnSelect, getData: mockedGroupLoader, errorHandler: jest.fn(), searchField: false })));
987
1152
  await expect(container).toBeAccessible();
@@ -993,6 +1158,9 @@ describe("Dropdown", () => {
993
1158
  react_1.fireEvent.click(getByTitle("Open filter"));
994
1159
  await (0, react_1.waitFor)(() => {
995
1160
  expect(mockedGroupLoader).toHaveBeenCalled();
1161
+ }, { timeout: debounceTimeout });
1162
+ await (0, react_1.waitFor)(() => {
1163
+ expect(document.body.querySelector(".zen-dropdown-list")).not.toBeNull();
996
1164
  });
997
1165
  (0, react_1.act)(() => rerender((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { className: "dropdownTestClass", value: [], dataItems: groupsFilterTestData_1.groupsArr, onChange: mockedOnSelect, getData: mockedGroupLoader, errorHandler: jest.fn(), multiselect: false })));
998
1166
  await expect(container).toBeAccessible();