Skip to content

Commit ec5cf1d

Browse files
Add unit test
1 parent ee34fa6 commit ec5cf1d

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

js/tests/unit/popover.spec.js

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import EventHandler from '../../src/dom/event-handler.js'
22
import Popover from '../../src/popover.js'
3-
import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture.js'
3+
import {
4+
clearFixture, getFixture, jQueryMock, createEvent
5+
} from '../helpers/fixture.js'
46

57
describe('Popover', () => {
68
let fixtureEl
@@ -313,6 +315,28 @@ describe('Popover', () => {
313315
popover.show()
314316
})
315317
})
318+
319+
it('should keep popover open when mouse leaves after click trigger', () => {
320+
return new Promise(resolve => {
321+
fixtureEl.innerHTML = '<a href="#" title="Popover" data-bs-content="https://x.com/getbootstrap" data-bs-trigger="hover click">BS X</a>'
322+
323+
const popoverEl = fixtureEl.querySelector('a')
324+
new Popover(popoverEl) // eslint-disable-line no-new
325+
326+
popoverEl.addEventListener('shown.bs.popover', () => {
327+
popoverEl.dispatchEvent(createEvent('mouseout'))
328+
329+
popoverEl.addEventListener('hide.bs.popover', () => {
330+
throw new Error('Popover should not hide when mouse leaves after click')
331+
})
332+
333+
expect(document.querySelector('.popover')).not.toBeNull()
334+
resolve()
335+
})
336+
337+
popoverEl.click()
338+
})
339+
})
316340
})
317341

318342
describe('hide', () => {

0 commit comments

Comments
 (0)