diff --git a/js/src/tooltip.js b/js/src/tooltip.js index 5fd4987b90..1ff2c4f6e0 100644 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@ -605,6 +605,14 @@ const Tooltip = (($) => { } } + if (config.title && typeof config.title === 'number') { + config.title = config.title.toString() + } + + if (config.content && typeof config.content === 'number') { + config.content = config.content.toString() + } + Util.typeCheckConfig( NAME, config, diff --git a/js/tests/unit/popover.js b/js/tests/unit/popover.js index 64c8c556ac..eaa9fa0c0d 100644 --- a/js/tests/unit/popover.js +++ b/js/tests/unit/popover.js @@ -364,4 +364,22 @@ $(function () { }) .modal('show') }) + + QUnit.test('should convert number to string without error for content and title', function (assert) { + assert.expect(2) + var done = assert.async() + var $popover = $('@mdo') + .appendTo('#qunit-fixture') + .bootstrapPopover({ + title: 5, + content: 7 + }) + .on('shown.bs.popover', function () { + assert.strictEqual($('.popover .popover-title').text(), '5') + assert.strictEqual($('.popover .popover-content').text(), '7') + done() + }) + + $popover.bootstrapPopover('show') + }) }) diff --git a/js/tests/unit/tooltip.js b/js/tests/unit/tooltip.js index e739f06a50..8cb1a6fdf1 100644 --- a/js/tests/unit/tooltip.js +++ b/js/tests/unit/tooltip.js @@ -886,4 +886,20 @@ $(function () { $el.bootstrapTooltip('hide') }) + + QUnit.test('should convert number in title to string', function (assert) { + assert.expect(1) + var done = assert.async() + var $el = $('') + .appendTo('#qunit-fixture') + .bootstrapTooltip('show') + .on('shown.bs.tooltip', function () { + var tooltip = $el.data('bs.tooltip') + var $tooltip = $(tooltip.getTipElement()) + assert.strictEqual($tooltip.children().text(), '7') + done() + }) + + $el.bootstrapTooltip('show') + }) })