Skip to content
This repository was archived by the owner on Sep 22, 2022. It is now read-only.

Commit c3924a4

Browse files
committed
Add test for shiftTab
1 parent 94ddd45 commit c3924a4

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

test/test.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ describe('details-dialog-element', function() {
8989
summary.click()
9090
await waitForToggleEvent(details)
9191
assert.equal(document.activeElement, dialog)
92+
pressTab(details, true)
93+
assert.equal(document.activeElement, document.querySelector(`[${CLOSE_ATTR}]`))
9294
pressTab(details)
9395
assert.equal(document.activeElement, document.querySelector(`[data-button]`))
9496
pressTab(details)
@@ -279,17 +281,22 @@ function waitForToggleEvent(details) {
279281
})
280282
}
281283

282-
function triggerEvent(element, name, key) {
283-
const event = document.createEvent('Event')
284-
event.initEvent(name, true, true)
285-
if (key) event.key = key
286-
element.dispatchEvent(event)
284+
function triggerEvent(element, name, key, shiftKey) {
285+
const eventklass = name.match(/^mouse/) ? MouseEvent : KeyboardEvent
286+
element.dispatchEvent(
287+
new eventklass(name, {
288+
bubbles: true,
289+
cancelable: true,
290+
key,
291+
shiftKey
292+
})
293+
)
287294
}
288295

289296
function pressEscape(details) {
290297
triggerEvent(details, 'keydown', 'Escape')
291298
}
292299

293-
function pressTab(details) {
294-
triggerEvent(details, 'keydown', 'Tab')
300+
function pressTab(details, shift) {
301+
triggerEvent(details, 'keydown', 'Tab', shift)
295302
}

0 commit comments

Comments
 (0)