import { minimum } from '../data/html';
import Splide from '../../src/js/splide';
import { DEFAULTS } from '../../src/js/constants/defaults';
describe( 'Splide ', () => {
beforeEach( () => {
document.body.innerHTML = minimum;
} );
test( 'should find an element with the given selector.', () => {
const splide = new Splide( '#splide' );
expect( splide.root.id ).toBe( 'splide' );
} );
test( 'should accept an element as a root on construction.', () => {
const root = document.getElementById( 'splide' );
const splide = new Splide( root );
expect( splide.root.id ).toBe( 'splide' );
} );
test( 'should overwrite default options with a given ones on construction.', () => {
const splide = new Splide( '#splide', { perView: 3 } );
expect( splide.options ).toEqual( { ...DEFAULTS, perView: 3 } );
} );
test( '"is" should verify if a given type is a current one.', () => {
const splide = new Splide( '#splide', { type: 'loop' } ).mount();
expect( splide.is( 'slide' ) ).toBe( false );
expect( splide.is( 'loop' ) ).toBe( true );
} );
test( 'should make a root element visible after mount.', () => {
const root = document.getElementById( 'splide' );
root.style.visibility = 'hidden';
const splide = new Splide( root );
expect( splide.root.style.visibility ).toBe( 'hidden' );
splide.mount();
expect( splide.root.style.visibility ).toBe( 'visible' );
} );
} );