UNPKG

slider-pro-js

Version:

Modular JavaScript slider that is dependency-free, rich-featured, flexible and easy to use

63 lines (48 loc) 1.9 kB
import SliderPro from '../../src/core/slider-pro.js'; import { basicSlider } from '../assets/html/html.js'; let slider; beforeAll( ()=> { document.body.innerHTML = basicSlider; }); describe( 'slider navigation', () => { beforeAll( () => { slider = new SliderPro( '.slider-pro' ); }); afterAll( () => { slider.destroy(); }); test( 'should increment the value of the selected slide index when calling `nextSlide', () => { let counter = slider.getTotalSlides() * 2; while ( counter-- > 0 ) { const initialSlideIndex = slider.getSelectedSlide(); slider.nextSlide(); const finalSlideIndex = slider.getSelectedSlide(); expect( [ initialSlideIndex + 1, 0 ] ).toContain( finalSlideIndex ); } }); test( 'should decrement the value of the selected slide index when calling `previousSlide', () => { let counter = slider.getTotalSlides() * 2; while ( counter-- > 0 ) { const initialSlideIndex = slider.getSelectedSlide(); slider.previousSlide(); const finalSlideIndex = slider.getSelectedSlide(); expect( [ initialSlideIndex - 1, slider.getTotalSlides() - 1 ] ).toContain( finalSlideIndex ); } }); }); describe( 'slide reordering with loop enabled', () => { beforeAll( () => { slider = new SliderPro( '.slider-pro', { loop: true } ); }); afterAll( () => { slider.destroy(); }); test( 'should have the correct slide order after navigating to a slide', () => { slider.gotoSlide( 0 ); expect( slider.slidesOrder ).toEqual( [ 3, 4, 0, 1, 2 ] ); slider.gotoSlide( 2 ); expect( slider.slidesOrder ).toEqual( [ 0, 1, 2, 3, 4 ] ); slider.gotoSlide( 4 ); expect( slider.slidesOrder ).toEqual( [ 2, 3, 4, 0, 1 ] ); }); });