diff --git a/src/index.js b/src/index.js index 802bb32..57b3fbb 100644 --- a/src/index.js +++ b/src/index.js @@ -116,6 +116,12 @@ class Slider extends React.PureComponent { this.goTo(nextSlideIndex, NEXT); }; + setCurrentSlideByIndex = (index) => { + this.setState({ + currentSlideIndex: index + }); + } + getSlideClass = (index) => { const { currentSlideIndex, diff --git a/src/index.test.js b/src/index.test.js index 1c38bb1..f3aea22 100644 --- a/src/index.test.js +++ b/src/index.test.js @@ -92,6 +92,16 @@ test('animate previous classNames', () => { expect(animatedSnapshot).not.toEqual(initialSnapshot); }); +test('setCurrentSlideByIndex changes current Slide', () => { + const slider = ReactTestRenderer.create(
First Slide
Second Slide
Third Slide
Fourth Slide
); + expect(slider.root.findByProps({className: "slide current"}).children).toEqual(['First Slide']); + slider.getInstance().setCurrentSlideByIndex(1); + expect(slider.root.findByProps({className: "slide current"}).children).toEqual(['Second Slide']); + expect(slider.root.findByProps({className: "slide previous"}).children).toEqual(['First Slide']); + expect(slider.root.findByProps({className: "slide next"}).children).toEqual(['Third Slide']); + expect(slider.root.findByProps({className: "slide hidden"}).children).toEqual(['Fourth Slide']); +}); + test('does not allow navigation while animating', () => { const slider = ReactTestRenderer.create(
); slider.getInstance().next();