@wix/design-system
Version:
@wix/design-system
165 lines (164 loc) • 5.16 kB
JavaScript
"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);
})));
}