autoplay.test.js 1015 B

123456789101112131415161718192021222324252627282930313233
  1. import { minimum } from '../data/html';
  2. import Splide from '../../src/js/splide';
  3. import { COMPLETE } from '../../src/js/components';
  4. describe( 'The Autoplay', () => {
  5. beforeEach( () => {
  6. document.body.innerHTML = minimum;
  7. jest.spyOn( window, 'requestAnimationFrame' ).mockImplementation( callback => {
  8. setTimeout( () => callback( new Date().getTime() ), 16 );
  9. } );
  10. } );
  11. test( 'should move slides automatically, emitting play/pause events.', done => {
  12. const splide = new Splide( '#splide', { autoplay: true, interval: 100 }, COMPLETE );
  13. const playCallback = jest.fn();
  14. const playingCallback = jest.fn();
  15. splide
  16. .on( 'autoplay:play', playCallback )
  17. .on( 'autoplay:playing', playingCallback )
  18. .on( 'autoplay:pause', () => {
  19. expect( splide.index ).toBe( 1 );
  20. expect( playCallback ).toHaveBeenCalled();
  21. expect( playingCallback ).toHaveBeenCalled();
  22. done();
  23. } );
  24. splide.mount();
  25. setTimeout( () => splide.Components.Autoplay.pause(), 120 );
  26. } );
  27. } );