diff options
| author | Priyansh <[email protected]> | 2021-11-28 14:27:57 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-11-28 14:27:57 -0500 |
| commit | d53094ec16ba385faae2973ddee648698b32ab24 (patch) | |
| tree | 9fe907f4f5a4ed57fff915526f36eca9dd05f07e /js/tests/unit/carousel.spec.js | |
| parent | 52cd86f8710f8049a744b5bcb9f4a7ce19114b6e (diff) | |
| parent | 5290080d4df3047d04c8a232bca5dc7f8eaa4bc6 (diff) | |
| download | bootstrap-d53094ec16ba385faae2973ddee648698b32ab24.tar.xz bootstrap-d53094ec16ba385faae2973ddee648698b32ab24.zip | |
Merge branch 'twbs:main' into main
Diffstat (limited to 'js/tests/unit/carousel.spec.js')
| -rw-r--r-- | js/tests/unit/carousel.spec.js | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/js/tests/unit/carousel.spec.js b/js/tests/unit/carousel.spec.js index 9e5cfea86..a138f3ad5 100644 --- a/js/tests/unit/carousel.spec.js +++ b/js/tests/unit/carousel.spec.js @@ -1,9 +1,8 @@ import Carousel from '../../src/carousel' import EventHandler from '../../src/dom/event-handler' - -/** Test helpers */ import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture' -import * as util from '../../src/util' +import { isRTL, noop } from '../../src/util/index' +import Swipe from '../../src/util/swipe' describe('Carousel', () => { const { Simulator, PointerEvent } = window @@ -303,23 +302,24 @@ describe('Carousel', () => { }) expect(carousel._addTouchEventListeners).not.toHaveBeenCalled() + expect(carousel._swipeHelper).toBeNull() }) it('should not add touch event listeners if touch supported = false', () => { fixtureEl.innerHTML = '<div></div>' const carouselEl = fixtureEl.querySelector('div') + spyOn(Swipe, 'isSupported').and.returnValue(false) const carousel = new Carousel(carouselEl) - - EventHandler.off(carouselEl, '.bs-carousel') - carousel._touchSupported = false + EventHandler.off(carouselEl, Carousel.EVENT_KEY) spyOn(carousel, '_addTouchEventListeners') carousel._addEventListeners() expect(carousel._addTouchEventListeners).not.toHaveBeenCalled() + expect(carousel._swipeHelper).toBeNull() }) it('should add touch event listeners by default', () => { @@ -331,7 +331,7 @@ describe('Carousel', () => { // Headless browser does not support touch events, so need to fake it // to test that touch events are add properly. - document.documentElement.ontouchstart = () => {} + document.documentElement.ontouchstart = noop const carousel = new Carousel(carouselEl) expect(carousel._addTouchEventListeners).toHaveBeenCalled() @@ -344,7 +344,7 @@ describe('Carousel', () => { return } - document.documentElement.ontouchstart = () => {} + document.documentElement.ontouchstart = noop document.head.append(stylesCarousel) Simulator.setType('pointer') @@ -389,7 +389,7 @@ describe('Carousel', () => { return } - document.documentElement.ontouchstart = () => {} + document.documentElement.ontouchstart = noop document.head.append(stylesCarousel) Simulator.setType('pointer') @@ -431,7 +431,7 @@ describe('Carousel', () => { it('should allow swiperight and call _slide (prev) with touch events', done => { Simulator.setType('touch') clearPointerEvents() - document.documentElement.ontouchstart = () => {} + document.documentElement.ontouchstart = noop fixtureEl.innerHTML = [ '<div class="carousel" data-bs-interval="false">', @@ -470,7 +470,7 @@ describe('Carousel', () => { it('should allow swipeleft and call _slide (next) with touch events', done => { Simulator.setType('touch') clearPointerEvents() - document.documentElement.ontouchstart = () => {} + document.documentElement.ontouchstart = noop fixtureEl.innerHTML = [ '<div class="carousel" data-bs-interval="false">', @@ -510,7 +510,7 @@ describe('Carousel', () => { it('should not slide when swiping and carousel is sliding', done => { Simulator.setType('touch') clearPointerEvents() - document.documentElement.ontouchstart = () => {} + document.documentElement.ontouchstart = noop fixtureEl.innerHTML = [ '<div class="carousel" data-bs-interval="false">', @@ -553,7 +553,7 @@ describe('Carousel', () => { it('should not allow pinch with touch events', done => { Simulator.setType('touch') clearPointerEvents() - document.documentElement.ontouchstart = () => {} + document.documentElement.ontouchstart = noop fixtureEl.innerHTML = '<div class="carousel" data-bs-interval="false"></div>' @@ -568,7 +568,7 @@ describe('Carousel', () => { }, () => { restorePointerEvents() delete document.documentElement.ontouchstart - expect(carousel.touchDeltaX).toEqual(0) + expect(carousel._swipeHelper._deltaX).toEqual(0) done() }) }) @@ -978,7 +978,7 @@ describe('Carousel', () => { const carouselEl = fixtureEl.querySelector('#myCarousel') const carousel = new Carousel(carouselEl) - carousel._interval = setInterval(() => {}, 10) + carousel._interval = setInterval(noop, 10) spyOn(window, 'setInterval').and.callThrough() spyOn(window, 'clearInterval').and.callThrough() @@ -1175,7 +1175,7 @@ describe('Carousel', () => { const carouselEl = fixtureEl.querySelector('div') const carousel = new Carousel(carouselEl, {}) - expect(util.isRTL()).toEqual(true, 'rtl has to be true') + expect(isRTL()).toEqual(true, 'rtl has to be true') expect(carousel._directionToOrder('left')).toEqual('prev') expect(carousel._directionToOrder('prev')).toEqual('prev') @@ -1239,19 +1239,20 @@ describe('Carousel', () => { const carouselEl = fixtureEl.querySelector('#myCarousel') const addEventSpy = spyOn(carouselEl, 'addEventListener').and.callThrough() - const removeEventSpy = spyOn(carouselEl, 'removeEventListener').and.callThrough() + const removeEventSpy = spyOn(EventHandler, 'off').and.callThrough() // Headless browser does not support touch events, so need to fake it // to test that touch events are add/removed properly. - document.documentElement.ontouchstart = () => {} + document.documentElement.ontouchstart = noop const carousel = new Carousel(carouselEl) + const swipeHelperSpy = spyOn(carousel._swipeHelper, 'dispose').and.callThrough() const expectedArgs = [ ['keydown', jasmine.any(Function), jasmine.any(Boolean)], ['mouseover', jasmine.any(Function), jasmine.any(Boolean)], ['mouseout', jasmine.any(Function), jasmine.any(Boolean)], - ...(carousel._pointerEvent ? + ...(carousel._swipeHelper._supportPointerEvents ? [ ['pointerdown', jasmine.any(Function), jasmine.any(Boolean)], ['pointerup', jasmine.any(Function), jasmine.any(Boolean)] @@ -1267,7 +1268,9 @@ describe('Carousel', () => { carousel.dispose() - expect(removeEventSpy.calls.allArgs()).toEqual(expectedArgs) + expect(carousel._swipeHelper).toBeNull() + expect(removeEventSpy).toHaveBeenCalledWith(carouselEl, Carousel.EVENT_KEY) + expect(swipeHelperSpy).toHaveBeenCalled() delete document.documentElement.ontouchstart }) |
