From fecd219983539aa0110a7e09d31b8aa4d5fb4348 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 12 Sep 2024 09:45:08 +0200 Subject: [PATCH] Fix popover remaining open when toggled after being shown (#40803) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Dmitry Sergienko Co-authored-by: Julien Déramond --- js/src/tooltip.js | 1 - js/tests/unit/popover.spec.js | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/js/src/tooltip.js b/js/src/tooltip.js index 92d4553493..097477f7a1 100644 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@ -160,7 +160,6 @@ class Tooltip extends BaseComponent { return } - this._activeTrigger.click = !this._activeTrigger.click if (this._isShown()) { this._leave() return diff --git a/js/tests/unit/popover.spec.js b/js/tests/unit/popover.spec.js index ba38ebe066..1c81ba7927 100644 --- a/js/tests/unit/popover.spec.js +++ b/js/tests/unit/popover.spec.js @@ -56,6 +56,26 @@ describe('Popover', () => { }) describe('show', () => { + it('should toggle a popover after show', () => { + return new Promise(resolve => { + fixtureEl.innerHTML = 'BS twitter' + + const popoverEl = fixtureEl.querySelector('a') + const popover = new Popover(popoverEl) + + popoverEl.addEventListener('shown.bs.popover', () => { + expect(document.querySelector('.popover')).not.toBeNull() + popover.toggle() + }) + popoverEl.addEventListener('hidden.bs.popover', () => { + expect(document.querySelector('.popover')).toBeNull() + resolve() + }) + + popover.show() + }) + }) + it('should show a popover', () => { return new Promise(resolve => { fixtureEl.innerHTML = 'BS twitter'