Skip to content

Commit

Permalink
add unit tests for our carousel
Browse files Browse the repository at this point in the history
  • Loading branch information
Johann-S committed Oct 29, 2018
1 parent 2c2d04a commit 33090b7
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 9 deletions.
15 changes: 6 additions & 9 deletions js/src/carousel.js
Expand Up @@ -289,15 +289,13 @@ class Carousel {
}

const move = (event) => {
if (!this._pointerEvent) {
event.preventDefault()
event.preventDefault()

// ensure swiping with one touch and not pinching
if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {
this.touchDeltaX = 0
} else {
this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX
}
// ensure swiping with one touch and not pinching
if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {
this.touchDeltaX = 0
} else {
this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX
}
}

Expand All @@ -307,7 +305,6 @@ class Carousel {
}

this._handleSwipe()

if (this._config.pause === 'hover') {
// If it's a touch-enabled device, mouseenter/leave are fired as
// part of the mouse compatibility events on first tap - the carousel
Expand Down
44 changes: 44 additions & 0 deletions js/tests/unit/carousel.js
Expand Up @@ -1226,4 +1226,48 @@ $(function () {
done()
})
})

QUnit.test('should not call _slide if the carousel is sliding', function (assert) {
assert.expect(1)

var carouselHTML = '<div class="carousel" data-interval="false"></div>'
var $carousel = $(carouselHTML)
$carousel.appendTo('#qunit-fixture')
$carousel.bootstrapCarousel()

var carousel = $carousel.data('bs.carousel')

var spy = sinon.spy(carousel, '_slide')

carousel._isSliding = true

carousel.next()

assert.strictEqual(spy.called, false)
})

QUnit.test('should call next when the page is visible', function (assert) {
assert.expect(1)

var carouselHTML = '<div class="carousel" data-interval="false"></div>'
var $carousel = $(carouselHTML)
$carousel.appendTo('#qunit-fixture')
$carousel.bootstrapCarousel()

var carousel = $carousel.data('bs.carousel')

var spy = sinon.spy(carousel, 'next')
var sandbox = sinon.createSandbox()

sandbox.replaceGetter(document, 'hidden', function () {
return false
})
sandbox.stub($carousel, 'is').returns(true)
sandbox.stub($carousel, 'css').returns('block')

carousel.nextWhenVisible()

assert.strictEqual(spy.called, true)
sandbox.restore()
})
})

0 comments on commit 33090b7

Please sign in to comment.