events.test.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import { minimum } from '../data/html';
  2. import Splide from '../../src/js/splide';
  3. import { COMPLETE } from '../../src/js/components';
  4. describe( 'Event', () => {
  5. let splide;
  6. beforeEach( () => {
  7. document.body.innerHTML = minimum;
  8. splide = new Splide( '#splide', {}, COMPLETE );
  9. } );
  10. test( '"mounted" should be emitted after components are mounted.', () => {
  11. const callback = jest.fn();
  12. splide.on( 'mounted', callback );
  13. splide.mount();
  14. expect( callback ).toHaveBeenCalledTimes( 1 );
  15. } );
  16. test( '"updated" should be emitted after options are updated.', () => {
  17. const callback = jest.fn();
  18. splide.on( 'updated', callback );
  19. splide.mount();
  20. expect( callback ).not.toHaveBeenCalled();
  21. splide.options = { perView: 2 };
  22. expect( callback ).toHaveBeenCalledTimes( 1 );
  23. } );
  24. test( '"move"/"moved" should be emitted before/after a slider moves and should provide some indexes.', () => {
  25. const moveCallback = jest.fn();
  26. const movedCallback = jest.fn();
  27. splide.mount();
  28. splide.on( 'move', moveCallback );
  29. splide.on( 'moved', movedCallback );
  30. splide.go( '+1' );
  31. expect( moveCallback ).toHaveBeenCalledWith( 1, 0, 1 );
  32. expect( movedCallback ).toHaveBeenCalledWith( 1, 0, 1 );
  33. } );
  34. test( '"updated" should be emitted after options are updated.', () => {
  35. const callback = jest.fn();
  36. splide.on( 'updated', callback );
  37. splide.mount();
  38. expect( callback ).not.toHaveBeenCalled();
  39. splide.options = { perView: 2 };
  40. expect( callback ).toHaveBeenCalledTimes( 1 );
  41. } );
  42. } );