@zohodesk/components 1.3.2 → 1.3.3

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 (49) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +8 -0
  3. package/es/Button/__tests__/Button.spec.js +134 -1
  4. package/es/DateTime/__tests__/YearView.spec.js +1 -2
  5. package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +8 -1
  6. package/es/Provider/IdProvider.js +1 -1
  7. package/es/Select/__tests__/Select.spec.js +1130 -4
  8. package/es/Select/__tests__/__snapshots__/Select.spec.js.snap +9621 -1
  9. package/es/Stencils/Stencils.js +5 -12
  10. package/es/Stencils/Stencils.module.css +11 -7
  11. package/es/Stencils/__tests__/Stencils.spec.js +9 -1
  12. package/es/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +27 -11
  13. package/es/Stencils/props/defaultProps.js +2 -1
  14. package/es/Stencils/props/propTypes.js +3 -2
  15. package/es/Tab/Tab.js +2 -1
  16. package/es/Tab/TabWrapper.js +2 -1
  17. package/es/Tab/Tabs.js +10 -10
  18. package/es/Tab/__tests__/TabLayout.spec.js +34 -0
  19. package/es/Tab/__tests__/__snapshots__/TabLayout.spec.js.snap +341 -0
  20. package/es/Tab/props/propTypes.js +2 -2
  21. package/es/Tab/utils/tabConfigs.js +18 -0
  22. package/es/Tag/__tests__/Tag.spec.js +8 -1
  23. package/es/utils/Common.js +1 -1
  24. package/lib/Button/__tests__/Button.spec.js +140 -0
  25. package/lib/DateTime/__tests__/YearView.spec.js +1 -2
  26. package/lib/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +8 -0
  27. package/lib/Provider/IdProvider.js +1 -0
  28. package/lib/Select/__tests__/Select.spec.js +1364 -3
  29. package/lib/Select/__tests__/__snapshots__/Select.spec.js.snap +9621 -1
  30. package/lib/Stencils/Stencils.js +5 -12
  31. package/lib/Stencils/Stencils.module.css +11 -7
  32. package/lib/Stencils/__tests__/Stencils.spec.js +11 -3
  33. package/lib/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +27 -11
  34. package/lib/Stencils/props/defaultProps.js +2 -1
  35. package/lib/Stencils/props/propTypes.js +3 -2
  36. package/lib/Tab/Tab.js +3 -1
  37. package/lib/Tab/TabWrapper.js +3 -1
  38. package/lib/Tab/Tabs.js +11 -10
  39. package/lib/Tab/__tests__/TabLayout.spec.js +41 -0
  40. package/lib/Tab/__tests__/__snapshots__/TabLayout.spec.js.snap +341 -0
  41. package/lib/Tab/props/propTypes.js +2 -2
  42. package/lib/Tab/utils/tabConfigs.js +27 -0
  43. package/lib/Tag/__tests__/Tag.spec.js +10 -2
  44. package/lib/utils/Common.js +1 -1
  45. package/package.json +1 -1
  46. package/react-cli.config.js +2 -2
  47. package/result.json +1 -1
  48. package/es/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +0 -61
  49. package/lib/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +0 -61
@@ -1,20 +1,1381 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
3
5
  var _react = _interopRequireDefault(require("react"));
4
6
 
5
7
  var _react2 = require("@testing-library/react");
6
8
 
9
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
+
11
+ var _IdProvider = require("../../Provider/IdProvider");
12
+
7
13
  var _Select = _interopRequireDefault(require("../Select"));
8
14
 
15
+ require("@testing-library/jest-dom");
16
+
9
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
18
 
