Skip to content

Commit

Permalink
fix modal test
Browse files Browse the repository at this point in the history
  • Loading branch information
GeoSot committed Apr 4, 2021
1 parent 1e9bbcf commit 0aa5976
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
13 changes: 10 additions & 3 deletions js/src/offcanvas.js
Expand Up @@ -49,6 +49,7 @@ const EVENT_HIDDEN = `hidden${EVENT_KEY}`
const EVENT_FOCUSIN = `focusin${EVENT_KEY}`
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`
const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`

const SELECTOR_DATA_DISMISS = '[data-bs-dismiss="offcanvas"]'
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="offcanvas"]'
Expand Down Expand Up @@ -133,15 +134,14 @@ class Offcanvas extends BaseComponent {
this._element.blur()
this._isShown = false
this._element.classList.remove(CLASS_NAME_SHOW)
this._backdrop.hide()

const completeCallback = () => {
this._element.setAttribute('aria-hidden', true)
this._element.removeAttribute('aria-modal')
this._element.removeAttribute('role')
this._element.style.visibility = 'hidden'

this._backdrop.hide()

if (!this._config.scroll) {
scrollBarReset()
}
Expand All @@ -156,6 +156,13 @@ class Offcanvas extends BaseComponent {
this._backdrop.dispose()
super.dispose()

/**
* `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
* Do not move `document` in `htmlElements` array
* It will remove `EVENT_CLICK_DATA_API` event that should remain
*/
EventHandler.off(document, EVENT_FOCUSIN)

this._config = null
this._backdrop = null
}
Expand Down Expand Up @@ -197,7 +204,7 @@ class Offcanvas extends BaseComponent {
_addEventListeners() {
EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())

EventHandler.on(document, 'keydown', event => {
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
if (this._config.keyboard && event.key === ESCAPE_KEY) {
this.hide()
}
Expand Down
6 changes: 3 additions & 3 deletions js/tests/unit/offcanvas.spec.js
Expand Up @@ -63,7 +63,7 @@ describe('Offcanvas', () => {

spyOn(offCanvas, 'hide')

document.dispatchEvent(keyDownEsc)
offCanvasEl.dispatchEvent(keyDownEsc)

expect(offCanvas.hide).toHaveBeenCalled()
})
Expand Down Expand Up @@ -377,7 +377,7 @@ describe('Offcanvas', () => {
expect(Offcanvas.prototype.toggle).not.toHaveBeenCalled()
})

it('should not call toggle if another offcanvas is open', done => {
it('should call hide first, if another offcanvas is open', done => {
fixtureEl.innerHTML = [
'<button id="btn2" data-bs-toggle="offcanvas" data-bs-target="#offcanvas2" ></button>',
'<div id="offcanvas1" class="offcanvas"></div>',
Expand All @@ -393,7 +393,7 @@ describe('Offcanvas', () => {
trigger2.click()
})
offcanvasEl1.addEventListener('hidden.bs.offcanvas', () => {
expect(Offcanvas.getInstance(offcanvasEl2)).toEqual(null)
expect(Offcanvas.getInstance(offcanvasEl2)).not.toBeNull()
done()
})
offcanvas1.show()
Expand Down

0 comments on commit 0aa5976

Please sign in to comment.