UNPKG

@wix/design-system

Version:

@wix/design-system

1,270 lines 132 kB
import _extends from "@babel/runtime/helpers/extends"; import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator"; var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/esm/SelectorList/test/SelectorList.spec.jsx", _this = this; import _regeneratorRuntime from "@babel/runtime/regenerator"; import React from 'react'; import times from 'lodash/times'; import SelectorList from '../SelectorList'; import { ASSET_PREFIX } from '../../utils/test-utils'; import { act, cleanup, createAsyncRendererWithUniDriver, waitFor } from '../../utils/test-utils/react'; import { SelectorListPrivateUniDriverFactory } from '../SelectorList.private.uni.driver'; import Box from '../../Box'; var paginatedDataSourceFactory = function paginatedDataSourceFactory(items, timeout) { return function (searchQuery, offset, limit) { var filteredItems = items.filter(function (_ref) { var title = _ref.title; return title.includes(searchQuery); }); var data = { items: filteredItems.slice(offset, offset + limit), totalCount: filteredItems.length }; return timeout ? new Promise(function (resolve) { setTimeout(function () { return resolve(data); }, timeout); }) : Promise.resolve(data); }; }; var paginatedDataSource = paginatedDataSourceFactory(times(7, function (i) { return { id: i, title: "title-".concat(i), image: /*#__PURE__*/React.createElement("img", { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 34, columnNumber: 55 } }) }; })); var paginatedDataSourceWithTimeout = paginatedDataSourceFactory(times(7, function (i) { return { id: i, title: "title-".concat(i), image: /*#__PURE__*/React.createElement("img", { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 38, columnNumber: 55 } }) }; }), 100); var emptyDataSource = paginatedDataSourceFactory([]); var requiredProps = { dataSource: emptyDataSource }; afterEach(function () { vi.useRealTimers(); }); describe('SelectorList', function () { var render = createAsyncRendererWithUniDriver(SelectorListPrivateUniDriverFactory); afterEach(function () { return cleanup(); }); var createDriver = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(props) { return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 2; return render(/*#__PURE__*/React.createElement(SelectorList, _extends({}, requiredProps, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 59, columnNumber: 19 } }))); case 2: return _context.abrupt("return", _context.sent.driver); case 3: case "end": return _context.stop(); } }, _callee); })); return function createDriver(_x) { return _ref2.apply(this, arguments); }; }(); var createDriverWithCheckbox = /*#__PURE__*/function () { var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(props) { var element; return _regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return render(/*#__PURE__*/React.createElement(SelectorList, _extends({}, requiredProps, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 63, columnNumber: 7 } }), function (_ref4) { var renderList = _ref4.renderList, renderToggleAllCheckbox = _ref4.renderToggleAllCheckbox; return /*#__PURE__*/React.createElement(Box, { height: "500px", __self: _this, __source: { fileName: _jsxFileName, lineNumber: 65, columnNumber: 11 } }, renderList(), renderToggleAllCheckbox()); })); case 2: element = _context2.sent; return _context2.abrupt("return", element.driver); case 4: case "end": return _context2.stop(); } }, _callee2); })); return function createDriverWithCheckbox(_x2) { return _ref3.apply(this, arguments); }; }(); describe('layout', function () { it('should show medium loader', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() { var driver; return _regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: vi.useFakeTimers(); _context3.next = 3; return createDriver({ dataSource: paginatedDataSourceFactory([], 10) }); case 3: driver = _context3.sent; _context3.t0 = expect; _context3.next = 7; return driver.mainLoaderExists(); case 7: _context3.t1 = _context3.sent; (0, _context3.t0)(_context3.t1).toBe(true); _context3.t2 = expect; _context3.next = 12; return driver.isMainLoaderMedium(); case 12: _context3.t3 = _context3.sent; (0, _context3.t2)(_context3.t3).toBe(true); case 14: case "end": return _context3.stop(); } }, _callee3); }))); it('should hide search while loading', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() { var driver; return _regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return createDriver(); case 2: driver = _context4.sent; _context4.t0 = expect; _context4.next = 6; return driver.searchInputExists(); case 6: _context4.t1 = _context4.sent; (0, _context4.t0)(_context4.t1).toBe(false); case 8: case "end": return _context4.stop(); } }, _callee4); }))); it('should hide the loader & render only passed empty state when there are no items in data source', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6() { var driver; return _regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return createDriver({ dataSource: emptyDataSource, emptyState: /*#__PURE__*/React.createElement("img", { src: "empty_state.png", __self: _this, __source: { fileName: _jsxFileName, lineNumber: 95, columnNumber: 21 } }) }); case 2: driver = _context6.sent; _context6.next = 5; return waitFor(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() { return _regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: _context5.t0 = expect; _context5.next = 3; return driver.mainLoaderExists(); case 3: _context5.t1 = _context5.sent; (0, _context5.t0)(_context5.t1).toBe(false); case 5: case "end": return _context5.stop(); } }, _callee5); }))); case 5: _context6.t0 = expect; _context6.next = 8; return driver.showsNoResultsFoundState(); case 8: _context6.t1 = _context6.sent; (0, _context6.t0)(_context6.t1).toBe(false); _context6.t2 = expect; _context6.next = 13; return driver.searchInputExists(); case 13: _context6.t3 = _context6.sent; (0, _context6.t2)(_context6.t3).toBe(false); _context6.t4 = expect; _context6.next = 18; return driver.showsEmptyState(); case 18: _context6.t5 = _context6.sent; (0, _context6.t4)(_context6.t5).toBe(true); _context6.t6 = expect; _context6.next = 23; return driver.getEmptyState(); case 23: _context6.t7 = _context6.sent; (0, _context6.t6)(_context6.t7).toBeInstanceOf(HTMLImageElement); _context6.t8 = expect; _context6.next = 28; return driver.getEmptyState(); case 28: _context6.t9 = _context6.sent.src; (0, _context6.t8)(_context6.t9).toBe("".concat(ASSET_PREFIX, "empty_state.png")); _context6.t10 = expect; _context6.next = 33; return driver.listExists(); case 33: _context6.t11 = _context6.sent; (0, _context6.t10)(_context6.t11).toBe(false); case 35: case "end": return _context6.stop(); } }, _callee6); }))); it('should hide loader & render the list of items with images, when there are items in data source', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8() { var dataSource, driver; return _regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) switch (_context8.prev = _context8.next) { case 0: dataSource = paginatedDataSourceFactory([{ id: 1, title: 'rick', subtitle: 'sanchez', extraText: 'get', image: /*#__PURE__*/React.createElement("img", { src: "rick.png", __self: _this, __source: { fileName: _jsxFileName, lineNumber: 118, columnNumber: 18 } }) }, { id: 2, title: 'morty', subtitle: 'smith', extraNode: /*#__PURE__*/React.createElement("img", { src: "shwifty.png", __self: _this, __source: { fileName: _jsxFileName, lineNumber: 124, columnNumber: 22 } }), image: /*#__PURE__*/React.createElement("img", { src: "morty.png", __self: _this, __source: { fileName: _jsxFileName, lineNumber: 125, columnNumber: 18 } }) }]); _context8.next = 3; return createDriver({ dataSource: dataSource }); case 3: driver = _context8.sent; _context8.next = 6; return waitFor(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7() { return _regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: _context7.t0 = expect; _context7.next = 3; return driver.mainLoaderExists(); case 3: _context7.t1 = _context7.sent; (0, _context7.t0)(_context7.t1).toBe(false); case 5: case "end": return _context7.stop(); } }, _callee7); }))); case 6: _context8.t0 = expect; _context8.next = 9; return driver.showsEmptyState(); case 9: _context8.t1 = _context8.sent; (0, _context8.t0)(_context8.t1).toBe(false); _context8.t2 = expect; _context8.next = 14; return driver.listExists(); case 14: _context8.t3 = _context8.sent; (0, _context8.t2)(_context8.t3).toBe(true); _context8.t4 = expect; _context8.next = 19; return driver.getSelectorTitleAt(0); case 19: _context8.t5 = _context8.sent; (0, _context8.t4)(_context8.t5).toBe('rick'); _context8.t6 = expect; _context8.next = 24; return driver.getSelectorSubtitleAt(0); case 24: _context8.t7 = _context8.sent; (0, _context8.t6)(_context8.t7).toBe('sanchez'); _context8.t8 = expect; _context8.next = 29; return driver.getSelectorExtraNodeAt(0); case 29: _context8.t9 = _context8.sent.textContent; (0, _context8.t8)(_context8.t9).toBe('get'); _context8.t10 = expect; _context8.next = 34; return driver.getSelectorImageAt(0); case 34: _context8.t11 = _context8.sent; (0, _context8.t10)(_context8.t11).toBeInstanceOf(HTMLImageElement); _context8.t12 = expect; _context8.next = 39; return driver.getSelectorImageAt(0); case 39: _context8.t13 = _context8.sent.src; (0, _context8.t12)(_context8.t13).toBe("".concat(ASSET_PREFIX, "rick.png")); _context8.t14 = expect; _context8.next = 44; return driver.getSelectorTitleAt(1); case 44: _context8.t15 = _context8.sent; (0, _context8.t14)(_context8.t15).toBe('morty'); _context8.t16 = expect; _context8.next = 49; return driver.getSelectorSubtitleAt(1); case 49: _context8.t17 = _context8.sent; (0, _context8.t16)(_context8.t17).toBe('smith'); _context8.t18 = expect; _context8.next = 54; return driver.getSelectorExtraNodeAt(1); case 54: _context8.t19 = _context8.sent; (0, _context8.t18)(_context8.t19).toBeInstanceOf(HTMLImageElement); _context8.t20 = expect; _context8.next = 59; return driver.getSelectorExtraNodeAt(1); case 59: _context8.t21 = _context8.sent.src; (0, _context8.t20)(_context8.t21).toBe("".concat(ASSET_PREFIX, "shwifty.png")); _context8.t22 = expect; _context8.next = 64; return driver.getSelectorImageAt(1); case 64: _context8.t23 = _context8.sent; (0, _context8.t22)(_context8.t23).toBeInstanceOf(HTMLImageElement); _context8.t24 = expect; _context8.next = 69; return driver.getSelectorImageAt(1); case 69: _context8.t25 = _context8.sent.src; (0, _context8.t24)(_context8.t25).toBe("".concat(ASSET_PREFIX, "morty.png")); case 71: case "end": return _context8.stop(); } }, _callee8); }))); }); describe('search', function () { it('should render search input after the items are loaded', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee0() { var driver; return _regeneratorRuntime.wrap(function _callee0$(_context0) { while (1) switch (_context0.prev = _context0.next) { case 0: _context0.next = 2; return createDriver({ dataSource: paginatedDataSource }); case 2: driver = _context0.sent; _context0.next = 5; return waitFor(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9() { return _regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) switch (_context9.prev = _context9.next) { case 0: _context9.t0 = expect; _context9.next = 3; return driver.searchInputExists(); case 3: _context9.t1 = _context9.sent; (0, _context9.t0)(_context9.t1).toBe(true); case 5: case "end": return _context9.stop(); } }, _callee9); }))); case 5: case "end": return _context0.stop(); } }, _callee0); }))); it('should allow hiding search', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee1() { var driver; return _regeneratorRuntime.wrap(function _callee1$(_context1) { while (1) switch (_context1.prev = _context1.next) { case 0: _context1.next = 2; return createDriver({ dataSource: paginatedDataSource, withSearch: false }); case 2: driver = _context1.sent; _context1.t0 = expect; _context1.next = 6; return driver.searchInputExists(); case 6: _context1.t1 = _context1.sent; (0, _context1.t0)(_context1.t1).toBe(false); case 8: case "end": return _context1.stop(); } }, _callee1); }))); it('should allow passing placeholder', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee11() { var expectedPlaceholder, driver; return _regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) switch (_context11.prev = _context11.next) { case 0: expectedPlaceholder = 'some placeholder'; _context11.next = 3; return createDriver({ dataSource: paginatedDataSource, searchPlaceholder: expectedPlaceholder }); case 3: driver = _context11.sent; _context11.next = 6; return waitFor(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee10() { return _regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) switch (_context10.prev = _context10.next) { case 0: _context10.t0 = expect; _context10.next = 3; return driver.getSearchPlaceholder(); case 3: _context10.t1 = _context10.sent; (0, _context10.t0)(_context10.t1).toBe(expectedPlaceholder); case 5: case "end": return _context10.stop(); } }, _callee10); }))); case 6: case "end": return _context11.stop(); } }, _callee11); }))); it('should allow passing searchMaxLength to search', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee13() { var expectedMaxLength, driver; return _regeneratorRuntime.wrap(function _callee13$(_context13) { while (1) switch (_context13.prev = _context13.next) { case 0: expectedMaxLength = 50; _context13.next = 3; return createDriver({ dataSource: paginatedDataSource, searchMaxLength: expectedMaxLength }); case 3: driver = _context13.sent; _context13.next = 6; return waitFor(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee12() { return _regeneratorRuntime.wrap(function _callee12$(_context12) { while (1) switch (_context12.prev = _context12.next) { case 0: _context12.t0 = expect; _context12.next = 3; return driver.getSearchMaxLength(); case 3: _context12.t1 = _context12.sent; (0, _context12.t0)(_context12.t1).toBe("".concat(expectedMaxLength)); case 5: case "end": return _context12.stop(); } }, _callee12); }))); case 6: case "end": return _context13.stop(); } }, _callee13); }))); it('should show medium loader, and then show filtered items', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee17() { var driver; return _regeneratorRuntime.wrap(function _callee17$(_context17) { while (1) switch (_context17.prev = _context17.next) { case 0: vi.useFakeTimers(); _context17.next = 3; return createDriver({ dataSource: paginatedDataSourceWithTimeout }); case 3: driver = _context17.sent; _context17.next = 6; return waitFor(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee14() { return _regeneratorRuntime.wrap(function _callee14$(_context14) { while (1) switch (_context14.prev = _context14.next) { case 0: _context14.t0 = expect; _context14.next = 3; return driver.mainLoaderExists(); case 3: _context14.t1 = _context14.sent; (0, _context14.t0)(_context14.t1).toBe(true); case 5: case "end": return _context14.stop(); } }, _callee14); }))); case 6: _context17.next = 8; return waitFor(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee15() { return _regeneratorRuntime.wrap(function _callee15$(_context15) { while (1) switch (_context15.prev = _context15.next) { case 0: _context15.t0 = expect; _context15.next = 3; return driver.searchInputExists(); case 3: _context15.t1 = _context15.sent; (0, _context15.t0)(_context15.t1).toBe(true); case 5: case "end": return _context15.stop(); } }, _callee15); }))); case 8: _context17.next = 10; return driver.focusSearchInput(); case 10: _context17.next = 12; return driver.enterSearchValue('title-1'); case 12: _context17.next = 14; return driver.scrollDown(); case 14: _context17.next = 16; return waitFor(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee16() { return _regeneratorRuntime.wrap(function _callee16$(_context16) { while (1) switch (_context16.prev = _context16.next) { case 0: _context16.t0 = expect; _context16.next = 3; return driver.mainLoaderExists(); case 3: _context16.t1 = _context16.sent; return _context16.abrupt("return", (0, _context16.t0)(_context16.t1).toBe(false)); case 5: case "end": return _context16.stop(); } }, _callee16); }))); case 16: _context17.t0 = expect; _context17.next = 19; return driver.numberOfItemsInList(); case 19: _context17.t1 = _context17.sent; (0, _context17.t0)(_context17.t1).toBe(1); _context17.t2 = expect; _context17.next = 24; return driver.getSelectorTitleAt(0); case 24: _context17.t3 = _context17.sent; (0, _context17.t2)(_context17.t3).toBe('title-1'); case 26: case "end": return _context17.stop(); } }, _callee17); }))); it('should render noResultsFoundState with current search value only if no results were found', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee21() { var searchValue, driver; return _regeneratorRuntime.wrap(function _callee21$(_context21) { while (1) switch (_context21.prev = _context21.next) { case 0: vi.useFakeTimers(); searchValue = 'wubba lubba dub dub'; _context21.next = 4; return createDriver({ dataSource: paginatedDataSourceWithTimeout, renderNoResults: function renderNoResults(_searchValue) { return /*#__PURE__*/React.createElement("img", { alt: _searchValue, src: "no-results-found.png", __self: _this, __source: { fileName: _jsxFileName, lineNumber: 234, columnNumber: 11 } }); } }); case 4: driver = _context21.sent; _context21.t0 = expect; _context21.next = 8; return driver.showsNoResultsFoundState(); case 8: _context21.t1 = _context21.sent; (0, _context21.t0)(_context21.t1).toBe(false); _context21.next = 12; return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee18() { return _regeneratorRuntime.wrap(function _callee18$(_context18) { while (1) switch (_context18.prev = _context18.next) { case 0: vi.runOnlyPendingTimers(); case 1: case "end": return _context18.stop(); } }, _callee18); }))); case 12: _context21.t2 = expect; _context21.next = 15; return driver.showsNoResultsFoundState(); case 15: _context21.t3 = _context21.sent; (0, _context21.t2)(_context21.t3).toBe(false); _context21.next = 19; return driver.focusSearchInput(); case 19: _context21.next = 21; return driver.enterSearchValue(searchValue); case 21: _context21.t4 = expect; _context21.next = 24; return driver.getSearchValue(); case 24: _context21.t5 = _context21.sent; (0, _context21.t4)(_context21.t5).toBe(searchValue); _context21.t6 = expect; _context21.next = 29; return driver.showsNoResultsFoundState(); case 29: _context21.t7 = _context21.sent; (0, _context21.t6)(_context21.t7).toBe(false); _context21.next = 33; return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee19() { return _regeneratorRuntime.wrap(function _callee19$(_context19) { while (1) switch (_context19.prev = _context19.next) { case 0: vi.runOnlyPendingTimers(); case 1: case "end": return _context19.stop(); } }, _callee19); }))); case 33: _context21.t8 = expect; _context21.next = 36; return driver.showsNoResultsFoundState(); case 36: _context21.t9 = _context21.sent; (0, _context21.t8)(_context21.t9).toBe(true); _context21.t10 = expect; _context21.next = 41; return driver.getNoResultsFoundState(); case 41: _context21.t11 = _context21.sent; (0, _context21.t10)(_context21.t11).toBeInstanceOf(HTMLImageElement); _context21.t12 = expect; _context21.next = 46; return driver.getNoResultsFoundState(); case 46: _context21.t13 = _context21.sent.src; (0, _context21.t12)(_context21.t13).toBe("".concat(ASSET_PREFIX, "no-results-found.png")); _context21.t14 = expect; _context21.next = 51; return driver.getNoResultsFoundState(); case 51: _context21.t15 = _context21.sent.alt; (0, _context21.t14)(_context21.t15).toBe(searchValue); _context21.next = 55; return driver.clickSearchInputClear(); case 55: _context21.next = 57; return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee20() { return _regeneratorRuntime.wrap(function _callee20$(_context20) { while (1) switch (_context20.prev = _context20.next) { case 0: vi.runOnlyPendingTimers(); case 1: case "end": return _context20.stop(); } }, _callee20); }))); case 57: _context21.t16 = expect; _context21.next = 60; return driver.showsNoResultsFoundState(); case 60: _context21.t17 = _context21.sent; (0, _context21.t16)(_context21.t17).toBe(false); case 62: case "end": return _context21.stop(); } }, _callee21); }))); it('should clear search on clear button click', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee23() { var driver; return _regeneratorRuntime.wrap(function _callee23$(_context23) { while (1) switch (_context23.prev = _context23.next) { case 0: _context23.next = 2; return createDriver({ dataSource: paginatedDataSource }); case 2: driver = _context23.sent; _context23.next = 5; return waitFor(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee22() { return _regeneratorRuntime.wrap(function _callee22$(_context22) { while (1) switch (_context22.prev = _context22.next) { case 0: _context22.t0 = expect; _context22.next = 3; return driver.searchInputExists(); case 3: _context22.t1 = _context22.sent; (0, _context22.t0)(_context22.t1).toBe(true); case 5: case "end": return _context22.stop(); } }, _callee22); }))); case 5: _context23.next = 7; return driver.enterSearchValue('foo'); case 7: _context23.t0 = expect; _context23.next = 10; return driver.getSearchValue(); case 10: _context23.t1 = _context23.sent; (0, _context23.t0)(_context23.t1).toBe('foo'); _context23.next = 14; return driver.clickSearchInputClear(); case 14: _context23.t2 = expect; _context23.next = 17; return driver.getSearchValue(); case 17: _context23.t3 = _context23.sent; (0, _context23.t2)(_context23.t3).toBe(''); case 19: case "end": return _context23.stop(); } }, _callee23); }))); it('should clear search on clear button click ans save the current state', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee25() { var items, dataSource, driver; return _regeneratorRuntime.wrap(function _callee25$(_context25) { while (1) switch (_context25.prev = _context25.next) { case 0: items = [{ id: 1, title: 'first' }, { id: 2, title: 'second', selected: true }, { id: 3, title: 'third', disabled: true, selected: true }]; dataSource = paginatedDataSourceFactory(items); _context25.next = 4; return createDriverWithCheckbox({ dataSource: dataSource, multiple: true }); case 4: driver = _context25.sent; _context25.next = 7; return waitFor(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee24() { return _regeneratorRuntime.wrap(function _callee24$(_context24) { while (1) switch (_context24.prev = _context24.next) { case 0: _context24.t0 = expect; _context24.next = 3; return driver.searchInputExists(); case 3: _context24.t1 = _context24.sent; (0, _context24.t0)(_context24.t1).toBe(true); case 5: case "end": return _context24.stop(); } }, _callee24); }))); case 7: _context25.next = 9; return driver.enterSearchValue('foo'); case 9: _context25.t0 = expect; _context25.next = 12; return driver.getSearchValue(); case 12: _context25.t1 = _context25.sent; (0, _context25.t0)(_context25.t1).toBe('foo'); _context25.next = 16; return driver.clickSearchInputClear(); case 16: _context25.t2 = expect; _context25.next = 19; return driver.getSearchValue(); case 19: _context25.t3 = _context25.sent; (0, _context25.t2)(_context25.t3).toBe(''); _context25.t4 = expect; _context25.next = 24; return driver.getToggleAllCheckboxLabel(); case 24: _context25.t5 = _context25.sent; (0, _context25.t4)(_context25.t5).toContain(' Deselect all (1)'); case 26: case "end": return _context25.stop(); } }, _callee25); }))); it('should postpone the search until the timer if debounce is used', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee30() { var driver; return _regeneratorRuntime.wrap(function _callee30$(_context30) { while (1) switch (_context30.prev = _context30.next) { case 0: vi.useFakeTimers(); _context30.next = 3; return createDriver({ dataSource: paginatedDataSourceWithTimeout, withSearch: true, searchDebounceMs: 100 }); case 3: driver = _context30.sent; _context30.next = 6; return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee26() { return _regeneratorRuntime.wrap(function _callee26$(_context26) { while (1) switch (_context26.prev = _context26.next) { case 0: vi.runOnlyPendingTimers(); case 1: case "end": return _context26.stop(); } }, _callee26); }))); case 6: _context30.next = 8; return driver.enterSearchValue('f'); case 8: _context30.t0 = expect; _context30.next = 11; return driver.mainLoaderExists(); case 11: _context30.t1 = _context30.sent; (0, _context30.t0)(_context30.t1).toBe(false); _context30.next = 15; return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee27() { return _regeneratorRuntime.wrap(function _callee27$(_context27) { while (1) switch (_context27.prev = _context27.next) { case 0: vi.advanceTimersByTime(50); case 1: case "end": return _context27.stop(); } }, _callee27); }))); case 15: _context30.next = 17; return driver.enterSearchValue('fo'); case 17: _context30.t2 = expect; _context30.next = 20; return driver.mainLoaderExists(); case 20: _context30.t3 = _context30.sent; (0, _context30.t2)(_context30.t3).toBe(false); _context30.next = 24; return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee28() { return _regeneratorRuntime.wrap(function _callee28$(_context28) { while (1) switch (_context28.prev = _context28.next) { case 0: vi.advanceTimersByTime(50); case 1: case "end": return _context28.stop(); } }, _callee28); }))); case 24: _context30.next = 26; return driver.enterSearchValue('foo'); case 26: _context30.t4 = expect; _context30.next = 29; return driver.mainLoaderExists(); case 29: _context30.t5 = _context30.sent; (0, _context30.t4)(_context30.t5).toBe(false); _context30.next = 33; return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee29() { return _regeneratorRuntime.wrap(function _callee29$(_context29) { while (1) switch (_context29.prev = _context29.next) { case 0: vi.advanceTimersByTime(101); case 1: case "end": return _context29.stop(); } }, _callee29); }))); case 33: _context30.t6 = expect; _context30.next = 36; return driver.mainLoaderExists(); case 36: _context30.t7 = _context30.sent; (0, _context30.t6)(_context30.t7).toBe(true); case 38: case "end": return _context30.stop(); } }, _callee30); }))); it('should not postpone the search if debounce is not used', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee34() { var driver; return _regeneratorRuntime.wrap(function _callee34$(_context34) { while (1) switch (_context34.prev = _context34.next) { case 0: vi.useFakeTimers(); _context34.next = 3; return createDriver({ dataSource: paginatedDataSourceWithTimeout }); case 3: driver = _context34.sent; _context34.next = 6; return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee31() { return _regeneratorRuntime.wrap(function _callee31$(_context31) { while (1) switch (_context31.prev = _context31.next) { case 0: vi.runOnlyPendingTimers(); case 1: case "end": return _context31.stop(); } }, _callee31); }))); case 6: _context34.next = 8; return driver.enterSearchValue('f'); case 8: _context34.t0 = expect; _context34.next = 11; return driver.mainLoaderExists(); case 11: _context34.t1 = _context34.sent; (0, _context34.t0)(_context34.t1).toBe(true); _context34.next = 15; return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee32() { return _regeneratorRuntime.wrap(function _callee32$(_context32) { while (1) switch (_context32.prev = _context32.next) { case 0: vi.runOnlyPendingTimers(); case 1: case "end": return _context32.stop(); } }, _callee32); }))); case 15: _context34.next = 17; return driver.enterSearchValue('fo'); case 17: _context34.t2 = expect; _context34.next = 20; return driver.mainLoaderExists(); case 20: _context34.t3 = _context34.sent; (0, _context34.t2)(_context34.t3).toBe(true); _context34.next = 24; return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee33() { return _regeneratorRuntime.wrap(function _callee33$(_context33) { while (1) switch (_context33.prev = _context33.next) { case 0: vi.runOnlyPendingTimers(); case 1: case "end": return _context33.stop(); } }, _callee33); }))); case 24: _context34.next = 26; return driver.enterSearchValue('foo'); case 26: _context34.t4 = expect; _context34.next = 29; return driver.mainLoaderExists(); case 29: _context34.t5 = _context34.sent; (0, _context34.t4)(_context34.t5).toBe(true); case 31: case "end": return _context34.stop(); } }, _callee34); }))); it('should show correct label in footer when search for item', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee37() { var items, dataSource, driver; return _regeneratorRuntime.wrap(function _callee37$(_context37) { while (1) switch (_context37.prev = _context37.next) { case 0: vi.useFakeTimers(); items = [{ id: 1, title: 'first', selected: true }, { id: 2, title: 'second', selected: true }, { id: 3, title: 'third', selected: true }]; dataSource = paginatedDataSourceFactory(items); _context37.next = 5; return createDriverWithCheckbox({ dataSource: dataSource, multiple: true }); case 5: driver = _context37.sent; _context37.next = 8; return waitFor(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee35() { return _regeneratorRuntime.wrap(function _callee35$(_context35) { while (1) switch (_context35.prev = _context35.next) { case 0: _context35.t0 = expect; _context35.next = 3; return driver.searchInputExists(); case 3: _context35.t1 = _context35.sent; (0, _context35.t0)(_context35.t1).toBe(true); case 5: case "end": return _context35.stop(); } }, _callee35); }))); case 8: _context37.next = 10; return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee36() { return _regeneratorRuntime.wrap(function _callee36$(_context36) { while (1) switch (_context36.prev = _context36.next) { case 0: vi.runOnlyPendingTimers(); case 1: case "end": return _context36.stop(); } }, _callee36); }))); case 10: _context37.next = 12; return driver.enterSearchValue('f'); case 12: _context37.t0 = expect; _context37.next = 15; return driver.getToggleAllCheckboxLabel(); case 15: _context37.t1 = _context37.sent; (0, _context37.t0)(_context37.t1).toContain(' Deselect all (3)'); case 17: case "end": return _context37.stop(); } }, _callee37); }))); }); describe.skip('pagination', function () { it("should render the first 50 items by default, show a small loader when scrolleasync d down,\n then render the next page and remove the loader", /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee38() { var dataSource, driver; return _regeneratorRuntime.wrap(function _callee38$(_context38) { while (1) switch (_context38.prev = _context38.next) { case 0: dataSource = paginatedDataSourceFactory(times(55, function (i) { return { id: i, title: '', subtitle: '' }; })); _context38.next = 3; return createDriver({ dataSource: dataSource }); case 3: driver = _context38.sent; _context38.t0 = expect; _context38.next = 7; return driver.numberOfItemsInList(); case 7: _context38.t1 = _context38.sent; (0, _context38.t0)(_context38.t1).toBe(50); _context38.t2 = expect; _context38.next = 12; return driver.nextPageLoaderExists(); case 12: _context38.t3 = _context38.sent; (0, _context38.t2)(_context38.t3).toBe(true); _context38.t4 = expect; _context38.next = 17; return driver.isNextPageLoaderSmall(); case 17: _context38.t5 = _context38.sent; (0, _context38.t4)(_context38.t5).toBe(true); _context38.next = 21; return driver.scrollDown(); case 21: _context38.t6 = expect; _context38.next = 24; return driver.numberOfItemsInList(); case 24: _context38.t7 = _context38.sent; (0, _context38.t6)(_context38.t7).toBe(55); _context38.t8 = expect; _context38.next = 29; return driver.nextPageLoaderExists(); case 29: _context38.t9 = _context38.sent; (0, _context38.t8)(_context38.t9).toBe(false); case 31: case "end": return _context38.stop(); } }, _callee38); }))); it('should allow configuring items per page', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee39() { var driver; return _regeneratorRuntime.wrap(function _callee39$(_context39) { while (1) switch (_context39.prev = _context39.next) { case 0: _context39.next = 2; return createDriver({ dataSource: paginatedDataSource, itemsPerPage: 2 }); case 2: driver = _context39.sent; _context39.t0 = expect; _context39.next = 6; return driver.numberOfItemsInList(); case 6: _context39.t1 = _context39.sent; (0, _context39.t0)(_context39.t1).toBe(2); _context39.next = 10; return driver.scrollDown(); case 10: _context39.t2 = expect; _context39.next = 13; return driver.numberOfItemsInList(); case 13: _context39.t3 = _context39.sent; (0, _context39.t2)(_context39.t3).toBe(4); _context39.next = 17; return driver.scrollDown(); case 17: _context39.t4 = expect; _context39.next = 20; return driver.numberOfItemsInList(); case 20: _context39.t5 = _context39.sent; (0, _context39.t4)(_context39.t5).toBe(6); case 22: case "end": return _context39.stop(); } }, _callee39); }))); }); describe.skip('image size', function () { it('should render tiny images', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee40() { var driver; return _regeneratorRun