1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import { EVENT_MOVE } from '../../../constants/events';
- import { Splide } from '../../../core/Splide/Splide';
- import { init } from '../../../test';
- describe( 'Sync#sync()', () => {
- test( 'can sync Splide sliders.', () => {
- const primary = init( { speed: 0 }, { id: 'primary', mount: false } );
- const secondary = init( { speed: 0 }, { id: 'secondary', insertHtml: true, mount: false } );
- primary.sync( secondary ).mount();
- secondary.mount();
- expect( primary.index ).toBe( 0 );
- expect( secondary.index ).toBe( 0 );
- primary.go( 1 );
- expect( primary.index ).toBe( 1 );
- expect( secondary.index ).toBe( 1 );
- primary.go( 4 );
- expect( primary.index ).toBe( 4 );
- expect( secondary.index ).toBe( 4 );
- secondary.go( 0 );
- expect( primary.index ).toBe( 0 );
- expect( secondary.index ).toBe( 0 );
- secondary.go( 5 );
- expect( primary.index ).toBe( 5 );
- expect( secondary.index ).toBe( 5 );
- } );
- test( 'can sync Splide sliders after mount.', () => {
- const primary = init( { speed: 0 }, { id: 'primary', mount: false } );
- const secondary = init( { speed: 0 }, { id: 'secondary', insertHtml: true, mount: false } );
- primary.mount();
- secondary.mount();
- primary.sync( secondary );
- primary.go( 1 );
- expect( primary.index ).toBe( 1 );
- expect( secondary.index ).toBe( 1 );
- primary.go( 4 );
- expect( primary.index ).toBe( 4 );
- expect( secondary.index ).toBe( 4 );
- } );
- test( 'can sync multiple Splide sliders.', () => {
- const primary = init( { speed: 0 }, { id: 'primary', mount: false } );
- const splides: Splide[] = [];
- Array.from( { length: 5 } ).forEach( ( item, index ) => {
- const secondary = init( { speed: 0 }, { id: `secondary-${ index }`, insertHtml: true, mount: false } );
- splides.push( secondary );
- primary.sync( secondary );
- } );
- primary.mount();
- splides.forEach( splide => splide.mount() );
- primary.go( 1 );
- splides.forEach( splide => {
- expect( splide.index ).toBe( 1 );
- } );
- primary.go( 5 );
- splides.forEach( splide => {
- expect( splide.index ).toBe( 5 );
- } );
- splides[ 3 ].go( 3 );
- expect( primary.index ).toBe( 3 );
- splides.forEach( splide => {
- expect( splide.index ).toBe( 3 );
- } );
- } );
- test( 'should prevent recursive calls of `move` event handlers.', () => {
- const primary = init( { speed: 0 }, { id: 'primary', mount: false } );
- const secondary = init( { speed: 0 }, { id: 'secondary', insertHtml: true, mount: false } );
- const callback = jest.fn();
- primary.sync( secondary ).mount();
- secondary.mount();
- primary.on( EVENT_MOVE, callback );
- primary.go( 1 );
- expect( callback ).toHaveBeenCalledTimes( 1 );
- secondary.go( 2 );
- expect( callback ).toHaveBeenCalledTimes( 2 );
- } );
- } );
|