From 43b4252a3487e419455f794e16d402a32d1ebe22 Mon Sep 17 00:00:00 2001 From: Hiws Date: Thu, 24 Sep 2020 13:55:38 +0200 Subject: [PATCH] fix tooltip hide method when already hidden (#31115) Co-authored-by: XhmikosR --- js/src/tooltip.js | 4 ++++ js/tests/unit/tooltip.spec.js | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/js/src/tooltip.js b/js/src/tooltip.js index 9ad73328bed9..1bda97e388ca 100644 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@ -331,6 +331,10 @@ class Tooltip { } hide() { + if (!this._popper) { + return + } + const tip = this.getTipElement() const complete = () => { if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { diff --git a/js/tests/unit/tooltip.spec.js b/js/tests/unit/tooltip.spec.js index 0a98096a405e..3e5c9179401b 100644 --- a/js/tests/unit/tooltip.spec.js +++ b/js/tests/unit/tooltip.spec.js @@ -717,6 +717,20 @@ describe('Tooltip', () => { tooltip.show() }) + + it('should not throw error running hide if popper hasn\'t been shown', () => { + fixtureEl.innerHTML = '
' + + const div = fixtureEl.querySelector('div') + const tooltip = new Tooltip(div) + + try { + tooltip.hide() + expect().nothing() + } catch { + throw new Error('should not throw error') + } + }) }) describe('update', () => {