From 3fca31b0906da5b00a8c5ccaf0884589b3591c7d Mon Sep 17 00:00:00 2001 From: GeoSot Date: Sat, 16 Jul 2022 17:33:02 +0300 Subject: [PATCH] fix(reg): Re-set tooltip title, on disposal --- js/src/tooltip.js | 4 ++++ js/tests/unit/tooltip.spec.js | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/js/src/tooltip.js b/js/src/tooltip.js index 54ec0367ed43..2c5f03a29340 100644 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@ -185,6 +185,10 @@ class Tooltip extends BaseComponent { this.tip.remove() } + if (this._config.originalTitle) { + this._element.setAttribute('title', this._config.originalTitle) + } + this._disposePopper() super.dispose() } diff --git a/js/tests/unit/tooltip.spec.js b/js/tests/unit/tooltip.spec.js index c8ab068187e9..4cf7778050b8 100644 --- a/js/tests/unit/tooltip.spec.js +++ b/js/tests/unit/tooltip.spec.js @@ -419,6 +419,25 @@ describe('Tooltip', () => { tooltip.show() }) }) + + it('should destroy a tooltip and reset it\'s initial title', () => { + fixtureEl.innerHTML = [ + '', + '' + ].join('') + + const tooltipWithTitleEl = fixtureEl.querySelector('#tooltipWithTitle') + const tooltip = new Tooltip('#tooltipWithTitle') + expect(tooltipWithTitleEl.getAttribute('title')).toBeNull() + tooltip.dispose() + expect(tooltipWithTitleEl.getAttribute('title')).toBe('tooltipTitle') + + const tooltipWithOutTitleEl = fixtureEl.querySelector('#tooltipWithOutTitle') + const tooltip2 = new Tooltip('#tooltipWithTitle') + expect(tooltipWithOutTitleEl.getAttribute('title')).toBeNull() + tooltip2.dispose() + expect(tooltipWithOutTitleEl.getAttribute('title')).toBeNull() + }) }) describe('show', () => {