"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireDefault(require("react"));
var _unit = require("../../utils/test-utils/unit");
var _SortableGridBase = _interopRequireDefault(require("../SortableGridBase"));
var _TestBackend = _interopRequireDefault(require("../../DragDropContextProvider/TestBackend"));
var _DragDropContextProvider = _interopRequireDefault(require("../../DragDropContextProvider"));
var _SortableGridBasePrivateUni = require("./SortableGridBase.private.uni.driver");
var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/SortableGridBase/test/SortableGridBase.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; }
var defaultProps = {
  contentClassName: 'cl',
  dataHook: 'sortable-grid',
  containerId: 'sortable-grid',
  groupName: 'group',
  items: [{
    id: '1',
    text: 'item 1'
  }, {
    id: '2',
    text: 'item 2'
  }],
  renderItem: function renderItem(_ref) {
    var item = _ref.item;
    return /*#__PURE__*/_react["default"].createElement("div", {
      "data-hook": item.id,
      __self: _this,
      __source: {
        fileName: _jsxFileName,
        lineNumber: 21,
        columnNumber: 29
      }
    }, item.text);
  }
};
describe(_SortableGridBase["default"].displayName, function () {
  var renderSortableGridBaseSection = function renderSortableGridBaseSection() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultProps;
    return /*#__PURE__*/_react["default"].createElement(_DragDropContextProvider["default"], {
      backend: _TestBackend["default"],
      __self: _this,
      __source: {
        fileName: _jsxFileName,
        lineNumber: 26,
        columnNumber: 5
      }
    }, /*#__PURE__*/_react["default"].createElement(_SortableGridBase["default"], (0, _extends2["default"])({}, props, {
      __self: _this,
      __source: {
        fileName: _jsxFileName,
        lineNumber: 27,
        columnNumber: 7
      }
    })));
  };
  var render = (0, _unit.createRendererWithUniDriver)(_SortableGridBasePrivateUni.sortableGridBasePrivateDriverFactory);
  afterEach(function () {
    (0, _unit.cleanup)();
  });
  it('should exists', /*#__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(renderSortableGridBaseSection()), driver = _render.driver;
          _context.t0 = expect;
          _context.next = 4;
          return driver.exists();
        case 4:
          _context.t1 = _context.sent;
          (0, _context.t0)(_context.t1).toBe(true);
        case 6:
        case "end":
          return _context.stop();
      }
    }, _callee);
  })));
  it('should NOT render fixed element before draggable list', /*#__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(renderSortableGridBaseSection()), driver = _render2.driver;
          _context2.t0 = expect;
          _context2.next = 4;
          return driver.startFixedElementExists();
        case 4:
          _context2.t1 = _context2.sent;
          (0, _context2.t0)(_context2.t1).toBe(false);
        case 6:
        case "end":
          return _context2.stop();
      }
    }, _callee2);
  })));
  it('should render fixed element before draggable list', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
    var _render3, driver;
    return _regenerator["default"].wrap(function _callee3$(_context3) {
      while (1) switch (_context3.prev = _context3.next) {
        case 0:
          _render3 = render(renderSortableGridBaseSection(_objectSpread(_objectSpread({}, defaultProps), {}, {
            startFixedElement: /*#__PURE__*/_react["default"].createElement("span", {
              __self: _this,
              __source: {
                fileName: _jsxFileName,
                lineNumber: 53,
                columnNumber: 28
              }
            })
          }))), driver = _render3.driver;
          _context3.t0 = expect;
          _context3.next = 4;
          return driver.startFixedElementExists();
        case 4:
          _context3.t1 = _context3.sent;
          (0, _context3.t0)(_context3.t1).toBe(true);
        case 6:
        case "end":
          return _context3.stop();
      }
    }, _callee3);
  })));
  it('should NOT render fixed element after draggable list', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
    var _render4, driver;
    return _regenerator["default"].wrap(function _callee4$(_context4) {
      while (1) switch (_context4.prev = _context4.next) {
        case 0:
          _render4 = render(renderSortableGridBaseSection()), driver = _render4.driver;
          _context4.t0 = expect;
          _context4.next = 4;
          return driver.endFixedElementExists();
        case 4:
          _context4.t1 = _context4.sent;
          (0, _context4.t0)(_context4.t1).toBe(false);
        case 6:
        case "end":
          return _context4.stop();
      }
    }, _callee4);
  })));
  it('should render fixed element after draggable list', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
    var _render5, driver;
    return _regenerator["default"].wrap(function _callee5$(_context5) {
      while (1) switch (_context5.prev = _context5.next) {
        case 0:
          _render5 = render(renderSortableGridBaseSection(_objectSpread(_objectSpread({}, defaultProps), {}, {
            endFixedElement: /*#__PURE__*/_react["default"].createElement("span", {
              __self: _this,
              __source: {
                fileName: _jsxFileName,
                lineNumber: 68,
                columnNumber: 26
              }
            })
          }))), driver = _render5.driver;
          _context5.t0 = expect;
          _context5.next = 4;
          return driver.endFixedElementExists();
        case 4:
          _context5.t1 = _context5.sent;
          (0, _context5.t0)(_context5.t1).toBe(true);
        case 6:
        case "end":
          return _context5.stop();
      }
    }, _callee5);
  })));
});