diff options
| author | Johann-S <[email protected]> | 2018-04-10 09:28:29 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2018-04-10 09:28:29 +0200 |
| commit | 0871d69ec975b51472a451ed63ffa2af874606d2 (patch) | |
| tree | 977e0bcbcde804c5a90da0fc28db41a6748b8b82 /js/tests/unit/dropdown.js | |
| parent | 875ed0b975a587fffcc1b0c632e1cc8f612ebc5a (diff) | |
| download | bootstrap-0871d69ec975b51472a451ed63ffa2af874606d2.tar.xz bootstrap-0871d69ec975b51472a451ed63ffa2af874606d2.zip | |
v4 improve coverage (#25945)
* Improve code coverage for our Button plugin
* improve coverage for our Alert plugin
* test tooltip update method
* test update and dispose for dropdown
* increase code coverage requirements
Diffstat (limited to 'js/tests/unit/dropdown.js')
| -rw-r--r-- | js/tests/unit/dropdown.js | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/js/tests/unit/dropdown.js b/js/tests/unit/dropdown.js index 0e3d37041..726655e9c 100644 --- a/js/tests/unit/dropdown.js +++ b/js/tests/unit/dropdown.js @@ -940,4 +940,116 @@ $(function () { $dropdown.trigger('click') }) + + QUnit.test('should call Popper.js and detect navbar on update', function (assert) { + assert.expect(3) + + var dropdownHTML = + '<div class="dropdown">' + + ' <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>' + + ' <div class="dropdown-menu">' + + ' <a class="dropdown-item" href="#">Another link</a>' + + ' </div>' + + '</div>' + + var $dropdown = $(dropdownHTML) + .appendTo('#qunit-fixture') + .find('[data-toggle="dropdown"]') + .bootstrapDropdown() + + var dropdown = $dropdown.data('bs.dropdown') + dropdown.toggle() + assert.ok(dropdown._popper) + + var spyPopper = sinon.spy(dropdown._popper, 'scheduleUpdate') + var spyDetectNavbar = sinon.spy(dropdown, '_detectNavbar') + dropdown.update() + + assert.ok(spyPopper.called) + assert.ok(spyDetectNavbar.called) + }) + + QUnit.test('should just detect navbar on update', function (assert) { + assert.expect(2) + + var dropdownHTML = + '<div class="dropdown">' + + ' <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>' + + ' <div class="dropdown-menu">' + + ' <a class="dropdown-item" href="#">Another link</a>' + + ' </div>' + + '</div>' + + var $dropdown = $(dropdownHTML) + .appendTo('#qunit-fixture') + .find('[data-toggle="dropdown"]') + .bootstrapDropdown() + + var dropdown = $dropdown.data('bs.dropdown') + var spyDetectNavbar = sinon.spy(dropdown, '_detectNavbar') + + dropdown.update() + + assert.notOk(dropdown._popper) + assert.ok(spyDetectNavbar.called) + }) + + QUnit.test('should dispose dropdown with Popper', function (assert) { + assert.expect(6) + + var dropdownHTML = + '<div class="dropdown">' + + ' <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>' + + ' <div class="dropdown-menu">' + + ' <a class="dropdown-item" href="#">Another link</a>' + + ' </div>' + + '</div>' + + var $dropdown = $(dropdownHTML) + .appendTo('#qunit-fixture') + .find('[data-toggle="dropdown"]') + .bootstrapDropdown() + + var dropdown = $dropdown.data('bs.dropdown') + dropdown.toggle() + + assert.ok(dropdown._popper) + assert.ok(dropdown._menu !== null) + assert.ok(dropdown._element !== null) + var spyDestroy = sinon.spy(dropdown._popper, 'destroy') + + dropdown.dispose() + + assert.ok(spyDestroy.called) + assert.ok(dropdown._menu === null) + assert.ok(dropdown._element === null) + }) + + QUnit.test('should dispose dropdown', function (assert) { + assert.expect(5) + + var dropdownHTML = + '<div class="dropdown">' + + ' <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>' + + ' <div class="dropdown-menu">' + + ' <a class="dropdown-item" href="#">Another link</a>' + + ' </div>' + + '</div>' + + var $dropdown = $(dropdownHTML) + .appendTo('#qunit-fixture') + .find('[data-toggle="dropdown"]') + .bootstrapDropdown() + + var dropdown = $dropdown.data('bs.dropdown') + + assert.notOk(dropdown._popper) + assert.ok(dropdown._menu !== null) + assert.ok(dropdown._element !== null) + + dropdown.dispose() + + assert.ok(dropdown._menu === null) + assert.ok(dropdown._element === null) + }) }) |
