UNPKG

@wix/design-system

Version:

@wix/design-system

165 lines (164 loc) 5.16 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireDefault(require("react")); var _react2 = require("../../utils/test-utils/react"); var _DraggableUni = require("./Draggable.uni.driver"); var _Draggable = require("./Draggable"); var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/DragAndDrop/Draggable/Draggable.spec.jsx", _this = void 0; var renderDraggableSet = function renderDraggableSet(_ref) { var onDragStart = _ref.onDragStart, onDragEnd = _ref.onDragEnd, onDrop = _ref.onDrop, onHover = _ref.onHover; var commonProps = { renderItem: function renderItem(_ref2) { var item = _ref2.item; return /*#__PURE__*/_react["default"].createElement("div", { "data-hook": "item-".concat(item.id), __self: _this, __source: { fileName: _jsxFileName, lineNumber: 14, columnNumber: 7 } }, item.text); }, onDragStart: onDragStart, onDragEnd: onDragEnd, onDrop: onDrop, onHover: onHover, setWrapperNode: function setWrapperNode() {}, containerId: 'container-1', groupName: 'group-1' }; var items = [{ id: '0', item: { text: 'item 1', id: '0' }, index: 0 }, { id: '1', item: { text: 'item 2', id: '1' }, index: 1 }]; return /*#__PURE__*/_react["default"].createElement(_Draggable.Draggable.Manager, { dataHook: "dnd-provider", __self: _this, __source: { fileName: _jsxFileName, lineNumber: 39, columnNumber: 5 } }, items.map(function (item) { return /*#__PURE__*/_react["default"].createElement(_Draggable.Draggable.Item, (0, _extends2["default"])({ key: item.id }, item, commonProps, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 41, columnNumber: 9 } })); })); }; describe('Draggable', function () { describe('[async]', function () { runTests((0, _react2.createRendererWithUniDriver)(_DraggableUni.draggableUniDriverFactory)); }); }); function runTests(render) { afterEach(function () { return (0, _react2.cleanup)(); }); it('beginDrag/dragOver/endDrag', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() { var onDragStart, onDragEnd, onDrop, onHover, _render, driver; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: onDragStart = vi.fn(); onDragEnd = vi.fn(); onDrop = vi.fn(); onHover = vi.fn(); _render = render(renderDraggableSet({ onDragStart: onDragStart, onDragEnd: onDragEnd, onDrop: onDrop, onHover: onHover })), driver = _render.driver; _context.next = 7; return driver.beginDrag({ dataHook: 'item-0' }); case 7: expect(onDragStart).toHaveBeenCalledWith({ containerId: 'container-1', groupName: 'group-1', id: '0', index: 0, item: { text: 'item 1', id: '0' } }); expect(onDragEnd).toHaveBeenCalledTimes(0); expect(onDrop).toHaveBeenCalledTimes(0); expect(onHover).toHaveBeenCalledTimes(0); _context.next = 13; return driver.dragOver({ dataHook: 'item-1' }); case 13: expect(onDragStart).toHaveBeenCalledTimes(1); expect(onHover).toHaveBeenCalledWith({ id: '0', addedIndex: 1, removedIndex: 0, item: { text: 'item 1', id: '0' } }); expect(onDrop).toHaveBeenCalledTimes(0); expect(onDragEnd).toHaveBeenCalledTimes(0); _context.next = 19; return driver.endDrag(); case 19: expect(onDragStart).toHaveBeenCalledTimes(1); expect(onHover).toHaveBeenCalledTimes(1); expect(onDrop).toHaveBeenCalledWith({ addedIndex: 1, addedToContainerId: 'container-1', removedFromContainerId: 'container-1', removedIndex: 0, payload: { text: 'item 1', id: '0' } }); expect(onDragEnd).toHaveBeenCalledWith({ containerId: 'container-1', groupName: 'group-1', id: '0', index: 0, item: { text: 'item 1', id: '0' } }); case 23: case "end": return _context.stop(); } }, _callee); }))); }