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();