/var/www/vhosts/ihelp.ro/httpdocs/vendor/twbs/bootstrap/js/tests/unit
Edit: /var/www/vhosts/ihelp.ro/httpdocs/vendor/twbs/bootstrap/js/tests/unit/carousel.spec.js (52631B)
import Carousel from '../../src/carousel.js'
import EventHandler from '../../src/dom/event-handler.js'
import { isRTL, noop } from '../../src/util/index.js'
import Swipe from '../../src/util/swipe.js'
import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
describe('Carousel', () => {
const { Simulator, PointerEvent } = window
const originWinPointerEvent = PointerEvent
const supportPointerEvent = Boolean(PointerEvent)
const cssStyleCarousel = '.carousel.pointer-event { touch-action: none; }'
const stylesCarousel = document.createElement('style')
stylesCarousel.type = 'text/css'
stylesCarousel.append(document.createTextNode(cssStyleCarousel))
const clearPointerEvents = () => {
window.PointerEvent = null
}
const restorePointerEvents = () => {
window.PointerEvent = originWinPointerEvent
}
let fixtureEl
beforeAll(() => {
fixtureEl = getFixture()
})
afterEach(() => {
clearFixture()
})
describe('VERSION', () => {
it('should return plugin version', () => {
expect(Carousel.VERSION).toEqual(jasmine.any(String))
})
})
describe('Default', () => {
it('should return plugin default config', () => {
expect(Carousel.Default).toEqual(jasmine.any(Object))
})
})
describe('DATA_KEY', () => {
it('should return plugin data key', () => {
expect(Carousel.DATA_KEY).toEqual('bs.carousel')
})
})
describe('constructor', () => {
it('should take care of element either passed as a CSS selector or DOM element', () => {
fixtureEl.innerHTML = '
'
const carouselEl = fixtureEl.querySelector('#myCarousel')
const carouselBySelector = new Carousel('#myCarousel')
const carouselByElement = new Carousel(carouselEl)
expect(carouselBySelector._element).toEqual(carouselEl)
expect(carouselByElement._element).toEqual(carouselEl)
})
it('should start cycling if `ride`===`carousel`', () => {
fixtureEl.innerHTML = '
'
const carousel = new Carousel('#myCarousel')
expect(carousel._interval).not.toBeNull()
})
it('should not start cycling if `ride`!==`carousel`', () => {
fixtureEl.innerHTML = '
'
const carousel = new Carousel('#myCarousel')
expect(carousel._interval).toBeNull()
})
it('should go to next item if right arrow key is pressed', () => {
return new Promise(resolve => {
fixtureEl.innerHTML = [
'
',
'
',
'
item 1
',
'
item 2
',
'
item 3
',
'
',
'
'
].join('')
const carouselEl = fixtureEl.querySelector('#myCarousel')
const carousel = new Carousel(carouselEl, {
keyboard: true
})
const spy = spyOn(carousel, '_keydown').and.callThrough()
carouselEl.addEventListener('slid.bs.carousel', () => {
expect(fixtureEl.querySelector('.active')).toEqual(fixtureEl.querySelector('#item2'))
expect(spy).toHaveBeenCalled()
resolve()
})
const keydown = createEvent('keydown')
keydown.key = 'ArrowRight'
carouselEl.dispatchEvent(keydown)
})
})
it('should ignore keyboard events if data-bs-keyboard=false', () => {
fixtureEl.innerHTML = [
'
',
'
',
'
item 1
',
'
item 2
',
'
',
'
'
].join('')
const spy = spyOn(EventHandler, 'trigger').and.callThrough()
const carouselEl = fixtureEl.querySelector('#myCarousel')
// eslint-disable-next-line no-new
new Carousel('#myCarousel')
expect(spy).not.toHaveBeenCalledWith(carouselEl, 'keydown.bs.carousel', jasmine.any(Function))
})
it('should ignore mouse events if data-bs-pause=false', () => {
fixtureEl.innerHTML = [
'
',
'
',
'
item 1
',
'
item 2
',
'
',
'
'
].join('')
const spy = spyOn(EventHandler, 'trigger').and.callThrough()
const carouselEl = fixtureEl.querySelector('#myCarousel')
// eslint-disable-next-line no-new
new Carousel('#myCarousel')
expect(spy).not.toHaveBeenCalledWith(carouselEl, 'hover.bs.carousel', jasmine.any(Function))
})
it('should go to previous item if left arrow key is pressed', () => {
return new Promise(resolve => {
fixtureEl.innerHTML = [
'
',
'
',
'
item 1
',
'
item 2
',
'
item 3
',
'
',
'
'
].join('')
const carouselEl = fixtureEl.querySelector('#myCarousel')
const carousel = new Carousel(carouselEl, {
keyboard: true
})
const spy = spyOn(carousel, '_keydown').and.callThrough()
carouselEl.addEventListener('slid.bs.carousel', () => {
expect(fixtureEl.querySelector('.active')).toEqual(fixtureEl.querySelector('#item1'))
expect(spy).toHaveBeenCalled()
resolve()
})
const keydown = createEvent('keydown')
keydown.key = 'ArrowLeft'
carouselEl.dispatchEvent(keydown)
})
})
it('should not prevent keydown if key is not ARROW_LEFT or ARROW_RIGHT', () => {
return new Promise(resolve => {
fixtureEl.innerHTML = [
'
',
'
',
'
item 1
',
'
item 2
',
'
item 3
',
'
',
'
'
].join('')
const carouselEl = fixtureEl.querySelector('#myCarousel')
const carousel = new Carousel(carouselEl, {
keyboard: true
})
const spy = spyOn(carousel, '_keydown').and.callThrough()
carouselEl.addEventListener('keydown', event => {
expect(spy).toHaveBeenCalled()
expect(event.defaultPrevented).toBeFalse()
resolve()
})
const keydown = createEvent('keydown')
keydown.key = 'ArrowDown'
carouselEl.dispatchEvent(keydown)
})
})
it('should ignore keyboard events within
s and