UNPKG

@wix/design-system

Version:

@wix/design-system

1,249 lines (1,247 loc) 90 kB
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; 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/Table/DataTable/test/DataTable.spec.jsx"; function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); } function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); } import React from 'react'; import { createRendererWithUniDriver, cleanup, waitFor } from '../../../utils/test-utils/react'; import DataTable from '../DataTable'; import { dataTableUniDriverFactory } from '../DataTable.uni.driver'; import WixStyleReactMaskingProvider from '../../../WixStyleReactMaskingProvider'; describe('Table', function () { describe('[async]', function () { runTests(createRendererWithUniDriver(dataTableUniDriverFactory)); }); function runTests(render) { var _this = this; afterEach(function () { return cleanup(); }); var createDriver = function createDriver(jsx) { return render(jsx).driver; }; var createDefaultProps = function createDefaultProps() { return { id: 'id', data: [{ a: 'value 1', b: 'value 2' }, { a: 'value 3', b: 'value 4' }], columns: [{ title: 'Row Num', render: function render(row, rowNum) { return rowNum; } }, { title: 'A', render: function render(row) { return row.a; } }, { title: 'B', render: function render(row) { return row.b; } }], rowClass: 'class-name' }; }; var defaultProps = createDefaultProps(); it('should pass id prop to child', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() { var driver, _t; return _regenerator().w(function (_context) { while (1) switch (_context.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 38, columnNumber: 35 } }))); _t = expect; _context.n = 1; return driver.hasChildWithId(defaultProps.id); case 1: _t(_context.v).toBe(true); case 2: return _context.a(2); } }, _callee); }))); describe('data is empty', function () { var rowDataHook = 'row-data-hook'; var props = _objectSpread(_objectSpread({}, defaultProps), {}, { data: [], rowDataHook: rowDataHook }); it('should not render the component when no data supplied', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() { var driver, _t2; return _regenerator().w(function (_context2) { while (1) switch (_context2.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 47, columnNumber: 37 } }))); _t2 = expect; _context2.n = 1; return driver.exists(); case 1: _t2(_context2.v).toEqual(false); case 2: return _context2.a(2); } }, _callee2); }))); it('should render the component when data is supplied', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() { var driver, _t3; return _regenerator().w(function (_context3) { while (1) switch (_context3.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 52, columnNumber: 37 } }))); _t3 = expect; _context3.n = 1; return driver.exists(); case 1: _t3(_context3.v).toEqual(true); case 2: return _context3.a(2); } }, _callee3); }))); it('should display nothing', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() { var driver, _t4; return _regenerator().w(function (_context4) { while (1) switch (_context4.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 57, columnNumber: 37 } }))); _t4 = expect; _context4.n = 1; return driver.isDisplayingNothing(); case 1: _t4(_context4.v).toBe(true); case 2: return _context4.a(2); } }, _callee4); }))); it('should count 0 rows', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5() { var driver, _t5; return _regenerator().w(function (_context5) { while (1) switch (_context5.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 62, columnNumber: 37 } }))); _t5 = expect; _context5.n = 1; return driver.getRowsCount(); case 1: _t5(_context5.v).toEqual(0); case 2: return _context5.a(2); } }, _callee5); }))); it('should count 0 rows with class name', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6() { var driver, _t6; return _regenerator().w(function (_context6) { while (1) switch (_context6.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 67, columnNumber: 37 } }))); _t6 = expect; _context6.n = 1; return driver.getRowsWithClassCount(defaultProps.rowClass); case 1: _t6(_context6.v).toEqual(0); case 2: return _context6.a(2); } }, _callee6); }))); it('should find 0 rows with data-hook', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7() { var driver, _t7; return _regenerator().w(function (_context7) { while (1) switch (_context7.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 74, columnNumber: 37 } }))); _t7 = expect; _context7.n = 1; return driver.getRowsWithDataHook(rowDataHook); case 1: _t7(_context7.v).toHaveLength(0); case 2: return _context7.a(2); } }, _callee7); }))); it('should not find a row with data-hook', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8() { var driver, _t8; return _regenerator().w(function (_context8) { while (1) switch (_context8.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 79, columnNumber: 37 } }))); _t8 = expect; _context8.n = 1; return driver.getRowWithDataHook(rowDataHook); case 1: _t8(_context8.v).toEqual(null); case 2: return _context8.a(2); } }, _callee8); }))); it('should not a header only', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee9() { var driver, _t9; return _regenerator().w(function (_context9) { while (1) switch (_context9.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 84, columnNumber: 37 } }))); _t9 = expect; _context9.n = 1; return driver.isDisplayingHeaderOnly(); case 1: _t9(_context9.v).toBeFalsy(); case 2: return _context9.a(2); } }, _callee9); }))); it('should not a header ', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee0() { var driver, _t0; return _regenerator().w(function (_context0) { while (1) switch (_context0.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 89, columnNumber: 37 } }))); _t0 = expect; _context0.n = 1; return driver.isDisplayingHeader(); case 1: _t0(_context0.v).toBeFalsy(); case 2: return _context0.a(2); } }, _callee0); }))); it('should not find a child with id', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee1() { var driver, _t1; return _regenerator().w(function (_context1) { while (1) switch (_context1.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 94, columnNumber: 37 } }))); _t1 = expect; _context1.n = 1; return driver.hasChildWithId(defaultProps.id); case 1: _t1(_context1.v).toBeFalsy(); case 2: return _context1.a(2); } }, _callee1); }))); // There rest of the driver's methods would throw some error }); it('should display something when data is non-empty', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee10() { var driver, _t10; return _regenerator().w(function (_context10) { while (1) switch (_context10.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 102, columnNumber: 35 } }))); _t10 = expect; _context10.n = 1; return driver.isDisplayingNothing(); case 1: _t10(_context10.v).toBe(false); case 2: return _context10.a(2); } }, _callee10); }))); it('should display header only when data is empty and showHeaderWhenEmpty is true', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee11() { var props, driver, _t11; return _regenerator().w(function (_context11) { while (1) switch (_context11.n) { case 0: props = _objectSpread(_objectSpread({}, defaultProps), {}, { data: [], showHeaderWhenEmpty: true }); driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 113, columnNumber: 35 } }))); _t11 = expect; _context11.n = 1; return driver.isDisplayingHeaderOnly(); case 1: _t11(_context11.v).toBe(true); case 2: return _context11.a(2); } }, _callee11); }))); it('should render column titles', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee12() { var driver, _t12; return _regenerator().w(function (_context12) { while (1) switch (_context12.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 118, columnNumber: 35 } }))); _t12 = expect; _context12.n = 1; return driver.getTitles(); case 1: _t12(_context12.v).toEqual(defaultProps.columns.map(function (col) { return col.title; })); case 2: return _context12.a(2); } }, _callee12); }))); describe('column width', function () { var columns = [{ title: 'Row Num', width: '30%', render: function render(row, rowNum) { return rowNum; } }, { title: 'A', width: '40px', render: function render(row) { return row.a; } }, { title: 'B', width: '50px', render: function render(row) { return row.b; } }]; it('should apply column.width', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee13() { var driver, colIndex, column, rowIndex, _t13, _t14, _t15, _t16; return _regenerator().w(function (_context13) { while (1) switch (_context13.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { columns: columns, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 133, columnNumber: 11 } }))); colIndex = 0; case 1: if (!(colIndex < columns.length)) { _context13.n = 8; break; } column = columns[colIndex]; _t13 = expect; _context13.n = 2; return driver.getHeaderCellWidth(colIndex); case 2: _t13(_context13.v).toEqual(column.width); rowIndex = 0; case 3: _t14 = rowIndex; _context13.n = 4; return driver.getRowsCount(); case 4: _t15 = _context13.v; if (!(_t14 < _t15)) { _context13.n = 7; break; } _t16 = expect; _context13.n = 5; return driver.getCellWidth(rowIndex, colIndex); case 5: _t16(_context13.v).toBe(''); case 6: rowIndex++; _context13.n = 3; break; case 7: colIndex++; _context13.n = 1; break; case 8: return _context13.a(2); } }, _callee13); }))); it('should apply column.width when header is not in the DOM', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee14() { var driver, colIndex, column, rowIndex, _t17, _t18, _t19, _t20; return _regenerator().w(function (_context14) { while (1) switch (_context14.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { columns: columns, hideHeader: true, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 152, columnNumber: 11 } }))); colIndex = 0; case 1: if (!(colIndex < columns.length)) { _context14.n = 9; break; } column = columns[colIndex]; rowIndex = 0; case 2: _t17 = rowIndex; _context14.n = 3; return driver.getRowsCount(); case 3: _t18 = _context14.v; if (!(_t17 < _t18)) { _context14.n = 8; break; } if (!(rowIndex === 0)) { _context14.n = 5; break; } _t19 = expect; _context14.n = 4; return driver.getCellWidth(rowIndex, colIndex); case 4: _t19(_context14.v).toEqual(column.width); _context14.n = 7; break; case 5: _t20 = expect; _context14.n = 6; return driver.getCellWidth(rowIndex, colIndex); case 6: _t20(_context14.v).toBe(''); case 7: rowIndex++; _context14.n = 2; break; case 8: colIndex++; _context14.n = 1; break; case 9: return _context14.a(2); } }, _callee14); }))); it('should apply column.width when header is hidden', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee15() { var driver, colIndex, column, rowIndex, _t21, _t22, _t23, _t24; return _regenerator().w(function (_context15) { while (1) switch (_context15.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { columns: columns, hideHeaderAccessible: true, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 174, columnNumber: 11 } }))); colIndex = 0; case 1: if (!(colIndex < columns.length)) { _context15.n = 9; break; } column = columns[colIndex]; rowIndex = 0; case 2: _t21 = rowIndex; _context15.n = 3; return driver.getRowsCount(); case 3: _t22 = _context15.v; if (!(_t21 < _t22)) { _context15.n = 8; break; } if (!(rowIndex === 0)) { _context15.n = 5; break; } _t23 = expect; _context15.n = 4; return driver.getCellWidth(rowIndex, colIndex); case 4: _t23(_context15.v).toEqual(column.width); _context15.n = 7; break; case 5: _t24 = expect; _context15.n = 6; return driver.getCellWidth(rowIndex, colIndex); case 6: _t24(_context15.v).toBe(''); case 7: rowIndex++; _context15.n = 2; break; case 8: colIndex++; _context15.n = 1; break; case 9: return _context15.a(2); } }, _callee15); }))); }); it('should display correct amount of rows', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee16() { var driver, _t25; return _regenerator().w(function (_context16) { while (1) switch (_context16.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 200, columnNumber: 35 } }))); _t25 = expect; _context16.n = 1; return driver.getRowsCount(); case 1: _t25(_context16.v).toBe(defaultProps.data.length); case 2: return _context16.a(2); } }, _callee16); }))); it('should render rows', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee17() { var driver, _t26, _t27; return _regenerator().w(function (_context17) { while (1) switch (_context17.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 205, columnNumber: 35 } }))); _t26 = expect; _context17.n = 1; return driver.getRowText(0); case 1: _t26(_context17.v).toEqual(['0', 'value 1', 'value 2']); _t27 = expect; _context17.n = 2; return driver.getRowText(1); case 2: _t27(_context17.v).toEqual(['1', 'value 3', 'value 4']); case 3: return _context17.a(2); } }, _callee17); }))); it('should assign class to rows', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee18() { var driver, _t28; return _regenerator().w(function (_context18) { while (1) switch (_context18.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 211, columnNumber: 35 } }))); _t28 = expect; _context18.n = 1; return driver.getRowsWithClassCount(defaultProps.rowClass); case 1: _t28(_context18.v).toBe(defaultProps.data.length); case 2: return _context18.a(2); } }, _callee18); }))); it('should assign a dynamic class to rows', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee19() { var getClass, driver, _t29, _t30, _t31; return _regenerator().w(function (_context19) { while (1) switch (_context19.n) { case 0: getClass = function getClass(rowData) { return rowData.a.replace(/[\s]+/g, '-'); }; driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { dynamicRowClass: getClass, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 220, columnNumber: 9 } }))); _t29 = expect; _context19.n = 1; return driver.getRowsWithClassCount('value-1'); case 1: _t29(_context19.v).toBe(1); _t30 = expect; _context19.n = 2; return driver.getRowsWithClassCount('value-3'); case 2: _t30(_context19.v).toBe(1); _t31 = expect; _context19.n = 3; return driver.getRowsWithClassCount(defaultProps.rowClass); case 3: _t31(_context19.v).toBe(defaultProps.data.length); case 4: return _context19.a(2); } }, _callee19); }))); it('should assign dataHook to rows', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee20() { var rowDataHook, props, driver, _t32, _t33, _t34; return _regenerator().w(function (_context20) { while (1) switch (_context20.n) { case 0: rowDataHook = 'row-data-hook'; props = _objectSpread(_objectSpread({}, defaultProps), {}, { rowDataHook: rowDataHook }); driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 232, columnNumber: 35 } }))); _t32 = expect; _context20.n = 1; return driver.getRowsWithDataHook(rowDataHook); case 1: _t32(_context20.v[0].textContent).toBe('0value 1value 2'); _t33 = expect; _context20.n = 2; return driver.getRowsWithDataHook(rowDataHook); case 2: _t33(_context20.v[1].textContent).toBe('1value 3value 4'); _t34 = expect; _context20.n = 3; return driver.getRowsWithDataHook(rowDataHook); case 3: _t34(_context20.v).toHaveLength(defaultProps.data.length); case 4: return _context20.a(2); } }, _callee20); }))); it('should assign a dynamic dataHook to rows', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee21() { var calcDataHook, props, driver, _t35, _t36; return _regenerator().w(function (_context21) { while (1) switch (_context21.n) { case 0: calcDataHook = function calcDataHook(rowData, rowIndex) { return "row-index-".concat(rowIndex, "-a-").concat(rowData.a.replace(' ', '_')); }; props = _objectSpread(_objectSpread({}, defaultProps), {}, { rowDataHook: calcDataHook }); driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 248, columnNumber: 35 } }))); _t35 = expect; _context21.n = 1; return driver.getRowWithDataHook("row-index-0-a-value_1"); case 1: _t35(_context21.v.textContent).toBe('0value 1value 2'); _t36 = expect; _context21.n = 2; return driver.getRowWithDataHook("row-index-1-a-value_3"); case 2: _t36(_context21.v.textContent).toBe('1value 3value 4'); case 3: return _context21.a(2); } }, _callee21); }))); it('should get a row classes', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee22() { var getDynamicClass, driver, _t37; return _regenerator().w(function (_context22) { while (1) switch (_context22.n) { case 0: getDynamicClass = function getDynamicClass(rowData, rowNum) { return rowNum === 1 ? 'rowNum1' : ''; }; driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { dynamicRowClass: getDynamicClass, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 261, columnNumber: 9 } }))); _t37 = expect; _context22.n = 1; return driver.getRowClasses(1); case 1: _t37(_context22.v.sort()).toEqual(['class-name', 'rowNum1']); case 2: return _context22.a(2); } }, _callee22); }))); it('should remove table header from DOM', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee23() { var driver, _t38; return _regenerator().w(function (_context23) { while (1) switch (_context23.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { hideHeader: true, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 270, columnNumber: 35 } }))); _t38 = expect; _context23.n = 1; return driver.isDisplayingHeader(); case 1: _t38(_context23.v).toBe(false); case 2: return _context23.a(2); } }, _callee23); }))); it('should hide table header', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee24() { var driver, _t39; return _regenerator().w(function (_context24) { while (1) switch (_context24.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { hideHeaderAccessible: true, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 276, columnNumber: 9 } }))); _t39 = expect; _context24.n = 1; return driver.isHeaderVisible(); case 1: _t39(_context24.v).toBe(false); case 2: return _context24.a(2); } }, _callee24); }))); it('should override default table header styles', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee25() { var inlineThStyle, driver, _t40; return _regenerator().w(function (_context25) { while (1) switch (_context25.n) { case 0: inlineThStyle = { thPadding: '1px', thHeight: '2px', thFontSize: '3px', thBorder: '4px', thColor: 'rgb(18, 52, 86)', thOpacity: '0.8', thLetterSpacing: '1.5px' }; driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, inlineThStyle, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 292, columnNumber: 9 } }))); _t40 = expect; _context25.n = 1; return driver.getHeaderCellStyle(0); case 1: _t40(_context25.v).toEqual(expect.objectContaining({ padding: '1px', height: '2px', 'font-size': '3px', border: '4px', color: 'rgb(18, 52, 86)', opacity: '0.8', 'letter-spacing': '1.5px' })); case 2: return _context25.a(2); } }, _callee25); }))); it('should add a class to a table header row', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee26() { var driver, _t41; return _regenerator().w(function (_context26) { while (1) switch (_context26.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { headerRowClass: "custom-class", __self: _this, __source: { fileName: _jsxFileName, lineNumber: 309, columnNumber: 9 } }))); _t41 = expect; _context26.n = 1; return driver.getHeaderRowClasses(); case 1: _t41(_context26.v.sort()).toEqual(['custom-class']); case 2: return _context26.a(2); } }, _callee26); }))); it('should add a class to a table header', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee27() { var driver, _t42; return _regenerator().w(function (_context27) { while (1) switch (_context27.n) { case 0: driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, defaultProps, { headerClass: "custom-class", __self: _this, __source: { fileName: _jsxFileName, lineNumber: 318, columnNumber: 9 } }))); _t42 = expect; _context27.n = 1; return driver.getHeaderClasses(); case 1: _t42(_context27.v.sort()).toEqual(['custom-class']); case 2: return _context27.a(2); } }, _callee27); }))); it('should override default cell styles', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee28() { var clonedProps, driver, _t43; return _regenerator().w(function (_context28) { while (1) switch (_context28.n) { case 0: clonedProps = _objectSpread({}, defaultProps); clonedProps.columns.push({ title: 'c', render: function render() { return 'c'; }, style: { paddingLeft: '1px', height: '2px', width: '100px' } }); driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, clonedProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 336, columnNumber: 35 } }))); _t43 = expect; _context28.n = 1; return driver.getCellStyle(0, 3); case 1: _t43(_context28.v).toEqual(expect.objectContaining({ 'padding-left': '1px', height: '2px', width: '100px' })); case 2: return _context28.a(2); } }, _callee28); }))); it('should override default cell styles using function', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee29() { var clonedProps, driver, _t44; return _regenerator().w(function (_context29) { while (1) switch (_context29.n) { case 0: clonedProps = _objectSpread({}, defaultProps); clonedProps.columns.push({ title: 'c', render: function render() { return 'c'; }, style: function style(_column, _row, rowNum) { return { paddingLeft: rowNum + 'px' }; } }); driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, clonedProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 355, columnNumber: 35 } }))); _t44 = expect; _context29.n = 1; return driver.getCellStyle(1, 3); case 1: _t44(_context29.v).toEqual(expect.objectContaining({ 'padding-left': '1px' })); case 2: return _context29.a(2); } }, _callee29); }))); describe('row keys', function () { var createDefaultProps = function createDefaultProps() { return { id: 'id', data: [{ a: 'value 1', b: 'value 2' }, { a: 'value 3', b: 'value 4' }], columns: [{ title: 'Row Num', render: function render(row, rowNum) { return rowNum; } }, { title: 'A', render: function render(row) { return row.a; } }, { title: 'B', render: function render(row) { return row.b; } }], rowClass: 'class-name' }; }; it('should assign data.id as row keys', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee30() { var props, _render, container, getAllByRole, key0, key1; return _regenerator().w(function (_context30) { while (1) switch (_context30.n) { case 0: props = createDefaultProps(); props.data[0].id = '000'; props.data[1].id = '111'; _render = render(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 383, columnNumber: 52 } }))), container = _render.container, getAllByRole = _render.getAllByRole; key0 = container.querySelectorAll('[data-table-row="dataTableRow"]')[0].getAttribute('data-key'); expect(key0).toBe('000'); key1 = container.querySelectorAll('[ data-table-row="dataTableRow"]')[1].getAttribute('data-key'); expect(key1).toBe('111'); case 1: return _context30.a(2); } }, _callee30); }))); it('should use rowIndex as keys', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee31() { var _render2, container, key0, key1; return _regenerator().w(function (_context31) { while (1) switch (_context31.n) { case 0: _render2 = render(/*#__PURE__*/React.createElement(DataTable, _extends({}, createDefaultProps(), { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 399, columnNumber: 38 } }))), container = _render2.container; key0 = container.querySelectorAll('[data-table-row="dataTableRow"]')[0].getAttribute('data-key'); expect(key0).toBe('0'); key1 = container.querySelectorAll('[ data-table-row="dataTableRow"]')[1].getAttribute('data-key'); expect(key1).toBe('1'); case 1: return _context31.a(2); } }, _callee31); }))); }); it('should use rowIndex as data-index', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee32() { var _render3, container, rows, i; return _regenerator().w(function (_context32) { while (1) switch (_context32.n) { case 0: _render3 = render(/*#__PURE__*/React.createElement(DataTable, _extends({}, createDefaultProps(), { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 416, columnNumber: 36 } }))), container = _render3.container; rows = container.querySelectorAll('[data-table-row="dataTableRow"]'); for (i = 0; i < rows.length; i++) { expect(rows[i].getAttribute('data-index')).toBe("index-".concat(i)); } case 1: return _context32.a(2); } }, _callee32); }))); describe('clickableDataRow class', function () { it('should not assign the class to rows by default', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee33() { var props, driver, _t45; return _regenerator().w(function (_context33) { while (1) switch (_context33.n) { case 0: props = _objectSpread({}, defaultProps); driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 431, columnNumber: 37 } }))); _t45 = expect; _context33.n = 1; return driver.isRowClickable(0); case 1: _t45(_context33.v).toBe(false); case 2: return _context33.a(2); } }, _callee33); }))); it('should assign the class to rows when onRowClick prop is provided', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee34() { var props, driver, _t46; return _regenerator().w(function (_context34) { while (1) switch (_context34.n) { case 0: props = _objectSpread(_objectSpread({}, defaultProps), {}, { onRowClick: vi.fn() }); driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 442, columnNumber: 37 } }))); _t46 = expect; _context34.n = 1; return driver.isRowClickable(0); case 1: _t46(_context34.v).toBe(true); case 2: return _context34.a(2); } }, _callee34); }))); it('should not assign the class to rows when isRowDisabled returns true', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee35() { var props, driver, _t47; return _regenerator().w(function (_context35) { while (1) switch (_context35.n) { case 0: props = _objectSpread(_objectSpread({}, defaultProps), {}, { onRowClick: vi.fn(), isRowDisabled: function isRowDisabled() { return true; } }); driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 453, columnNumber: 37 } }))); _t47 = expect; _context35.n = 1; return driver.isRowClickable(0); case 1: _t47(_context35.v).toBe(false); case 2: return _context35.a(2); } }, _callee35); }))); }); describe('animatedDataRow class', function () { it('should not assign the class to rows by default', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee36() { var props, driver, _t48; return _regenerator().w(function (_context36) { while (1) switch (_context36.n) { case 0: props = _objectSpread({}, defaultProps); driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 462, columnNumber: 37 } }))); _t48 = expect; _context36.n = 1; return driver.isRowAnimated(0); case 1: _t48(_context36.v).toBe(false); case 2: return _context36.a(2); } }, _callee36); }))); it('should assign the class to rows when rowDetails prop is provided', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee37() { var props, driver, _t49; return _regenerator().w(function (_context37) { while (1) switch (_context37.n) { case 0: props = _objectSpread(_objectSpread({}, defaultProps), {}, { rowDetails: function rowDetails(row) { return /*#__PURE__*/React.createElement("span", { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 470, columnNumber: 30 } }, row.a); } }); driver = createDriver(/*#__PURE__*/React.createElement(DataTable, _extends({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 473, columnNumber: 37 } }))); _t49 = expect;