wix-style-react
Version:
53 lines (43 loc) • 1.82 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.carouselDriverFactory = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _testUtils = _interopRequireDefault(require("react-dom/test-utils"));
var carouselDriverFactory = function carouselDriverFactory(_ref) {
var element = _ref.element;
// It turns out that react-slick duplicates the children, so we ditch the cloned nodes
var withoutClonedNodes = function withoutClonedNodes() {
var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return ".slick-slide:not(.slick-cloned) ".concat(selector);
};
return {
exists: function exists() {
return !!element;
},
isLoading: function isLoading() {
var loader = element.querySelector('[data-hook="loader"]');
return !!loader;
},
getChildren: function getChildren() {
return element.querySelectorAll(withoutClonedNodes());
},
getImages: function getImages() {
// Converting the result from NodeList to a real array
return (0, _toConsumableArray2["default"])(element.querySelectorAll(withoutClonedNodes('[data-hook="carousel-img"]'))).map(function (img) {
return img.src;
});
},
clickPrevious: function clickPrevious() {
var prevButton = element.querySelector('[data-hook="prev-button"]');
_testUtils["default"].Simulate.click(prevButton);
},
clickNext: function clickNext() {
var nextButton = element.querySelector('[data-hook="next-button"]');
_testUtils["default"].Simulate.click(nextButton);
}
};
};
exports.carouselDriverFactory = carouselDriverFactory;