File tree Expand file tree Collapse file tree 1 file changed +25
-1
lines changed Expand file tree Collapse file tree 1 file changed +25
-1
lines changed Original file line number Diff line number Diff line change 1
1
import EventHandler from '../../src/dom/event-handler.js'
2
2
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'
4
6
5
7
describe ( 'Popover' , ( ) => {
6
8
let fixtureEl
@@ -313,6 +315,28 @@ describe('Popover', () => {
313
315
popover . show ( )
314
316
} )
315
317
} )
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
+ } )
316
340
} )
317
341
318
342
describe ( 'hide' , ( ) => {
You can’t perform that action at this time.
0 commit comments