diff --git a/src/__tests__/Carousel.tsx b/src/__tests__/Carousel.tsx index effa72e2..3295f6d8 100644 --- a/src/__tests__/Carousel.tsx +++ b/src/__tests__/Carousel.tsx @@ -787,6 +787,21 @@ describe('Slider', function() { expect(componentInstance.state.selectedItem).toBe(2); }); + + it('should reset when changing the slide through indicator', () => { + renderDefaultComponent({ interval: 3000, autoPlay: true }); + jest.advanceTimersByTime(2000); + + expect(componentInstance.state.selectedItem).toBe(0); + + const changeToSecondItem = componentInstance.changeItem(1); + // it only runs with an event + changeToSecondItem(new MouseEvent('click')); + + jest.advanceTimersByTime(1000); + + expect(componentInstance.state.selectedItem).toBe(1); + }); }); describe('Infinite Loop and Auto Play', () => { diff --git a/src/components/Carousel.tsx b/src/components/Carousel.tsx index 549c7d70..bf4f591b 100644 --- a/src/components/Carousel.tsx +++ b/src/components/Carousel.tsx @@ -687,6 +687,10 @@ export default class Carousel extends React.Component { this.selectItem({ selectedItem: newIndex, }); + + if (this.state.autoPlay) { + this.resetAutoPlay(); + } } };