]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Dropdown tests: Use a function to improve readability (#35448)
authorGeoSot <geo.sotis@gmail.com>
Wed, 1 Dec 2021 14:49:02 +0000 (16:49 +0200)
committerGitHub <noreply@github.com>
Wed, 1 Dec 2021 14:49:02 +0000 (16:49 +0200)
js/tests/unit/dropdown.spec.js

index 9c0eae6d85608e41d9a70edf1a6d1f248a692c98..bec0aae62e52a44c3d292b236b947ee0ab02a269 100644 (file)
@@ -1684,51 +1684,32 @@ describe('Dropdown', () => {
       const input = fixtureEl.querySelector('input')
       const textarea = fixtureEl.querySelector('textarea')
 
-      const keydownSpace = createEvent('keydown')
-      keydownSpace.key = 'Space'
-
-      const keydownArrowUp = createEvent('keydown')
-      keydownArrowUp.key = 'ArrowUp'
-
-      const keydownArrowDown = createEvent('keydown')
-      keydownArrowDown.key = 'ArrowDown'
+      const test = (eventKey, elementToDispatch) => {
+        const event = createEvent('keydown')
+        event.key = eventKey
+        elementToDispatch.focus()
+        elementToDispatch.dispatchEvent(event)
+        expect(document.activeElement).toEqual(elementToDispatch, `${elementToDispatch.tagName} still focused`)
+      }
 
       const keydownEscape = createEvent('keydown')
       keydownEscape.key = 'Escape'
 
       triggerDropdown.addEventListener('shown.bs.dropdown', () => {
         // Key Space
-        input.focus()
-        input.dispatchEvent(keydownSpace)
+        test('Space', input)
 
-        expect(document.activeElement).toEqual(input, 'input still focused')
-
-        textarea.focus()
-        textarea.dispatchEvent(keydownSpace)
-
-        expect(document.activeElement).toEqual(textarea, 'textarea still focused')
+        test('Space', textarea)
 
         // Key ArrowUp
-        input.focus()
-        input.dispatchEvent(keydownArrowUp)
+        test('ArrowUp', input)
 
-        expect(document.activeElement).toEqual(input, 'input still focused')
-
-        textarea.focus()
-        textarea.dispatchEvent(keydownArrowUp)
-
-        expect(document.activeElement).toEqual(textarea, 'textarea still focused')
+        test('ArrowUp', textarea)
 
         // Key ArrowDown
-        input.focus()
-        input.dispatchEvent(keydownArrowDown)
+        test('ArrowDown', input)
 
-        expect(document.activeElement).toEqual(input, 'input still focused')
-
-        textarea.focus()
-        textarea.dispatchEvent(keydownArrowDown)
-
-        expect(document.activeElement).toEqual(textarea, 'textarea still focused')
+        test('ArrowDown', textarea)
 
         // Key Escape
         input.focus()