11
- describe('Select', function () {
12
- test('rendering the defult props', function () {
13
- var mockOnChange = jest.fn();
19
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
14
20
 
21
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
22
+
23
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
24
+
25
+ beforeEach(function () {
26
+ (0, _IdProvider.setGlobalId)(0);
27
+ });
28
+ afterEach(function () {
29
+ (0, _react2.cleanup)();
30
+ });
31
+ var selectInputRole = 'Menuitem';
32
+ var dropboxTestId = 'selectComponent_suggestions';
33
+ var listItemRole = 'option';
34
+ var options = [{
35
+ id: '1',
36
+ text: 'Option 1'
37
+ }, {
38
+ id: '2',
39
+ text: 'Option 2'
40
+ }, {
41
+ id: '3',
42
+ text: 'Option 3'
43
+ }];
44
+ var selectOptions = [{
45
+ id: '1',
46
+ text: 'Option 1'
47
+ }, {
48
+ id: '2',
49
+ text: 'Option 2'
50
+ }, {
51
+ id: '3',
52
+ text: 'Option 3'
53
+ }, {
54
+ id: '4',
55
+ text: 'Option 4'
56
+ }, {
57
+ id: '5',
58
+ text: 'Option 5'
59
+ }, {
60
+ id: '6',
61
+ text: 'Option 6'
62
+ }, {
63
+ id: '7',
64
+ text: 'Option 7'
65
+ }, {
66
+ id: '8',
67
+ text: 'Option 8'
68
+ }, {
69
+ id: '9',
70
+ text: 'Option 9'
71
+ }, {
72
+ id: '10',
73
+ text: 'Option 10'
74
+ }];
75
+ describe('Select -', function () {
76
+ test('Should render the Select component', function () {
15
77
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], null)),
78
+ getByRole = _render.getByRole,
16
79
  asFragment = _render.asFragment;
17
80
 
81
+ expect(getByRole(selectInputRole)).toBeInTheDocument();
82
+ expect(asFragment()).toMatchSnapshot();
83
+ });
84
+ test('Should render the placeholder when there is no default value', function () {
85
+ var placeHolder = 'Select Correct Option';
86
+
87
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
88
+ placeHolder: placeHolder,
89
+ isDefaultSelectValue: false,
90
+ options: options
91
+ })),
92
+ getByPlaceholderText = _render2.getByPlaceholderText,
93
+ asFragment = _render2.asFragment;
94
+
95
+ expect(getByPlaceholderText(placeHolder)).toBeInTheDocument();
96
+ expect(asFragment()).toMatchSnapshot();
97
+ });
98
+ test('Should render the default selected value', function () {
99
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
100
+ options: options
101
+ })),
102
+ getByRole = _render3.getByRole,
103
+ asFragment = _render3.asFragment;
104
+
105
+ expect(getByRole(selectInputRole)).toHaveValue('Option 1');
106
+ expect(asFragment()).toMatchSnapshot();
107
+ });
108
+ test('Should render the given selected value', function () {
109
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
110
+ options: options,
111
+ selectedValue: "Option 2"
112
+ })),
113
+ getByRole = _render4.getByRole,
114
+ asFragment = _render4.asFragment;
115
+
116
+ expect(getByRole(selectInputRole)).toHaveValue('Option 2');
117
+ expect(asFragment()).toMatchSnapshot();
118
+ });
119
+ test('Should open the dropdown, when click on the input', function () {
120
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], null)),
121
+ getByRole = _render5.getByRole,
122
+ getByTestId = _render5.getByTestId,
123
+ asFragment = _render5.asFragment;
124
+
125
+ _userEvent["default"].click(getByRole(selectInputRole));
126
+
127
+ expect(getByTestId(dropboxTestId)).toBeInTheDocument();
128
+ expect(asFragment()).toMatchSnapshot();
129
+ });
130
+ test('Should open the dropdown, when press down arrow on the input', function () {
131
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
132
+ options: options
133
+ })),
134
+ getByRole = _render6.getByRole,
135
+ getByTestId = _render6.getByTestId;
136
+
137
+ _react2.fireEvent.keyDown(getByRole(selectInputRole), {
138
+ key: 'ArrowDown',
139
+ keyCode: 40,
140
+ code: 'ArrowDown'
141
+ });
142
+
143
+ expect(getByTestId(dropboxTestId)).toBeInTheDocument();
144
+ });
145
+ test('Should open the dropdown, when isPopupOpenOnEnter is true. If press enter key on the input', function () {
146
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
147
+ isPopupOpenOnEnter: true,
148
+ options: options
149
+ })),
150
+ getByRole = _render7.getByRole,
151
+ getByTestId = _render7.getByTestId;
152
+
153
+ _react2.fireEvent.keyDown(getByRole(selectInputRole), {
154
+ key: 'Enter',
155
+ keyCode: 13,
156
+ code: 'Enter'
157
+ });
158
+
159
+ expect(getByTestId(dropboxTestId)).toBeInTheDocument();
160
+ });
161
+ test('Should open the dropdown, when isPopupOpenOnEnter is true. If press tab key on the input', function () {
162
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
163
+ isPopupOpenOnEnter: true,
164
+ options: options
165
+ })),
166
+ getByRole = _render8.getByRole,
167
+ getByTestId = _render8.getByTestId;
168
+
169
+ _react2.fireEvent.keyDown(getByRole(selectInputRole), {
170
+ key: 'Tab',
171
+ keyCode: 9,
172
+ code: 'Tab'
173
+ });
174
+
175
+ expect(getByTestId(dropboxTestId)).toBeInTheDocument();
176
+ });
177
+ test('Should show the empty message when open the dropdown with no options', function () {
178
+ var emptyMessage = 'No Options Available';
179
+
180
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
181
+ emptyMessage: emptyMessage
182
+ })),
183
+ getByRole = _render9.getByRole,
184
+ queryByRole = _render9.queryByRole,
185
+ getByText = _render9.getByText,
186
+ asFragment = _render9.asFragment;
187
+
188
+ _userEvent["default"].click(getByRole(selectInputRole));
189
+
190
+ expect(queryByRole(listItemRole)).not.toBeInTheDocument();
191
+ expect(getByText(emptyMessage)).toBeInTheDocument();
192
+ expect(asFragment()).toMatchSnapshot();
193
+ });
194
+ test('Should render given the options', function () {
195
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
196
+ options: options
197
+ })),
198
+ getByRole = _render10.getByRole,
199
+ getAllByRole = _render10.getAllByRole,
200
+ asFragment = _render10.asFragment;
201
+
202
+ _userEvent["default"].click(getByRole(selectInputRole));
203
+
204
+ expect(getAllByRole(listItemRole)).toHaveLength(3);
205
+ expect(getAllByRole(listItemRole)[0]).toHaveTextContent('Option 1');
206
+ expect(getAllByRole(listItemRole)[1]).toHaveTextContent('Option 2');
207
+ expect(getAllByRole(listItemRole)[2]).toHaveTextContent('Option 3');
208
+ expect(asFragment()).toMatchSnapshot();
209
+ });
210
+ test('Should trigger the onChange event when select an option', function () {
211
+ var mockOnChange = jest.fn();
212
+
213
+ var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
214
+ options: options,
215
+ onChange: mockOnChange
216
+ })),
217
+ getByRole = _render11.getByRole,
218
+ getAllByRole = _render11.getAllByRole;
219
+
220
+ _userEvent["default"].click(getByRole(selectInputRole));
221
+
222
+ _userEvent["default"].click(getAllByRole(listItemRole)[1]);
223
+
224
+ expect(mockOnChange).toHaveBeenCalledWith('2', {
225
+ groupId: '',
226
+ id: '2',
227
+ text: 'Option 2'
228
+ });
229
+ });
230
+ test('Should update the value when select the option', function () {
231
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
232
+ options: options
233
+ })),
234
+ getByRole = _render12.getByRole,
235
+ getAllByRole = _render12.getAllByRole,
236
+ rerender = _render12.rerender,
237
+ asFragment = _render12.asFragment;
238
+
239
+ var inputElement = getByRole(selectInputRole);
240
+ expect(inputElement).toHaveValue('Option 1');
241
+
242
+ _userEvent["default"].click(inputElement);
243
+
244
+ expect(asFragment()).toMatchSnapshot();
245
+
246
+ _userEvent["default"].click(getAllByRole(listItemRole)[1]);
247
+
248
+ rerender( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
249
+ options: options,
250
+ selectedValue: "Option 2"
251
+ }));
252
+ expect(asFragment()).toMatchSnapshot();
253
+ expect(inputElement).toHaveValue('Option 2');
254
+ });
255
+ test('Should focus the search input, when open the dropdown', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
256
+ var _render13, getByRole, getByTestId;
257
+
258
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
259
+ while (1) {
260
+ switch (_context.prev = _context.next) {
261
+ case 0:
262
+ _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
263
+ needSearch: true,
264
+ options: options
265
+ })), getByRole = _render13.getByRole, getByTestId = _render13.getByTestId;
266
+
267
+ _userEvent["default"].click(getByRole(selectInputRole));
268
+
269
+ _context.next = 4;
270
+ return (0, _react2.waitFor)(function () {
271
+ expect((0, _react2.within)(getByTestId(dropboxTestId)).getByRole('textbox')).toHaveFocus();
272
+ });
273
+
274
+ case 4:
275
+ case "end":
276
+ return _context.stop();
277
+ }
278
+ }
279
+ }, _callee);
280
+ })));
281
+ test('Should render the only options matching search value', function () {
282
+ var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
283
+ needSearch: true,
284
+ options: options
285
+ })),
286
+ getByRole = _render14.getByRole,
287
+ getAllByRole = _render14.getAllByRole,
288
+ asFragment = _render14.asFragment,
289
+ getByTestId = _render14.getByTestId;
290
+
291
+ _userEvent["default"].click(getByRole(selectInputRole));
292
+
293
+ _userEvent["default"].type((0, _react2.within)(getByTestId(dropboxTestId)).getByRole('textbox'), '2');
294
+
295
+ expect(getAllByRole(listItemRole)).toHaveLength(1);
296
+ expect(asFragment()).toMatchSnapshot();
297
+ });
298
+ test('Should trigger given onSearch, when type on the search input', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
299
+ var mockOnSearch, _render15, getByRole, getByTestId;
300
+
301
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
302
+ while (1) {
303
+ switch (_context2.prev = _context2.next) {
304
+ case 0:
305
+ mockOnSearch = jest.fn();
306
+ _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
307
+ needSearch: true,
308
+ options: options,
309
+ onSearch: mockOnSearch
310
+ })), getByRole = _render15.getByRole, getByTestId = _render15.getByTestId;
311
+
312
+ _userEvent["default"].click(getByRole(selectInputRole));
313
+
314
+ _userEvent["default"].type((0, _react2.within)(getByTestId(dropboxTestId)).getByRole('textbox'), '2');
315
+
316
+ _context2.next = 6;
317
+ return (0, _react2.waitFor)(function () {
318
+ expect(mockOnSearch).toHaveBeenCalledWith('2');
319
+ });
320
+
321
+ case 6:
322
+ case "end":
323
+ return _context2.stop();
324
+ }
325
+ }
326
+ }, _callee2);
327
+ })));
328
+ test('Should render all the options when search value is cleared', function () {
329
+ var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
330
+ needSearch: true,
331
+ options: options
332
+ })),
333
+ getByRole = _render16.getByRole,
334
+ getAllByRole = _render16.getAllByRole,
335
+ asFragment = _render16.asFragment,
336
+ getByTestId = _render16.getByTestId;
337
+
338
+ _userEvent["default"].click(getByRole(selectInputRole));
339
+
340
+ var searchInput = (0, _react2.within)(getByTestId(dropboxTestId)).getByRole('textbox');
341
+
342
+ _userEvent["default"].type(searchInput, 'option 2');
343
+
344
+ expect(getAllByRole(listItemRole)).toHaveLength(1);
345
+
346
+ _userEvent["default"].click((0, _react2.within)(getByTestId('CardHeader')).getByRole('button'));
347
+
348
+ expect(getAllByRole(listItemRole)).toHaveLength(3);
349
+ expect(searchInput).toHaveValue('');
350
+ expect(searchInput).toHaveFocus();
351
+ expect(asFragment()).toMatchSnapshot();
352
+ });
353
+ test('Should not open the dropdown when disabled', function () {
354
+ var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
355
+ options: options,
356
+ isDisabled: true
357
+ })),
358
+ getByRole = _render17.getByRole,
359
+ queryByTestId = _render17.queryByTestId,
360
+ asFragment = _render17.asFragment;
361
+
362
+ _userEvent["default"].click(getByRole(selectInputRole));
363
+
364
+ expect(queryByTestId(dropboxTestId)).not.toBeInTheDocument();
365
+ expect(asFragment()).toMatchSnapshot();
366
+ });
367
+ test('Should not open the dropdown when readonly', function () {
368
+ var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
369
+ options: options,
370
+ isReadOnly: true
371
+ })),
372
+ getByRole = _render18.getByRole,
373
+ queryByTestId = _render18.queryByTestId,
374
+ asFragment = _render18.asFragment;
375
+
376
+ _userEvent["default"].click(getByRole(selectInputRole));
377
+
378
+ expect(queryByTestId(dropboxTestId)).not.toBeInTheDocument();
379
+ expect(asFragment()).toMatchSnapshot();
380
+ });
381
+ test('Should close the dropdown when clicking outside', function () {
382
+ var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
383
+ options: options
384
+ })),
385
+ getByRole = _render19.getByRole,
386
+ queryByTestId = _render19.queryByTestId,
387
+ asFragment = _render19.asFragment;
388
+
389
+ _userEvent["default"].click(getByRole(selectInputRole));
390
+
391
+ expect(queryByTestId(dropboxTestId)).toBeInTheDocument();
392
+
393
+ _userEvent["default"].click(document.body);
394
+
395
+ expect(queryByTestId(dropboxTestId)).not.toBeInTheDocument();
396
+ expect(asFragment()).toMatchSnapshot();
397
+ });
398
+ test('Should show the custom empty state using getCustomEmptyState prop, when there is no matching options search value', function () {
399
+ var emptyMessage = 'Custom Empty State';
400
+ var getCustomEmptyState = jest.fn(function () {
401
+ return /*#__PURE__*/_react["default"].createElement("div", null, emptyMessage);
402
+ });
403
+
404
+ var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
405
+ needSearch: true,
406
+ options: options,
407
+ getCustomEmptyState: getCustomEmptyState
408
+ })),
409
+ getByText = _render20.getByText,
410
+ getByRole = _render20.getByRole,
411
+ asFragment = _render20.asFragment,
412
+ getByTestId = _render20.getByTestId;
413
+
414
+ _userEvent["default"].click(getByRole(selectInputRole));
415
+
416
+ _userEvent["default"].type((0, _react2.within)(getByTestId(dropboxTestId)).getByRole('textbox'), '5');
417
+
418
+ expect(getByText(emptyMessage)).toBeInTheDocument();
419
+ expect(asFragment()).toMatchSnapshot();
420
+ });
421
+ test('Should call the onKeyDown function, when press any key in the input element', function () {
422
+ var mockKeyDown = jest.fn();
423
+
424
+ var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
425
+ onKeyDown: mockKeyDown
426
+ })),
427
+ getByRole = _render21.getByRole;
428
+
429
+ _react2.fireEvent.keyDown(getByRole(selectInputRole), {
430
+ key: 'a',
431
+ code: 'KeyA'
432
+ });
433
+
434
+ expect(mockKeyDown).toHaveBeenCalled();
435
+ });
436
+ test('Should highlight the next list-items, when arrow keys pressed', function () {
437
+ var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
438
+ options: options
439
+ })),
440
+ getByRole = _render22.getByRole,
441
+ getAllByRole = _render22.getAllByRole,
442
+ asFragment = _render22.asFragment;
443
+
444
+ _userEvent["default"].click(getByRole(selectInputRole));
445
+
446
+ var listItems = getAllByRole(listItemRole);
447
+ expect(listItems[0]).toHaveAttribute("data-a11y-list-active", "true");
448
+
449
+ _userEvent["default"].keyboard('{arrowdown}');
450
+
451
+ expect(listItems[0]).toHaveAttribute("data-a11y-list-active", "false");
452
+ expect(listItems[1]).toHaveAttribute("data-a11y-list-active", "true");
453
+
454
+ _userEvent["default"].keyboard('{arrowdown}');
455
+
456
+ expect(listItems[1]).toHaveAttribute("data-a11y-list-active", "false");
457
+ expect(listItems[2]).toHaveAttribute("data-a11y-list-active", "true");
458
+
459
+ _userEvent["default"].keyboard('{arrowdown}');
460
+
461
+ expect(listItems[2]).toHaveAttribute("data-a11y-list-active", "true");
462
+
463
+ _userEvent["default"].keyboard('{arrowup}');
464
+
465
+ expect(listItems[2]).toHaveAttribute("data-a11y-list-active", "false");
466
+ expect(listItems[1]).toHaveAttribute("data-a11y-list-active", "true");
467
+ expect(asFragment()).toMatchSnapshot();
468
+
469
+ _userEvent["default"].keyboard('{arrowup}');
470
+
471
+ expect(listItems[1]).toHaveAttribute("data-a11y-list-active", "false");
472
+ expect(listItems[0]).toHaveAttribute("data-a11y-list-active", "true");
473
+
474
+ _userEvent["default"].keyboard('{arrowup}');
475
+
476
+ expect(listItems[0]).toHaveAttribute("data-a11y-list-active", "true");
477
+ });
478
+ test('Should update the value, when select the option using keyboard', function () {
479
+ var mockOnChange = jest.fn();
480
+
481
+ var _render23 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
482
+ options: options,
483
+ onChange: mockOnChange
484
+ })),
485
+ getByRole = _render23.getByRole,
486
+ asFragment = _render23.asFragment;
487
+
488
+ _userEvent["default"].click(getByRole(selectInputRole));
489
+
490
+ _userEvent["default"].keyboard('{arrowdown}');
491
+
492
+ _userEvent["default"].keyboard('{enter}');
493
+
494
+ expect(mockOnChange).toHaveBeenCalledWith('2', {
495
+ groupId: '',
496
+ id: '2',
497
+ text: 'Option 2'
498
+ });
499
+ expect(asFragment()).toMatchSnapshot();
500
+ });
501
+ test('Should close the dropdown and focus the select input, when press escape key', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
502
+ var _render24, getByRole, getByTestId, queryByTestId;
503
+
504
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
505
+ while (1) {
506
+ switch (_context3.prev = _context3.next) {
507
+ case 0:
508
+ _render24 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
509
+ needSearch: true,
510
+ options: options
511
+ })), getByRole = _render24.getByRole, getByTestId = _render24.getByTestId, queryByTestId = _render24.queryByTestId;
512
+
513
+ _userEvent["default"].click(getByRole(selectInputRole));
514
+
515
+ expect(queryByTestId(dropboxTestId)).toBeInTheDocument();
516
+ _context3.next = 5;
517
+ return (0, _react2.waitFor)(function () {
518
+ expect((0, _react2.within)(getByTestId(dropboxTestId)).getByRole('textbox')).toHaveFocus();
519
+ });
520
+
521
+ case 5:
522
+ _userEvent["default"].keyboard('{escape}');
523
+
524
+ _context3.next = 8;
525
+ return (0, _react2.waitFor)(function () {
526
+ expect(queryByTestId(dropboxTestId)).not.toBeInTheDocument();
527
+ expect(getByRole(selectInputRole)).toHaveFocus();
528
+ });
529
+
530
+ case 8:
531
+ case "end":
532
+ return _context3.stop();
533
+ }
534
+ }
535
+ }, _callee3);
536
+ })));
537
+ test('Should close the dropdown and trigger the onchange, when press tab key', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
538
+ var mockOnChange, _render25, getByRole, getByTestId, queryByTestId;
539
+
540
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
541
+ while (1) {
542
+ switch (_context4.prev = _context4.next) {
543
+ case 0:
544
+ mockOnChange = jest.fn();
545
+ _render25 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
546
+ needSearch: true,
547
+ options: options,
548
+ onChange: mockOnChange
549
+ })), getByRole = _render25.getByRole, getByTestId = _render25.getByTestId, queryByTestId = _render25.queryByTestId;
550
+
551
+ _userEvent["default"].click(getByRole(selectInputRole));
552
+
553
+ _context4.next = 5;
554
+ return (0, _react2.waitFor)(function () {
555
+ expect((0, _react2.within)(getByTestId(dropboxTestId)).getByRole('textbox')).toHaveFocus();
556
+ });
557
+
558
+ case 5:
559
+ _react2.fireEvent.keyDown((0, _react2.within)(getByTestId(dropboxTestId)).getByRole('textbox'), {
560
+ key: 'ArrowDown',
561
+ code: 'ArrowDown',
562
+ keyCode: 40
563
+ });
564
+
565
+ _react2.fireEvent.keyDown((0, _react2.within)(getByTestId(dropboxTestId)).getByRole('textbox'), {
566
+ key: 'Tab',
567
+ code: 'Tab',
568
+ keyCode: 9
569
+ });
570
+
571
+ _context4.next = 9;
572
+ return (0, _react2.waitFor)(function () {
573
+ expect(mockOnChange).toHaveBeenCalledWith('2', {
574
+ groupId: '',
575
+ id: '2',
576
+ text: 'Option 2'
577
+ });
578
+ expect(queryByTestId(dropboxTestId)).not.toBeInTheDocument();
579
+ expect(getByRole(selectInputRole)).toHaveFocus();
580
+ });
581
+
582
+ case 9:
583
+ case "end":
584
+ return _context4.stop();
585
+ }
586
+ }
587
+ }, _callee4);
588
+ })));
589
+ test('Should trigger getNextOptions, when scroll to the end of the dropbox list and isNextOptions is true', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
590
+ var mockGetNextOptions, _render26, getByRole, getByTestId, asFragment, cardContent;
591
+
592
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
593
+ while (1) {
594
+ switch (_context5.prev = _context5.next) {
595
+ case 0:
596
+ mockGetNextOptions = jest.fn(function () {
597
+ return new Promise(function (resolve) {
598
+ setTimeout(function () {
599
+ resolve();
600
+ }, 2000);
601
+ });
602
+ });
603
+ _render26 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
604
+ options: selectOptions,
605
+ isNextOptions: true,
606
+ getNextOptions: mockGetNextOptions
607
+ })), getByRole = _render26.getByRole, getByTestId = _render26.getByTestId, asFragment = _render26.asFragment;
608
+
609
+ _userEvent["default"].click(getByRole(selectInputRole));
610
+
611
+ cardContent = (0, _react2.within)(getByTestId(dropboxTestId)).getByTestId('CardContent');
612
+ Object.defineProperty(cardContent, 'scrollHeight', {
613
+ value: 1000,
614
+ writable: true
615
+ });
616
+ Object.defineProperty(cardContent, 'clientHeight', {
617
+ value: 800,
618
+ writable: true
619
+ });
620
+ Object.defineProperty(cardContent, 'offsetHeight', {
621
+ value: 800,
622
+ writable: true
623
+ });
624
+
625
+ _react2.fireEvent.scroll(cardContent, {
626
+ target: {
627
+ scrollTop: 201
628
+ }
629
+ });
630
+
631
+ _context5.next = 10;
632
+ return (0, _react2.waitFor)(function () {
633
+ var loader = (0, _react2.within)(getByTestId(dropboxTestId)).queryByTestId('loader');
634
+ expect(loader).toBeInTheDocument();
635
+ expect(asFragment()).toMatchSnapshot();
636
+ expect(mockGetNextOptions).toHaveBeenCalledWith('');
637
+ });
638
+
639
+ case 10:
640
+ _context5.next = 12;
641
+ return (0, _react2.waitFor)(function () {
642
+ var loader = (0, _react2.within)(getByTestId(dropboxTestId)).queryByTestId('loader');
643
+ expect(loader).not.toBeInTheDocument();
644
+ }, {
645
+ timeout: 2500
646
+ });
647
+
648
+ case 12:
649
+ case "end":
650
+ return _context5.stop();
651
+ }
652
+ }
653
+ }, _callee5);
654
+ })));
655
+ test('Should trigger getNextOptions, when search with needLocalSearch is false', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
656
+ var mockGetNextOptions, _render27, getByRole, getByTestId, asFragment, loader;
657
+
658
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
659
+ while (1) {
660
+ switch (_context6.prev = _context6.next) {
661
+ case 0:
662
+ mockGetNextOptions = jest.fn(function () {
663
+ return new Promise(function (resolve, reject) {
664
+ setTimeout(function () {
665
+ reject();
666
+ }, 2000);
667
+ });
668
+ });
669
+ _render27 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
670
+ needSearch: true,
671
+ needLocalSearch: false,
672
+ options: options,
673
+ isNextOptions: true,
674
+ getNextOptions: mockGetNextOptions
675
+ })), getByRole = _render27.getByRole, getByTestId = _render27.getByTestId, asFragment = _render27.asFragment;
676
+
677
+ _userEvent["default"].click(getByRole(selectInputRole));
678
+
679
+ _userEvent["default"].type((0, _react2.within)(getByTestId(dropboxTestId)).getByRole('textbox'), 'a');
680
+
681
+ loader = (0, _react2.within)(getByTestId(dropboxTestId)).queryByTestId('loader');
682
+ _context6.next = 7;
683
+ return (0, _react2.waitFor)(function () {
684
+ expect(loader).toBeInTheDocument();
685
+ expect(asFragment()).toMatchSnapshot();
686
+ expect(mockGetNextOptions).toHaveBeenCalledWith('');
687
+ });
688
+
689
+ case 7:
690
+ _context6.next = 9;
691
+ return (0, _react2.waitFor)(function () {
692
+ expect(loader).not.toBeInTheDocument();
693
+ }, {
694
+ timeout: 2500
695
+ });
696
+
697
+ case 9:
698
+ case "end":
699
+ return _context6.stop();
700
+ }
701
+ }
702
+ }, _callee6);
703
+ })));
704
+ test('Should trigger onChange, when type on select input with autoSelectOnType is true', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
705
+ var mockOnChange, optionsList, _render28, getByRole;
706
+
707
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
708
+ while (1) {
709
+ switch (_context7.prev = _context7.next) {
710
+ case 0:
711
+ mockOnChange = jest.fn();
712
+ optionsList = [{
713
+ id: '1',
714
+ text: 'Madurai'
715
+ }, {
716
+ id: '2',
717
+ text: 'Chennai'
718
+ }, {
719
+ id: '3',
720
+ text: 'Coimbatore'
721
+ }, {
722
+ id: '4',
723
+ text: 'Trichy'
724
+ }];
725
+ _render28 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
726
+ options: optionsList,
727
+ autoSelectOnType: true,
728
+ onChange: mockOnChange
729
+ })), getByRole = _render28.getByRole;
730
+
731
+ _react2.fireEvent.keyPress(getByRole(selectInputRole), {
732
+ key: 'c',
733
+ code: 'KeyC',
734
+ keyCode: 67,
735
+ charCode: 67
736
+ });
737
+
738
+ _context7.next = 6;
739
+ return (0, _react2.waitFor)(function () {
740
+ expect(mockOnChange).toHaveBeenCalledWith('2', {
741
+ groupId: '',
742
+ id: '2',
743
+ text: 'Chennai'
744
+ });
745
+ });
746
+
747
+ case 6:
748
+ _react2.fireEvent.keyPress(getByRole(selectInputRole), {
749
+ key: 'c',
750
+ code: 'KeyC',
751
+ keyCode: 67,
752
+ charCode: 67
753
+ });
754
+
755
+ _context7.next = 9;
756
+ return (0, _react2.waitFor)(function () {
757
+ expect(mockOnChange).toHaveBeenCalledWith('3', {
758
+ groupId: '',
759
+ id: '3',
760
+ text: 'Coimbatore'
761
+ });
762
+ });
763
+
764
+ case 9:
765
+ _react2.fireEvent.keyPress(getByRole(selectInputRole), {
766
+ key: 'c',
767
+ code: 'KeyC',
768
+ keyCode: 67,
769
+ charCode: 67
770
+ });
771
+
772
+ _context7.next = 12;
773
+ return (0, _react2.waitFor)(function () {
774
+ expect(mockOnChange).toHaveBeenCalledWith('2', {
775
+ groupId: '',
776
+ id: '2',
777
+ text: 'Chennai'
778
+ });
779
+ });
780
+
781
+ case 12:
782
+ case "end":
783
+ return _context7.stop();
784
+ }
785
+ }
786
+ }, _callee7);
787
+ })));
788
+ test('Should trigger onAddNewOption, when click on the custom search empty state button', function () {
789
+ var addMessage = 'Add New Option';
790
+ var getCustomEmptyState = jest.fn(function (_ref8) {
791
+ var searchString = _ref8.searchString,
792
+ onAddNewOption = _ref8.onAddNewOption;
793
+ return /*#__PURE__*/_react["default"].createElement("button", {
794
+ onClick: onAddNewOption
795
+ }, addMessage);
796
+ });
797
+ var mockOnAddNewOption = jest.fn();
798
+
799
+ var _render29 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
800
+ needSearch: true,
801
+ options: options,
802
+ onAddNewOption: mockOnAddNewOption,
803
+ getCustomEmptyState: getCustomEmptyState
804
+ })),
805
+ getByRole = _render29.getByRole,
806
+ getByTestId = _render29.getByTestId,
807
+ asFragment = _render29.asFragment;
808
+
809
+ _userEvent["default"].click(getByRole(selectInputRole));
810
+
811
+ _userEvent["default"].type((0, _react2.within)(getByTestId(dropboxTestId)).getByRole('textbox'), '5');
812
+
813
+ expect(getCustomEmptyState).toHaveBeenCalledWith({
814
+ searchString: '5',
815
+ onAddNewOption: expect.any(Function)
816
+ });
817
+ expect(getByRole('button', {
818
+ name: addMessage
819
+ })).toBeInTheDocument();
820
+ expect(asFragment()).toMatchSnapshot();
821
+
822
+ _userEvent["default"].click(getByRole('button', {
823
+ name: addMessage
824
+ }));
825
+
826
+ expect(mockOnAddNewOption).toHaveBeenCalledWith('5');
827
+ }); // Yellow coverage
828
+
829
+ test('Should trigger the onDropBoxOpen, when open the select', function () {
830
+ var mockOnDropBoxOpen = jest.fn();
831
+
832
+ var _render30 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
833
+ options: options,
834
+ onDropBoxOpen: mockOnDropBoxOpen
835
+ })),
836
+ getByRole = _render30.getByRole;
837
+
838
+ _userEvent["default"].click(getByRole(selectInputRole));
839
+
840
+ expect(mockOnDropBoxOpen).toHaveBeenCalledWith('');
841
+ });
842
+ test('Should trigger the onDropBoxClose, when close the select', function () {
843
+ var mockOnDropBoxClose = jest.fn();
844
+
845
+ var _render31 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
846
+ options: options,
847
+ onDropBoxClose: mockOnDropBoxClose
848
+ })),
849
+ getByRole = _render31.getByRole;
850
+
851
+ _userEvent["default"].click(getByRole(selectInputRole));
852
+
853
+ _userEvent["default"].click(document.body);
854
+
855
+ expect(mockOnDropBoxClose).toHaveBeenCalledWith();
856
+ });
857
+ test('Should trigger the onSearch with empty string, when close the select and isSearchClearOnClose is true', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
858
+ var mockOnSearch, _render32, getByRole, getByTestId;
859
+
860
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
861
+ while (1) {
862
+ switch (_context8.prev = _context8.next) {
863
+ case 0:
864
+ mockOnSearch = jest.fn();
865
+ _render32 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
866
+ needSearch: true,
867
+ isSearchClearOnClose: true,
868
+ options: options,
869
+ onSearch: mockOnSearch
870
+ })), getByRole = _render32.getByRole, getByTestId = _render32.getByTestId;
871
+
872
+ _userEvent["default"].click(getByRole(selectInputRole));
873
+
874
+ _userEvent["default"].type((0, _react2.within)(getByTestId(dropboxTestId)).getByRole('textbox'), '2');
875
+
876
+ _context8.next = 6;
877
+ return (0, _react2.waitFor)(function () {
878
+ expect(mockOnSearch).toHaveBeenCalledWith('2');
879
+ });
880
+
881
+ case 6:
882
+ _userEvent["default"].click(document.body);
883
+
884
+ _context8.next = 9;
885
+ return (0, _react2.waitFor)(function () {
886
+ expect(mockOnSearch).toHaveBeenCalledWith('');
887
+ });
888
+
889
+ case 9:
890
+ case "end":
891
+ return _context8.stop();
892
+ }
893
+ }
894
+ }, _callee8);
895
+ })));
896
+ test('Should trigger the onSearch with search string, when close the select and isSearchClearOnClose is false', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
897
+ var mockOnSearch, _render33, getByRole, getByTestId;
898
+
899
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
900
+ while (1) {
901
+ switch (_context9.prev = _context9.next) {
902
+ case 0:
903
+ mockOnSearch = jest.fn();
904
+ _render33 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
905
+ needSearch: true,
906
+ isSearchClearOnClose: false,
907
+ options: options,
908
+ onSearch: mockOnSearch
909
+ })), getByRole = _render33.getByRole, getByTestId = _render33.getByTestId;
910
+
911
+ _userEvent["default"].click(getByRole(selectInputRole));
912
+
913
+ _userEvent["default"].type((0, _react2.within)(getByTestId(dropboxTestId)).getByRole('textbox'), '2');
914
+
915
+ _context9.next = 6;
916
+ return (0, _react2.waitFor)(function () {
917
+ expect(mockOnSearch).toHaveBeenCalledWith('2');
918
+ });
919
+
920
+ case 6:
921
+ _userEvent["default"].click(document.body);
922
+
923
+ _context9.next = 9;
924
+ return (0, _react2.waitFor)(function () {
925
+ expect(mockOnSearch).toHaveBeenCalledWith('2');
926
+ });
927
+
928
+ case 9:
929
+ case "end":
930
+ return _context9.stop();
931
+ }
932
+ }
933
+ }, _callee9);
934
+ })));
935
+ test('Should trigger the getPopupHandlers with popup handlers, when select is mounted', function () {
936
+ var mockGetPopupHandlers = jest.fn();
937
+ (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
938
+ options: options,
939
+ getPopupHandlers: mockGetPopupHandlers
940
+ }));
941
+ expect(mockGetPopupHandlers).toHaveBeenCalledWith({
942
+ removeClose: expect.any(Function),
943
+ openPopup: expect.any(Function),
944
+ closePopup: expect.any(Function),
945
+ togglePopup: expect.any(Function)
946
+ });
947
+ });
948
+ test('Should trigger the getPopupHandlers with null, when select is unmounted', function () {
949
+ var mockGetPopupHandlers = jest.fn();
950
+
951
+ var _render34 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
952
+ options: options,
953
+ getPopupHandlers: mockGetPopupHandlers
954
+ })),
955
+ unmount = _render34.unmount;
956
+
957
+ unmount();
958
+ expect(mockGetPopupHandlers).toHaveBeenCalledWith({
959
+ removeClose: null,
960
+ openPopup: null,
961
+ closePopup: null,
962
+ togglePopup: null
963
+ });
964
+ });
965
+ test('Should trigger the togglePopup with given defaultDropBoxPosition', function () {
966
+ var _render35 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
967
+ options: options,
968
+ defaultDropBoxPosition: "topCenter"
969
+ })),
970
+ getByRole = _render35.getByRole,
971
+ getByTestId = _render35.getByTestId;
972
+
973
+ _userEvent["default"].click(getByRole(selectInputRole));
974
+
975
+ expect(getByTestId(dropboxTestId)).toHaveAttribute('data-position', 'topMid');
976
+ });
977
+ test('Should trigger the onFocus, when open the select', function () {
978
+ var mockOnFocus = jest.fn();
979
+
980
+ var _render36 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
981
+ options: options,
982
+ onFocus: mockOnFocus
983
+ })),
984
+ getByRole = _render36.getByRole;
985
+
986
+ _userEvent["default"].click(getByRole(selectInputRole));
987
+
988
+ expect(mockOnFocus).toHaveBeenCalledWith(expect.any(Object));
989
+ });
990
+ test('Should trigger the getPopupHandlers with popup handlers, when select is mounted', function () {
991
+ var mockGetRef = jest.fn();
992
+
993
+ var _render37 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
994
+ options: options,
995
+ getRef: mockGetRef
996
+ })),
997
+ getByRole = _render37.getByRole;
998
+
999
+ expect(mockGetRef).toHaveBeenCalledWith(getByRole(selectInputRole));
1000
+ });
1001
+ test('Should not open the dropdown, when press down arrow on the input with needSelectDownIcon as false', function () {
1002
+ var _render38 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1003
+ options: options,
1004
+ needSelectDownIcon: false
1005
+ })),
1006
+ getByRole = _render38.getByRole,
1007
+ queryByTestId = _render38.queryByTestId;
1008
+
1009
+ _react2.fireEvent.keyDown(getByRole(selectInputRole), {
1010
+ key: 'ArrowDown',
1011
+ keyCode: 40,
1012
+ code: 'ArrowDown'
1013
+ });
1014
+
1015
+ expect(queryByTestId(dropboxTestId)).not.toBeInTheDocument();
1016
+ });
1017
+ test('Should open the dropdown, when press down arrow on the input with getChildren used and needSelectDownIcon as false', function () {
1018
+ var _render39 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1019
+ options: options,
1020
+ needSelectDownIcon: false,
1021
+ getChildren: function getChildren() {
1022
+ return /*#__PURE__*/_react["default"].createElement("span", null, "getChildren element");
1023
+ }
1024
+ })),
1025
+ getByRole = _render39.getByRole,
1026
+ getByTestId = _render39.getByTestId;
1027
+
1028
+ _react2.fireEvent.keyDown(getByRole(selectInputRole), {
1029
+ key: 'ArrowDown',
1030
+ keyCode: 40,
1031
+ code: 'ArrowDown'
1032
+ });
1033
+
1034
+ expect(getByTestId(dropboxTestId)).toBeInTheDocument();
1035
+ });
1036
+ });
1037
+ describe('Select snapshot - ', function () {
1038
+ test('Should render with isParentBased as false', function () {
1039
+ var _render40 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1040
+ isParentBased: false
1041
+ })),
1042
+ asFragment = _render40.asFragment;
1043
+
1044
+ expect(asFragment()).toMatchSnapshot();
1045
+ });
1046
+ var sizes = ['small', 'medium'];
1047
+ test.each(sizes)('Should render with size as %s', function (size) {
1048
+ var _render41 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1049
+ size: size
1050
+ })),
1051
+ asFragment = _render41.asFragment;
1052
+
1053
+ expect(asFragment()).toMatchSnapshot();
1054
+ });
1055
+ test('Should render with iconOnHover as true', function () {
1056
+ var _render42 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1057
+ iconOnHover: true
1058
+ })),
1059
+ asFragment = _render42.asFragment;
1060
+
1061
+ expect(asFragment()).toMatchSnapshot();
1062
+ });
1063
+ test('Should render with iconOnHover as true and isReadOnly as true', function () {
1064
+ var _render43 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1065
+ iconOnHover: true,
1066
+ isReadOnly: true
1067
+ })),
1068
+ asFragment = _render43.asFragment;
1069
+
1070
+ expect(asFragment()).toMatchSnapshot();
1071
+ });
1072
+ test('Should render with iconOnHover as true and isDisabled as true', function () {
1073
+ var _render44 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1074
+ iconOnHover: true,
1075
+ isDisabled: true
1076
+ })),
1077
+ asFragment = _render44.asFragment;
1078
+
1079
+ expect(asFragment()).toMatchSnapshot();
1080
+ });
1081
+ test('Should render with title prop', function () {
1082
+ var _render45 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1083
+ title: "Select tooltip"
1084
+ })),
1085
+ asFragment = _render45.asFragment;
1086
+
1087
+ expect(asFragment()).toMatchSnapshot();
1088
+ });
1089
+ test('Should render with dataSelectorId prop', function () {
1090
+ var _render46 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1091
+ dataSelectorId: "customSelectorId"
1092
+ })),
1093
+ asFragment = _render46.asFragment;
1094
+
1095
+ expect(asFragment()).toMatchSnapshot();
1096
+ });
1097
+ test('Should render with className prop', function () {
1098
+ var _render47 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1099
+ className: "customClass"
1100
+ })),
1101
+ asFragment = _render47.asFragment;
1102
+
1103
+ expect(asFragment()).toMatchSnapshot();
1104
+ });
1105
+ test('Should render with needSelectDownIcon as false', function () {
1106
+ var _render48 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1107
+ needSelectDownIcon: false
1108
+ })),
1109
+ asFragment = _render48.asFragment;
1110
+
1111
+ expect(asFragment()).toMatchSnapshot();
1112
+ });
1113
+ test('Should render with isLoading', function () {
1114
+ var _render49 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1115
+ isPopupOpen: true,
1116
+ isLoading: true
1117
+ })),
1118
+ asFragment = _render49.asFragment;
1119
+
1120
+ expect(asFragment()).toMatchSnapshot();
1121
+ });
1122
+ test('Should render with children', function () {
1123
+ var _render50 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], null, /*#__PURE__*/_react["default"].createElement("span", null, "children element"))),
1124
+ asFragment = _render50.asFragment;
1125
+
1126
+ expect(asFragment()).toMatchSnapshot();
1127
+ });
1128
+ test('Should render with children and dropdown open', function () {
1129
+ var _render51 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1130
+ isPopupOpen: true
1131
+ }, /*#__PURE__*/_react["default"].createElement("span", null, "children element"))),
1132
+ asFragment = _render51.asFragment;
1133
+
1134
+ expect(asFragment()).toMatchSnapshot();
1135
+ });
1136
+ var dropBoxSizes = ['small', 'medium', 'large'];
1137
+ test.each(dropBoxSizes)('Should render with dropBoxSize as %s', function (dropBoxSize) {
1138
+ var _render52 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1139
+ isPopupOpen: true,
1140
+ dropBoxSize: dropBoxSize,
1141
+ needSearch: true
1142
+ })),
1143
+ asFragment = _render52.asFragment;
1144
+
1145
+ expect(asFragment()).toMatchSnapshot();
1146
+ });
1147
+ test('Should render with getFooter', function () {
1148
+ var _render53 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1149
+ isPopupOpen: true,
1150
+ getFooter: function getFooter() {
1151
+ return /*#__PURE__*/_react["default"].createElement("span", null, "getFooter element");
1152
+ }
1153
+ })),
1154
+ asFragment = _render53.asFragment;
1155
+
1156
+ expect(asFragment()).toMatchSnapshot();
1157
+ });
1158
+ test('Should render with getChildren', function () {
1159
+ var _render54 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1160
+ isPopupOpen: true,
1161
+ getChildren: function getChildren() {
1162
+ return /*#__PURE__*/_react["default"].createElement("span", null, "getChildren element");
1163
+ }
1164
+ })),
1165
+ asFragment = _render54.asFragment;
1166
+
1167
+ expect(asFragment()).toMatchSnapshot();
1168
+ });
1169
+ test("Should render with customProps", function () {
1170
+ var _render55 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1171
+ needSearch: true,
1172
+ options: options,
1173
+ isPopupOpen: true,
1174
+ customProps: {
1175
+ TextBoxProps: {
1176
+ 'data-custom-attr': 'true'
1177
+ },
1178
+ DropdownSearchTextBoxProps: {
1179
+ 'data-custom-search-attr': 'true'
1180
+ },
1181
+ SuggestionsProps: {
1182
+ listItemSize: 'small'
1183
+ },
1184
+ TextBoxIconProps: {
1185
+ 'data-custom-select-attr': 'true'
1186
+ },
1187
+ listItemProps: {
1188
+ 'data-custom-listitem-attr': 'true'
1189
+ }
1190
+ }
1191
+ })),
1192
+ asFragment = _render55.asFragment;
1193
+
1194
+ expect(asFragment()).toMatchSnapshot();
1195
+ });
1196
+ });
1197
+ describe('Select box needSelectDownIcon snapshot - ', function () {
1198
+ [true, false].forEach(function (needSelectDownIcon) {
1199
+ test("Should render with aria properties - needSelectDownIcon as ".concat(needSelectDownIcon), function () {
1200
+ var _render56 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1201
+ i18nKeys: {
1202
+ TextBox_ally_label: ''
1203
+ },
1204
+ ariaLabelledby: "customLabelId",
1205
+ options: options,
1206
+ needSelectDownIcon: needSelectDownIcon
1207
+ })),
1208
+ asFragment = _render56.asFragment;
1209
+
1210
+ expect(asFragment()).toMatchSnapshot();
1211
+ });
1212
+ test("Should render with isPopupOpen as true - needSelectDownIcon as ".concat(needSelectDownIcon), function () {
1213
+ var _render57 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1214
+ isPopupOpen: true,
1215
+ needSelectDownIcon: needSelectDownIcon
1216
+ })),
1217
+ asFragment = _render57.asFragment;
1218
+
1219
+ expect(asFragment()).toMatchSnapshot();
1220
+ });
1221
+ test("Should render with maxLength - needSelectDownIcon as ".concat(needSelectDownIcon), function () {
1222
+ var _render58 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1223
+ maxLength: "100",
1224
+ needSelectDownIcon: needSelectDownIcon
1225
+ })),
1226
+ asFragment = _render58.asFragment;
1227
+
1228
+ expect(asFragment()).toMatchSnapshot();
1229
+ });
1230
+ test("Should render with needBorder as false - needSelectDownIcon as ".concat(needSelectDownIcon), function () {
1231
+ var _render59 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1232
+ needBorder: false,
1233
+ needSelectDownIcon: needSelectDownIcon
1234
+ })),
1235
+ asFragment = _render59.asFragment;
1236
+
1237
+ expect(asFragment()).toMatchSnapshot();
1238
+ });
1239
+ test("Should render with placeHolder - needSelectDownIcon as ".concat(needSelectDownIcon), function () {
1240
+ var _render60 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1241
+ placeHolder: "custom placeholder",
1242
+ needSelectDownIcon: needSelectDownIcon
1243
+ })),
1244
+ asFragment = _render60.asFragment;
1245
+
1246
+ expect(asFragment()).toMatchSnapshot();
1247
+ });
1248
+ test("Should render with isReadOnly as true - needSelectDownIcon as ".concat(needSelectDownIcon), function () {
1249
+ var _render61 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1250
+ isReadOnly: true,
1251
+ needSelectDownIcon: needSelectDownIcon
1252
+ })),
1253
+ asFragment = _render61.asFragment;
1254
+
1255
+ expect(asFragment()).toMatchSnapshot();
1256
+ });
1257
+ test("Should render with isDisabled as true - needSelectDownIcon as ".concat(needSelectDownIcon), function () {
1258
+ var _render62 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1259
+ isDisabled: true,
1260
+ needSelectDownIcon: needSelectDownIcon
1261
+ })),
1262
+ asFragment = _render62.asFragment;
1263
+
1264
+ expect(asFragment()).toMatchSnapshot();
1265
+ });
1266
+ var textBoxSizes = ['xsmall', 'small', 'medium', 'xmedium'];
1267
+ test.each(textBoxSizes)("Should render with textBoxSize as %s - needSelectDownIcon as ".concat(needSelectDownIcon), function (textBoxSize) {
1268
+ var _render63 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1269
+ textBoxSize: textBoxSize,
1270
+ needSelectDownIcon: needSelectDownIcon
1271
+ })),
1272
+ asFragment = _render63.asFragment;
1273
+
1274
+ expect(asFragment()).toMatchSnapshot();
1275
+ });
1276
+ var textBoxVariants = ['primary', 'secondary', 'default', 'light'];
1277
+ test.each(textBoxVariants)("Should render with textBoxVariant as %s - needSelectDownIcon as ".concat(needSelectDownIcon), function (textBoxVariant) {
1278
+ var _render64 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1279
+ textBoxVariant: textBoxVariant,
1280
+ needSelectDownIcon: needSelectDownIcon
1281
+ })),
1282
+ asFragment = _render64.asFragment;
1283
+
1284
+ expect(asFragment()).toMatchSnapshot();
1285
+ });
1286
+ var borderColors = ['transparent', 'default'];
1287
+ test.each(borderColors)("Should render with borderColor as %s - needSelectDownIcon as ".concat(needSelectDownIcon), function (borderColor) {
1288
+ var _render65 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1289
+ borderColor: borderColor,
1290
+ needSelectDownIcon: needSelectDownIcon
1291
+ })),
1292
+ asFragment = _render65.asFragment;
1293
+
1294
+ expect(asFragment()).toMatchSnapshot();
1295
+ });
1296
+ test("Should render with htmlId - needSelectDownIcon as ".concat(needSelectDownIcon), function () {
1297
+ var _render66 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1298
+ htmlId: "customHtmlId",
1299
+ needSelectDownIcon: needSelectDownIcon
1300
+ })),
1301
+ asFragment = _render66.asFragment;
1302
+
1303
+ expect(asFragment()).toMatchSnapshot();
1304
+ });
1305
+ test("Should render with autoComplete as true - needSelectDownIcon as ".concat(needSelectDownIcon), function () {
1306
+ var _render67 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1307
+ autoComplete: true,
1308
+ needSelectDownIcon: needSelectDownIcon
1309
+ })),
1310
+ asFragment = _render67.asFragment;
1311
+
1312
+ expect(asFragment()).toMatchSnapshot();
1313
+ });
1314
+ test("Should render with title - needSelectDownIcon as ".concat(needSelectDownIcon), function () {
1315
+ var _render68 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1316
+ title: "custom select title",
1317
+ needSelectDownIcon: needSelectDownIcon
1318
+ })),
1319
+ asFragment = _render68.asFragment;
1320
+
1321
+ expect(asFragment()).toMatchSnapshot();
1322
+ });
1323
+ test("Should render with customProps TextBoxProps - needSelectDownIcon as ".concat(needSelectDownIcon), function () {
1324
+ var _render69 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1325
+ customProps: {
1326
+ TextBoxProps: {
1327
+ 'data-custom-attr': 'true'
1328
+ }
1329
+ },
1330
+ needSelectDownIcon: needSelectDownIcon
1331
+ })),
1332
+ asFragment = _render69.asFragment;
1333
+
1334
+ expect(asFragment()).toMatchSnapshot();
1335
+ });
1336
+ });
1337
+ });
1338
+ describe('Select dataId snapshot - ', function () {
1339
+ test('Should render with dataId prop - dropbox open', function () {
1340
+ var _render70 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1341
+ needSearch: true,
1342
+ options: options,
1343
+ dataId: "customDataId"
1344
+ })),
1345
+ getByRole = _render70.getByRole,
1346
+ asFragment = _render70.asFragment;
1347
+
1348
+ _userEvent["default"].click(getByRole(selectInputRole));
1349
+
1350
+ expect(asFragment()).toMatchSnapshot();
1351
+ });
1352
+ test('Should render with dataId prop - isDisabled as true', function () {
1353
+ var _render71 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1354
+ isDisabled: true,
1355
+ dataId: "customDataId"
1356
+ })),
1357
+ asFragment = _render71.asFragment;
1358
+
1359
+ expect(asFragment()).toMatchSnapshot();
1360
+ });
1361
+ test('Should render with dataId prop - isReadOnly as true', function () {
1362
+ var _render72 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1363
+ isReadOnly: true,
1364
+ dataId: "customDataId"
1365
+ })),
1366
+ asFragment = _render72.asFragment;
1367
+
1368
+ expect(asFragment()).toMatchSnapshot();
1369
+ });
1370
+ test('Should render with dataId prop - empty state and needSelectDownIcon as false', function () {
1371
+ var _render73 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1372
+ needSelectDownIcon: false
1373
+ })),
1374
+ getByRole = _render73.getByRole,
1375
+ asFragment = _render73.asFragment;
1376
+
1377
+ _userEvent["default"].click(getByRole(selectInputRole));
1378
+
18
1379
  expect(asFragment()).toMatchSnapshot();
19
1380
  });
20
1381
  });