diff --git a/__tests__/regression/fix-1813.test.js b/__tests__/regression/fix-1813.test.js index 456a51081..0f93c6025 100644 --- a/__tests__/regression/fix-1813.test.js +++ b/__tests__/regression/fix-1813.test.js @@ -12,7 +12,6 @@ import { getButtons, getButtonsLength, getClonesCount, - getCurrentSlide, getSlidesCount } from "../../test-utils"; import { GenericSliderComponent } from "../TestComponents"; @@ -28,6 +27,16 @@ function MultipleItems() { return ; } +function SingleItem() { + const settings = { + dots: true, + infinite: true, + speed: 500, + slidesToShow: 1 + }; + return ; +} + describe("Multiple Items with slidesToShow = slides count in infinite mode", function () { it("should have 9 actual slides and (9(pre) + 9(post)) clone slides", function () { //Todo: Need to fix extra clones @@ -35,6 +44,12 @@ describe("Multiple Items with slidesToShow = slides count in infinite mode", fun expect(getSlidesCount(container)).toEqual(27); expect(getClonesCount(container)).toEqual(18); }); + // https://github.com/akiran/react-slick/issues/2359 + it("should not have cloned slide", function () { + const { container } = render(); + expect(getSlidesCount(container)).toEqual(1); + expect(getClonesCount(container)).toEqual(0); + }); it("should have 9 active slides", function () { const { container } = render(); expect(getActiveSlidesCount(container)).toEqual(9); diff --git a/src/track.js b/src/track.js index f291a135c..5f5cd130b 100644 --- a/src/track.js +++ b/src/track.js @@ -136,7 +136,12 @@ const renderSlides = (spec) => { ); // if slide needs to be precloned or postcloned - if (spec.infinite && spec.fade === false && !spec.unslick) { + if ( + spec.infinite && + childrenCount > 1 && + spec.fade === false && + !spec.unslick + ) { let preCloneNo = childrenCount - index; if (preCloneNo <= getPreClones(spec)) { key = -preCloneNo;