mirror of
https://github.com/tenrok/bootstrap.git
synced 2026-06-05 16:42:29 +03:00
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
This commit is contained in:
@@ -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)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user