aboutsummaryrefslogtreecommitdiff
path: root/js/tests
diff options
context:
space:
mode:
authoralpadev <[email protected]>2021-04-01 20:44:04 +0200
committerGitHub <[email protected]>2021-04-01 21:44:04 +0300
commitf36f8344533d3179b8d82af96e005b3106d9ab46 (patch)
tree30c7aa61741b4315dee44d40a8c4df1af7911043 /js/tests
parent6e7f1a9a347f4cc38a8973044440afa52f2cffcd (diff)
downloadbootstrap-f36f8344533d3179b8d82af96e005b3106d9ab46.tar.xz
bootstrap-f36f8344533d3179b8d82af96e005b3106d9ab46.zip
Fix dropdown escape propagation (#33479)
Diffstat (limited to 'js/tests')
-rw-r--r--js/tests/unit/dropdown.spec.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/js/tests/unit/dropdown.spec.js b/js/tests/unit/dropdown.spec.js
index ad51d487b..03532256a 100644
--- a/js/tests/unit/dropdown.spec.js
+++ b/js/tests/unit/dropdown.spec.js
@@ -1671,6 +1671,39 @@ describe('Dropdown', () => {
done()
}, 20)
})
+
+ it('should propagate escape key events if dropdown is closed', done => {
+ fixtureEl.innerHTML = [
+ '<div class="parent">',
+ ' <div class="dropdown">',
+ ' <button class="btn dropdown-toggle" data-bs-toggle="dropdown">Dropdown</button>',
+ ' <div class="dropdown-menu">',
+ ' <a class="dropdown-item" href="#">Some Item</a>',
+ ' </div>',
+ ' </div>',
+ '</div>'
+ ]
+
+ const parent = fixtureEl.querySelector('.parent')
+ const toggle = fixtureEl.querySelector('[data-bs-toggle="dropdown"]')
+
+ const parentKeyHandler = jasmine.createSpy('parentKeyHandler')
+
+ parent.addEventListener('keydown', parentKeyHandler)
+ parent.addEventListener('keyup', () => {
+ expect(parentKeyHandler).toHaveBeenCalled()
+ done()
+ })
+
+ const keydownEscape = createEvent('keydown', { bubbles: true })
+ keydownEscape.key = 'Escape'
+ const keyupEscape = createEvent('keyup', { bubbles: true })
+ keyupEscape.key = 'Escape'
+
+ toggle.focus()
+ toggle.dispatchEvent(keydownEscape)
+ toggle.dispatchEvent(keyupEscape)
+ })
})
describe('jQueryInterface', () => {