diff options
author | Johann-S <johann.servoire@gmail.com> | 2018-10-29 15:29:37 +0300 |
---|---|---|
committer | Johann-S <johann.servoire@gmail.com> | 2018-10-29 16:01:03 +0300 |
commit | 2c2d04aba58d081ffa0c376c5c5d23bd3f07c071 (patch) | |
tree | 59f294cde17eee218a094567421018e2990c7334 /js/tests/unit/tab.js | |
parent | a282c22fc7bfc41d58466891b7e5a4e4a4ad977c (diff) |
add unit test to test tabs can be removed without throwing error
Diffstat (limited to 'js/tests/unit/tab.js')
-rw-r--r-- | js/tests/unit/tab.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/js/tests/unit/tab.js b/js/tests/unit/tab.js index e28ca83a75..3ce29b6624 100644 --- a/js/tests/unit/tab.js +++ b/js/tests/unit/tab.js @@ -414,4 +414,49 @@ $(function () { }) .trigger($.Event('click')) }) + + QUnit.test('should handle removed tabs', function (assert) { + assert.expect(1) + var done = assert.async() + + var html = [ + '<ul class="nav nav-tabs" role="tablist">', + ' <li class="nav-item">', + ' <a class="nav-link nav-tab" href="#profile" role="tab" data-toggle="tab">', + ' <button class="close"><span aria-hidden="true">×</span></button>', + ' </a>', + ' </li>', + ' <li class="nav-item">', + ' <a id="secondNav" class="nav-link nav-tab" href="#buzz" role="tab" data-toggle="tab">', + ' <button class="close"><span aria-hidden="true">×</span></button>', + ' </a>', + ' </li>', + ' <li class="nav-item">', + ' <a class="nav-link nav-tab" href="#references" role="tab" data-toggle="tab">', + ' <button id="btnClose" class="close"><span aria-hidden="true">×</span></button>', + ' </a>', + ' </li>', + '</ul>', + '<div class="tab-content">', + ' <div role="tabpanel" class="tab-pane fade show active" id="profile">test 1</div>', + ' <div role="tabpanel" class="tab-pane fade" id="buzz">test 2</div>', + ' <div role="tabpanel" class="tab-pane fade" id="references">test 3</div>', + '</div>' + ].join('') + + $(html).appendTo('#qunit-fixture') + + $('#secondNav').on('shown.bs.tab', function () { + assert.strictEqual($('.nav-tab').length, 2) + done() + }) + + $('#btnClose').one('click', function () { + var tabId = $(this).parents('a').attr('href') + $(this).parents('li').remove() + $(tabId).remove() + $('.nav-tabs a:last').bootstrapTab('show') + }) + .trigger($.Event('click')) + }) }) |