diff --git a/js/src/tooltip.js b/js/src/tooltip.js index 1ad5615c2174..6fc3ce534aff 100644 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@ -565,11 +565,11 @@ class Tooltip extends BaseComponent { } } - if (typeof config.title === 'number') { + if (typeof config.title === 'number' || typeof config.title === 'boolean') { config.title = config.title.toString() } - if (typeof config.content === 'number') { + if (typeof config.content === 'number' || typeof config.content === 'boolean') { config.content = config.content.toString() } diff --git a/js/tests/unit/popover.spec.js b/js/tests/unit/popover.spec.js index 1338821bc86d..09f293fe6d95 100644 --- a/js/tests/unit/popover.spec.js +++ b/js/tests/unit/popover.spec.js @@ -57,6 +57,17 @@ describe('Popover', () => { }) }) + describe('config', () => { + it('should accept "true"/"false" string content from data-bs-content as literal strings', () => { + fixtureEl.innerHTML = 'BS' + + const popoverEl = fixtureEl.querySelector('a') + const popover = new Popover(popoverEl) + + expect(popover._config.content).toEqual('true') + }) + }) + describe('show', () => { it('should toggle a popover after show', () => { return new Promise(resolve => { diff --git a/js/tests/unit/tooltip.spec.js b/js/tests/unit/tooltip.spec.js index 37f2c230d037..1f5c14290d5f 100644 --- a/js/tests/unit/tooltip.spec.js +++ b/js/tests/unit/tooltip.spec.js @@ -90,6 +90,19 @@ describe('Tooltip', () => { expect(tooltip._config.content).toEqual('7') }) + it('should convert title and content to string if booleans', () => { + fixtureEl.innerHTML = '' + + const tooltipEl = fixtureEl.querySelector('a') + const tooltip = new Tooltip(tooltipEl, { + title: true, + content: false + }) + + expect(tooltip._config.title).toEqual('true') + expect(tooltip._config.content).toEqual('false') + }) + it('should enable selector delegation', () => { return new Promise(resolve => { fixtureEl.innerHTML = '
'