File "sync.test.ts"
Full path: /home/fsibplc/public_html/sommilito-bank2/splide-4.1.3/src/js/components/Sync/test/sync.test.ts
File
size: 2.81 B (2.81 KB bytes)
MIME-type: text/x-java
Charset: utf-8
Download Open Edit Advanced Editor Back
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 );
} );
} );