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()