From 1abe9264aa867766a1dd1d393fe4650a30d17e31 Mon Sep 17 00:00:00 2001 From: Rohit Sharma Date: Wed, 15 Jul 2020 18:09:04 +0530 Subject: [PATCH] Add unit test for toast to check clearTimeout to have been called (#31298) --- js/tests/unit/toast.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) 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()