@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.
- package/.cli/propValidation_report.html +1 -1
- package/README.md +8 -0
- package/es/Button/__tests__/Button.spec.js +134 -1
- package/es/DateTime/__tests__/YearView.spec.js +1 -2
- package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +8 -1
- package/es/Provider/IdProvider.js +1 -1
- package/es/Select/__tests__/Select.spec.js +1130 -4
- package/es/Select/__tests__/__snapshots__/Select.spec.js.snap +9621 -1
- package/es/Stencils/Stencils.js +5 -12
- package/es/Stencils/Stencils.module.css +11 -7
- package/es/Stencils/__tests__/Stencils.spec.js +9 -1
- package/es/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +27 -11
- package/es/Stencils/props/defaultProps.js +2 -1
- package/es/Stencils/props/propTypes.js +3 -2
- package/es/Tab/Tab.js +2 -1
- package/es/Tab/TabWrapper.js +2 -1
- package/es/Tab/Tabs.js +10 -10
- package/es/Tab/__tests__/TabLayout.spec.js +34 -0
- package/es/Tab/__tests__/__snapshots__/TabLayout.spec.js.snap +341 -0
- package/es/Tab/props/propTypes.js +2 -2
- package/es/Tab/utils/tabConfigs.js +18 -0
- package/es/Tag/__tests__/Tag.spec.js +8 -1
- package/es/utils/Common.js +1 -1
- package/lib/Button/__tests__/Button.spec.js +140 -0
- package/lib/DateTime/__tests__/YearView.spec.js +1 -2
- package/lib/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +8 -0
- package/lib/Provider/IdProvider.js +1 -0
- package/lib/Select/__tests__/Select.spec.js +1364 -3
- package/lib/Select/__tests__/__snapshots__/Select.spec.js.snap +9621 -1
- package/lib/Stencils/Stencils.js +5 -12
- package/lib/Stencils/Stencils.module.css +11 -7
- package/lib/Stencils/__tests__/Stencils.spec.js +11 -3
- package/lib/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +27 -11
- package/lib/Stencils/props/defaultProps.js +2 -1
- package/lib/Stencils/props/propTypes.js +3 -2
- package/lib/Tab/Tab.js +3 -1
- package/lib/Tab/TabWrapper.js +3 -1
- package/lib/Tab/Tabs.js +11 -10
- package/lib/Tab/__tests__/TabLayout.spec.js +41 -0
- package/lib/Tab/__tests__/__snapshots__/TabLayout.spec.js.snap +341 -0
- package/lib/Tab/props/propTypes.js +2 -2
- package/lib/Tab/utils/tabConfigs.js +27 -0
- package/lib/Tag/__tests__/Tag.spec.js +10 -2
- package/lib/utils/Common.js +1 -1
- package/package.json +1 -1
- package/react-cli.config.js +2 -2
- package/result.json +1 -1
- package/es/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +0 -61
- 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
|
});
|