diff --git a/js/tests/unit/toast.js b/js/tests/unit/toast.js
index 89bcaf9b64..a4c6560b88 100644
--- a/js/tests/unit/toast.js
+++ b/js/tests/unit/toast.js
@@ -290,6 +290,37 @@ $(function () {
.bootstrapToast('show')
})
+ QUnit.test('should clear timeout if toast is shown again before it is hidden', function (assert) {
+ assert.expect(2)
+ var done = assert.async()
+
+ var toastHtml =
+ '
' +
+ '
' +
+ 'a simple toast' +
+ '
' +
+ '
'
+
+ var $toast = $(toastHtml)
+ .bootstrapToast()
+ .appendTo($('#qunit-fixture'))
+
+ var toast = $toast.data('bs.toast')
+ var spyClearTimeout = sinon.spy(toast, '_clearTimeout')
+
+ setTimeout(function () {
+ toast._config.autohide = false
+ $toast.on('shown.bs.toast', function () {
+ assert.ok(spyClearTimeout.called)
+ assert.ok(toast._timeout === null)
+ done()
+ })
+ $toast.bootstrapToast('show')
+ }, toast._config.delay / 2)
+
+ $toast.bootstrapToast('show')
+ })
+
QUnit.test('should not trigger hidden if hide is prevented', function (assert) {
assert.expect(1)
var done = assert.async()