import { minimum } from '../data/html'; import Splide from '../../src/js/splide'; import { COMPLETE } from '../../src/js/components'; describe( 'The Autoplay', () => { beforeEach( () => { document.body.innerHTML = minimum; jest.spyOn( window, 'requestAnimationFrame' ).mockImplementation( callback => { setTimeout( () => callback( new Date().getTime() ), 16 ); } ); } ); test( 'should move slides automatically, emitting play/pause events.', done => { const splide = new Splide( '#splide', { autoplay: true, interval: 100 }, COMPLETE ); const playCallback = jest.fn(); const playingCallback = jest.fn(); splide .on( 'autoplay:play', playCallback ) .on( 'autoplay:playing', playingCallback ) .on( 'autoplay:pause', () => { expect( splide.index ).toBe( 1 ); expect( playCallback ).toHaveBeenCalled(); expect( playingCallback ).toHaveBeenCalled(); done(); } ); splide.mount(); setTimeout( () => splide.Components.Autoplay.pause(), 120 ); } ); } );