import { minimum } from '../data/html'; import Splide from '../../src/js/splide'; import { COMPLETE } from '../../src/js/components'; describe( 'The Keyboard', () => { beforeEach( () => { document.body.innerHTML = minimum; } ); test( 'should listen to the keydown event of the document if the keyboard option is "global" or true.', done => { const splide = new Splide( '#splide', {}, COMPLETE ); splide.mount(); splide.on( 'moved', () => { expect( splide.index ).toBe( 1 ); done(); } ); document.dispatchEvent( new KeyboardEvent( 'keydown', { key: 'ArrowRight' } ) ); splide.Components.Elements.list.dispatchEvent( new Event( 'transitionend' ) ); } ); test( 'should add tabindex to the root element if the keyboard option is "focused".', () => { const splide = new Splide( '#splide', { keyboard: 'focused' }, COMPLETE ); splide.mount(); expect( splide.root.getAttribute( 'tabindex' ) ).toBe( '0' ); } ); test( 'should listen to the keydown event of the root element if the keyboard option is "focused".', done => { const splide = new Splide( '#splide', { keyboard: 'focused' }, COMPLETE ); splide.mount(); splide.on( 'moved', () => { expect( splide.index ).toBe( 1 ); done(); } ); splide.root.dispatchEvent( new KeyboardEvent( 'keydown', { key: 'ArrowRight' } ) ); splide.Components.Elements.list.dispatchEvent( new Event( 'transitionend' ) ); } ); } );