UNPKG

@wix/design-system

Version:

@wix/design-system

1,193 lines (1,191 loc) 103 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _react = _interopRequireDefault(require("react")); var _react2 = require("../utils/test-utils/react"); var _Table = require("./Table"); var _TablePrivateUni = require("./Table.private.uni.driver"); var _TableFloatingScrollBar = require("./components/TableFloatingScrollBar"); var _excluded = ["data"], _excluded2 = ["data"]; var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/Table/Table.spec.jsx", _this = void 0; 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) { (0, _defineProperty2["default"])(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; } describe('Table', function () { var render = (0, _react2.createRendererWithUniDriver)(_TablePrivateUni.tablePrivateUniDriverFactory); var ID_1 = 'aaa', ID_2 = 'bbb'; var defaultProps = { id: 'id', data: [{ id: ID_1, a: 'value 1', b: 'value 2' }, { id: ID_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', showSelection: true, children: /*#__PURE__*/_react["default"].createElement(_Table.Table.Content, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 28, columnNumber: 15 } }) }; var noneSelected = function noneSelected() { return []; }; var firstSelected = function firstSelected() { return [ID_1]; }; var secondSelected = function secondSelected() { return [ID_2]; }; var allSelected = function allSelected() { return [ID_1, ID_2]; }; afterEach(function () { return (0, _react2.cleanup)(); }); it('should render the table', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() { var _render, driver; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _render = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 38, columnNumber: 31 } }))), driver = _render.driver; _context.t0 = expect; _context.next = 4; return driver.getRowsCount(); case 4: _context.t1 = _context.sent; (0, _context.t0)(_context.t1).toBe(2); _context.t2 = expect; _context.next = 9; return driver.getCellTextValue(0, 1); case 9: _context.t3 = _context.sent; (0, _context.t2)(_context.t3).toBe('0'); _context.t4 = expect; _context.next = 14; return driver.getCellTextValue(0, 2); case 14: _context.t5 = _context.sent; (0, _context.t4)(_context.t5).toBe(defaultProps.data[0].a); _context.t6 = expect; _context.next = 19; return driver.getCellTextValue(0, 3); case 19: _context.t7 = _context.sent; (0, _context.t6)(_context.t7).toBe(defaultProps.data[0].b); _context.t8 = expect; _context.next = 24; return driver.getCellTextValue(1, 1); case 24: _context.t9 = _context.sent; (0, _context.t8)(_context.t9).toBe('1'); _context.t10 = expect; _context.next = 29; return driver.getCellTextValue(1, 2); case 29: _context.t11 = _context.sent; (0, _context.t10)(_context.t11).toBe(defaultProps.data[1].a); _context.t12 = expect; _context.next = 34; return driver.getCellTextValue(1, 3); case 34: _context.t13 = _context.sent; (0, _context.t12)(_context.t13).toBe(defaultProps.data[1].b); case 36: case "end": return _context.stop(); } }, _callee); }))); it('should pass id prop to child', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() { var _render2, driver; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _render2 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 49, columnNumber: 31 } }))), driver = _render2.driver; _context2.t0 = expect; _context2.next = 4; return driver.hasChildWithId(defaultProps.id); case 4: _context2.t1 = _context2.sent; (0, _context2.t0)(_context2.t1).toBe(true); case 6: case "end": return _context2.stop(); } }, _callee2); }))); describe('showSelection prop', function () { it('should display selection column', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() { var _render3, driver, rowCheckboxDriver, bulkSelectionCheckboxDriver; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: _render3 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { selectedIds: firstSelected(), __self: _this, __source: { fileName: _jsxFileName, lineNumber: 56, columnNumber: 9 } }))), driver = _render3.driver; _context3.next = 3; return driver.getRowCheckboxDriver(1); case 3: rowCheckboxDriver = _context3.sent; _context3.t0 = expect; _context3.next = 7; return rowCheckboxDriver.exists(); case 7: _context3.t1 = _context3.sent; (0, _context3.t0)(_context3.t1).toBe(true); _context3.next = 11; return driver.getBulkSelectionCheckboxDriver(); case 11: bulkSelectionCheckboxDriver = _context3.sent; _context3.t2 = expect; _context3.next = 15; return bulkSelectionCheckboxDriver.exists(); case 15: _context3.t3 = _context3.sent; (0, _context3.t2)(_context3.t3).toBe(true); case 17: case "end": return _context3.stop(); } }, _callee3); }))); it('should not display selection column', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() { var _render4, driver, rowCheckboxDriver, bulkSelectionCheckboxDriver; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: _render4 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { showSelection: false, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 67, columnNumber: 9 } }))), driver = _render4.driver; _context4.next = 3; return driver.getRowCheckboxDriver(1); case 3: rowCheckboxDriver = _context4.sent; _context4.t0 = expect; _context4.next = 7; return rowCheckboxDriver.exists(); case 7: _context4.t1 = _context4.sent; (0, _context4.t0)(_context4.t1).toBe(false); _context4.next = 11; return driver.getBulkSelectionCheckboxDriver(); case 11: bulkSelectionCheckboxDriver = _context4.sent; _context4.t2 = expect; _context4.next = 15; return bulkSelectionCheckboxDriver.exists(); case 15: _context4.t3 = _context4.sent; (0, _context4.t2)(_context4.t3).toBe(false); case 17: case "end": return _context4.stop(); } }, _callee4); }))); }); describe('unselectable prop', function () { it('should not display selection checkbox when row.unselectable is true', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() { var data, otherDefaultProps, dataWithUnselectable, _render5, driver, firstRowCheckboxDriver, secondRowCheckboxDriver; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: data = defaultProps.data, otherDefaultProps = (0, _objectWithoutProperties2["default"])(defaultProps, _excluded); dataWithUnselectable = [{ a: 'value 3', b: 'value 4', unselectable: true }].concat((0, _toConsumableArray2["default"])(data)); _render5 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({ data: dataWithUnselectable }, otherDefaultProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 85, columnNumber: 9 } }))), driver = _render5.driver; _context5.next = 5; return driver.getRowCheckboxDriver(0); case 5: firstRowCheckboxDriver = _context5.sent; _context5.t0 = expect; _context5.next = 9; return firstRowCheckboxDriver.exists(); case 9: _context5.t1 = _context5.sent; (0, _context5.t0)(_context5.t1).toBe(false); _context5.next = 13; return driver.getRowCheckboxDriver(1); case 13: secondRowCheckboxDriver = _context5.sent; _context5.t2 = expect; _context5.next = 17; return secondRowCheckboxDriver.exists(); case 17: _context5.t3 = _context5.sent; (0, _context5.t2)(_context5.t3).toBe(true); case 19: case "end": return _context5.stop(); } }, _callee5); }))); }); describe('hideBulkSelectionCheckbox prop', function () { it('should display selection checkbox in header by default', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() { var _render6, driver, rowCheckboxDriver, bulkSelectionCheckboxDriver; return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: _render6 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { selectedIds: firstSelected(), __self: _this, __source: { fileName: _jsxFileName, lineNumber: 97, columnNumber: 9 } }))), driver = _render6.driver; _context6.next = 3; return driver.getRowCheckboxDriver(1); case 3: rowCheckboxDriver = _context6.sent; _context6.t0 = expect; _context6.next = 7; return rowCheckboxDriver.exists(); case 7: _context6.t1 = _context6.sent; (0, _context6.t0)(_context6.t1).toBe(true); _context6.next = 11; return driver.getBulkSelectionCheckboxDriver(); case 11: bulkSelectionCheckboxDriver = _context6.sent; _context6.t2 = expect; _context6.next = 15; return bulkSelectionCheckboxDriver.exists(); case 15: _context6.t3 = _context6.sent; (0, _context6.t2)(_context6.t3).toBe(true); case 17: case "end": return _context6.stop(); } }, _callee6); }))); it('should not display selection checkbox in header when set to true', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7() { var _render7, driver, rowCheckboxDriver, bulkSelectionCheckboxDriver; return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: _render7 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { hideBulkSelectionCheckbox: true, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 108, columnNumber: 9 } }))), driver = _render7.driver; _context7.next = 3; return driver.getRowCheckboxDriver(1); case 3: rowCheckboxDriver = _context7.sent; _context7.t0 = expect; _context7.next = 7; return rowCheckboxDriver.exists(); case 7: _context7.t1 = _context7.sent; (0, _context7.t0)(_context7.t1).toBe(true); _context7.next = 11; return driver.getBulkSelectionCheckboxDriver(); case 11: bulkSelectionCheckboxDriver = _context7.sent; _context7.t2 = expect; _context7.next = 15; return bulkSelectionCheckboxDriver.exists(); case 15: _context7.t3 = _context7.sent; (0, _context7.t2)(_context7.t3).toBe(false); case 17: case "end": return _context7.stop(); } }, _callee7); }))); }); describe('selectedIds prop', function () { it('should select rows according to selectedIds prop given string ids', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8() { var _render8, driver; return _regenerator["default"].wrap(function _callee8$(_context8) { while (1) switch (_context8.prev = _context8.next) { case 0: _render8 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { selectedIds: firstSelected(), __self: _this, __source: { fileName: _jsxFileName, lineNumber: 121, columnNumber: 9 } }))), driver = _render8.driver; _context8.t0 = expect; _context8.next = 4; return driver.isRowSelected(0); case 4: _context8.t1 = _context8.sent; (0, _context8.t0)(_context8.t1).toBe(true); _context8.t2 = expect; _context8.next = 9; return driver.isRowSelected(1); case 9: _context8.t3 = _context8.sent; (0, _context8.t2)(_context8.t3).toBe(false); case 11: case "end": return _context8.stop(); } }, _callee8); }))); it('should select rows according to selectedIds prop given numeric ids', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9() { var _render9, driver; return _regenerator["default"].wrap(function _callee9$(_context9) { while (1) switch (_context9.prev = _context9.next) { case 0: _render9 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { data: [{ id: 1111, a: 'value 1', b: 'value 2' }, { id: 2222, a: 'value 3', b: 'value 4' }], selectedIds: [1111], __self: _this, __source: { fileName: _jsxFileName, lineNumber: 129, columnNumber: 9 } }))), driver = _render9.driver; _context9.t0 = expect; _context9.next = 4; return driver.isRowSelected(0); case 4: _context9.t1 = _context9.sent; (0, _context9.t0)(_context9.t1).toBe(true); _context9.t2 = expect; _context9.next = 9; return driver.isRowSelected(1); case 9: _context9.t3 = _context9.sent; (0, _context9.t2)(_context9.t3).toBe(false); case 11: case "end": return _context9.stop(); } }, _callee9); }))); it('should select rows according to selectedIds prop given row index as ids', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee0() { var _render0, driver; return _regenerator["default"].wrap(function _callee0$(_context0) { while (1) switch (_context0.prev = _context0.next) { case 0: _render0 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { data: [{ a: 'value 1', b: 'value 2' }, { a: 'value 3', b: 'value 4' }], selectedIds: [0], __self: _this, __source: { fileName: _jsxFileName, lineNumber: 144, columnNumber: 9 } }))), driver = _render0.driver; _context0.t0 = expect; _context0.next = 4; return driver.isRowSelected(0); case 4: _context0.t1 = _context0.sent; (0, _context0.t0)(_context0.t1).toBe(true); _context0.t2 = expect; _context0.next = 9; return driver.isRowSelected(1); case 9: _context0.t3 = _context0.sent; (0, _context0.t2)(_context0.t3).toBe(false); case 11: case "end": return _context0.stop(); } }, _callee0); }))); it('should update selection if selection prop has change', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee1() { var selectedIds, _render1, driver, rerender; return _regenerator["default"].wrap(function _callee1$(_context1) { while (1) switch (_context1.prev = _context1.next) { case 0: selectedIds = []; _render1 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { selectedIds: selectedIds, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 160, columnNumber: 9 } }))), driver = _render1.driver, rerender = _render1.rerender; _context1.t0 = expect; _context1.next = 5; return driver.isRowSelected(0); case 5: _context1.t1 = _context1.sent; (0, _context1.t0)(_context1.t1).toBe(false); rerender(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { selectedIds: firstSelected(), __self: _this, __source: { fileName: _jsxFileName, lineNumber: 163, columnNumber: 16 } }))); _context1.t2 = expect; _context1.next = 11; return driver.isRowSelected(0); case 11: _context1.t3 = _context1.sent; (0, _context1.t2)(_context1.t3).toBe(true); case 13: case "end": return _context1.stop(); } }, _callee1); }))); }); describe('stickyColumns prop', function () { it('should display sticky columns', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee10() { var _render10, driver; return _regenerator["default"].wrap(function _callee10$(_context10) { while (1) switch (_context10.prev = _context10.next) { case 0: _render10 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { stickyColumns: 2, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 170, columnNumber: 33 } }))), driver = _render10.driver; _context10.t0 = expect; _context10.next = 4; return driver.getStickyColumnsCount(); case 4: _context10.t1 = _context10.sent; (0, _context10.t0)(_context10.t1).toBe(2); case 6: case "end": return _context10.stop(); } }, _callee10); }))); }); describe('setSelectedIds', function () { it('should select rows when setSelectedIds is called', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee12() { var tableInst, _render11, driver; return _regenerator["default"].wrap(function _callee12$(_context12) { while (1) switch (_context12.prev = _context12.next) { case 0: _render11 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { selectedIds: noneSelected(), ref: function ref(c) { return tableInst = c; }, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 179, columnNumber: 9 } }))), driver = _render11.driver; _context12.t0 = expect; _context12.next = 4; return driver.isRowSelected(0); case 4: _context12.t1 = _context12.sent; (0, _context12.t0)(_context12.t1).toBe(false); _context12.t2 = expect; _context12.next = 9; return driver.isRowSelected(1); case 9: _context12.t3 = _context12.sent; (0, _context12.t2)(_context12.t3).toBe(false); _context12.next = 13; return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee11() { return _regenerator["default"].wrap(function _callee11$(_context11) { while (1) switch (_context11.prev = _context11.next) { case 0: tableInst.setSelectedIds(allSelected()); case 1: case "end": return _context11.stop(); } }, _callee11); }))); case 13: _context12.t4 = expect; _context12.next = 16; return driver.isRowSelected(0); case 16: _context12.t5 = _context12.sent; (0, _context12.t4)(_context12.t5).toBe(true); _context12.t6 = expect; _context12.next = 21; return driver.isRowSelected(1); case 21: _context12.t7 = _context12.sent; (0, _context12.t6)(_context12.t7).toBe(true); case 23: case "end": return _context12.stop(); } }, _callee12); }))); }); describe('row selection', function () { it('should select row when checkbox clicked given row not selected', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee13() { var _render12, driver; return _regenerator["default"].wrap(function _callee13$(_context13) { while (1) switch (_context13.prev = _context13.next) { case 0: _render12 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { selectedIds: firstSelected(), __self: _this, __source: { fileName: _jsxFileName, lineNumber: 198, columnNumber: 9 } }))), driver = _render12.driver; _context13.next = 3; return driver.clickRowCheckbox(1); case 3: _context13.t0 = expect; _context13.next = 6; return driver.isRowSelected(1); case 6: _context13.t1 = _context13.sent; (0, _context13.t0)(_context13.t1).toBe(true); case 8: case "end": return _context13.stop(); } }, _callee13); }))); it('should unselect row when checkbox clicked given row selected', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee14() { var _render13, driver; return _regenerator["default"].wrap(function _callee14$(_context14) { while (1) switch (_context14.prev = _context14.next) { case 0: _render13 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { selectedIds: allSelected(), __self: _this, __source: { fileName: _jsxFileName, lineNumber: 206, columnNumber: 9 } }))), driver = _render13.driver; _context14.next = 3; return driver.clickRowCheckbox(1); case 3: _context14.t0 = expect; _context14.next = 6; return driver.isRowSelected(1); case 6: _context14.t1 = _context14.sent; (0, _context14.t0)(_context14.t1).toBe(false); case 8: case "end": return _context14.stop(); } }, _callee14); }))); it("should disable bulk selection when passed 'selectionDisabled' prop", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee15() { var _render14, driver; return _regenerator["default"].wrap(function _callee15$(_context15) { while (1) switch (_context15.prev = _context15.next) { case 0: _render14 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { selectionDisabled: true, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 213, columnNumber: 33 } }))), driver = _render14.driver; _context15.t0 = expect; _context15.next = 4; return driver.isBulkSelectionDisabled(); case 4: _context15.t1 = _context15.sent; (0, _context15.t0)(_context15.t1).toBe(true); case 6: case "end": return _context15.stop(); } }, _callee15); }))); it("should disable bulk selection when no item is selectable", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee16() { var _render15, driver; return _regenerator["default"].wrap(function _callee16$(_context16) { while (1) switch (_context16.prev = _context16.next) { case 0: _render15 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { selectionDisabled: function selectionDisabled() { return true; }, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 219, columnNumber: 9 } }))), driver = _render15.driver; _context16.t0 = expect; _context16.next = 4; return driver.isBulkSelectionDisabled(); case 4: _context16.t1 = _context16.sent; (0, _context16.t0)(_context16.t1).toBe(true); case 6: case "end": return _context16.stop(); } }, _callee16); }))); it("should not disable bulk selection when some items are selectable", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee17() { var _render16, driver; return _regenerator["default"].wrap(function _callee17$(_context17) { while (1) switch (_context17.prev = _context17.next) { case 0: _render16 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { selectionDisabled: function selectionDisabled(rowData) { return rowData.id === ID_1; }, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 226, columnNumber: 9 } }))), driver = _render16.driver; _context17.t0 = expect; _context17.next = 4; return driver.isBulkSelectionDisabled(); case 4: _context17.t1 = _context17.sent; (0, _context17.t0)(_context17.t1).toBe(false); case 6: case "end": return _context17.stop(); } }, _callee17); }))); it("should disable row selection when passed 'selectionDisabled' prop", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee18() { var _render17, driver; return _regenerator["default"].wrap(function _callee18$(_context18) { while (1) switch (_context18.prev = _context18.next) { case 0: _render17 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { selectionDisabled: true, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 235, columnNumber: 33 } }))), driver = _render17.driver; _context18.t0 = expect; _context18.next = 4; return driver.isRowSelectionDisabled(0); case 4: _context18.t1 = _context18.sent; (0, _context18.t0)(_context18.t1).toBe(true); case 6: case "end": return _context18.stop(); } }, _callee18); }))); it("should disable row selection when passed selectionDisabled true", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee19() { var _render18, driver; return _regenerator["default"].wrap(function _callee19$(_context19) { while (1) switch (_context19.prev = _context19.next) { case 0: _render18 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { selectedIds: [], selectionDisabled: true, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 241, columnNumber: 9 } }))), driver = _render18.driver; _context19.next = 3; return driver.clickRowCheckbox(0); case 3: _context19.t0 = expect; _context19.next = 6; return driver.isRowSelected(0); case 6: _context19.t1 = _context19.sent; (0, _context19.t0)(_context19.t1).toBe(false); case 8: case "end": return _context19.stop(); } }, _callee19); }))); describe('checkbox column sticky', function () { var dragAndDrop = { DroppableTableContext: function DroppableTableContext(_ref20) { var children = _ref20.children; return children; }, DraggableTableRow: function DraggableTableRow(_ref21) { var children = _ref21.children; return children; }, createDragHandleColumn: function createDragHandleColumn() { return { key: 'drag-handle', dataHook: 'drag-handle', title: '', width: '14px', render: function render() { return /*#__PURE__*/_react["default"].createElement("span", { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 256, columnNumber: 25 } }, "::"); } }; } }; it('should set checkbox column large width when it is the last sticky column', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee20() { var _render19, driver; return _regenerator["default"].wrap(function _callee20$(_context20) { while (1) switch (_context20.prev = _context20.next) { case 0: _render19 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { showSelection: true, horizontalScroll: true, stickyColumns: 1, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 262, columnNumber: 11 } }))), driver = _render19.driver; _context20.t0 = expect; _context20.next = 4; return driver.getStickyColumnsCount(); case 4: _context20.t1 = _context20.sent; (0, _context20.t0)(_context20.t1).toBe(1); _context20.t2 = expect; _context20.next = 9; return driver.getHeaderCellStyle(0); case 9: _context20.t3 = _context20.sent; (0, _context20.t2)(_context20.t3).toEqual(expect.objectContaining({ width: '34px' })); case 11: case "end": return _context20.stop(); } }, _callee20); }))); it('should set checkbox column large width when it is the last sticky column with drag handle', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee21() { var _render20, driver; return _regenerator["default"].wrap(function _callee21$(_context21) { while (1) switch (_context21.prev = _context21.next) { case 0: _render20 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { showSelection: true, horizontalScroll: true, stickyColumns: 2, dragAndDrop: dragAndDrop, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 279, columnNumber: 11 } }))), driver = _render20.driver; _context21.t0 = expect; _context21.next = 4; return driver.getStickyColumnsCount(); case 4: _context21.t1 = _context21.sent; (0, _context21.t0)(_context21.t1).toBe(2); _context21.t2 = expect; _context21.next = 9; return driver.getHeaderCellStyle(1); case 9: _context21.t3 = _context21.sent; (0, _context21.t2)(_context21.t3).toEqual(expect.objectContaining({ width: '34px' })); case 11: case "end": return _context21.stop(); } }, _callee21); }))); it('should set checkbox column small width when it is not the last sticky column with drag handle', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee22() { var _render21, driver; return _regenerator["default"].wrap(function _callee22$(_context22) { while (1) switch (_context22.prev = _context22.next) { case 0: _render21 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { showSelection: true, horizontalScroll: true, stickyColumns: 3, dragAndDrop: dragAndDrop, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 297, columnNumber: 11 } }))), driver = _render21.driver; _context22.t0 = expect; _context22.next = 4; return driver.getStickyColumnsCount(); case 4: _context22.t1 = _context22.sent; (0, _context22.t0)(_context22.t1).toBe(3); _context22.t2 = expect; _context22.next = 9; return driver.getHeaderCellStyle(1); case 9: _context22.t3 = _context22.sent; (0, _context22.t2)(_context22.t3).toEqual(expect.objectContaining({ width: '12px' })); case 11: case "end": return _context22.stop(); } }, _callee22); }))); }); describe('when passed selectionDisabled prop as function', function () { var tableProps; var selectionDisabled = function selectionDisabled(rowData) { return rowData.id === ID_1; }; beforeEach(function () { tableProps = _objectSpread(_objectSpread({}, defaultProps), {}, { selectionDisabled: selectionDisabled }); }); it("should disable checkboxes that match 'selectionDisabled' prop", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee23() { var _render22, driver; return _regenerator["default"].wrap(function _callee23$(_context23) { while (1) switch (_context23.prev = _context23.next) { case 0: _render22 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, tableProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 324, columnNumber: 35 } }))), driver = _render22.driver; _context23.t0 = expect; _context23.next = 4; return driver.isRowSelectionDisabled(0); case 4: _context23.t1 = _context23.sent; (0, _context23.t0)(_context23.t1).toBe(true); _context23.t2 = expect; _context23.next = 9; return driver.isRowSelectionDisabled(1); case 9: _context23.t3 = _context23.sent; (0, _context23.t2)(_context23.t3).toBe(false); case 11: case "end": return _context23.stop(); } }, _callee23); }))); it("should disable row selection when it matches 'selectionDisabled' prop", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee24() { var _render23, driver; return _regenerator["default"].wrap(function _callee24$(_context24) { while (1) switch (_context24.prev = _context24.next) { case 0: _render23 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, tableProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 330, columnNumber: 35 } }))), driver = _render23.driver; _context24.next = 3; return driver.clickRowCheckbox(0); case 3: _context24.t0 = expect; _context24.next = 6; return driver.isRowSelected(0); case 6: _context24.t1 = _context24.sent; (0, _context24.t0)(_context24.t1).toBe(false); case 8: case "end": return _context24.stop(); } }, _callee24); }))); it("should not disable row selection when it does not match 'selectionDisabled' prop", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee25() { var _render24, driver; return _regenerator["default"].wrap(function _callee25$(_context25) { while (1) switch (_context25.prev = _context25.next) { case 0: _render24 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, tableProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 336, columnNumber: 35 } }))), driver = _render24.driver; _context25.next = 3; return driver.clickRowCheckbox(1); case 3: _context25.t0 = expect; _context25.next = 6; return driver.isRowSelected(1); case 6: _context25.t1 = _context25.sent; (0, _context25.t0)(_context25.t1).toBe(true); case 8: case "end": return _context25.stop(); } }, _callee25); }))); }); describe('tooltip on checkbox', function () { it('should not be displayed if checkboxTooltipContent is not passed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee26() { var _render25, driver; return _regenerator["default"].wrap(function _callee26$(_context26) { while (1) switch (_context26.prev = _context26.next) { case 0: _render25 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, defaultProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 345, columnNumber: 35 } }))), driver = _render25.driver; _context26.t0 = expect; _context26.next = 4; return driver.isSelectionTooltipEnabled(0); case 4: _context26.t1 = _context26.sent; (0, _context26.t0)(_context26.t1).toBe(false); case 6: case "end": return _context26.stop(); } }, _callee26); }))); it('should be displayed if checkboxTooltipContent returns a truthy value', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee27() { var tooltipContent, props, _render26, driver; return _regenerator["default"].wrap(function _callee27$(_context27) { while (1) switch (_context27.prev = _context27.next) { case 0: tooltipContent = 'some tooltip content'; props = _objectSpread({}, defaultProps); props.data[1].checkboxTooltipContent = tooltipContent; _render26 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 354, columnNumber: 35 } }))), driver = _render26.driver; _context27.t0 = expect; _context27.next = 7; return driver.isSelectionTooltipEnabled(1); case 7: _context27.t1 = _context27.sent; (0, _context27.t0)(_context27.t1).toBe(true); case 9: case "end": return _context27.stop(); } }, _callee27); }))); it('should display with content of returned value from checkboxTooltipContent', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee28() { var tooltipContent, props, _render27, driver; return _regenerator["default"].wrap(function _callee28$(_context28) { while (1) switch (_context28.prev = _context28.next) { case 0: tooltipContent = 'some tooltip content'; props = _objectSpread({}, defaultProps); props.data[1].checkboxTooltipContent = tooltipContent; _render27 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 364, columnNumber: 35 } }))), driver = _render27.driver; _context28.t0 = expect; _context28.next = 7; return driver.getSelectionTooltipContent(1); case 7: _context28.t1 = _context28.sent; (0, _context28.t0)(_context28.t1).toBe(tooltipContent); case 9: case "end": return _context28.stop(); } }, _callee28); }))); }); }); describe('re-render', function () { it('should re-render on data update', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee29() { var props, data, _render28, driver, rerender, newValue, COLUMN_A_INDEX, ROW_INDEX; return _regenerator["default"].wrap(function _callee29$(_context29) { while (1) switch (_context29.prev = _context29.next) { case 0: props = { id: 'id', 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' }; data = [{ a: 'value 1', b: 'value 2' }, { a: 'value 3', b: 'value 4' }]; _render28 = render(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, props, { data: data, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 386, columnNumber: 43 } }))), driver = _render28.driver, rerender = _render28.rerender; newValue = 'value 1 changed'; COLUMN_A_INDEX = 1; ROW_INDEX = 0; data[ROW_INDEX].a = newValue; rerender(/*#__PURE__*/_react["default"].createElement(_Table.Table, (0, _extends2["default"])({}, props, { data: data, __self: _this, __source: { fileName: _jsxFileName,