]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
add tests
authorMark Otto <markdotto@gmail.com>
Mon, 28 Feb 2022 20:58:31 +0000 (12:58 -0800)
committerMark Otto <otto@github.com>
Mon, 28 Feb 2022 22:02:51 +0000 (14:02 -0800)
js/tests/unit/dropdown.spec.js

index ffe76028dbf5c4349d0d03d3cb19f2e6df739823..ef97fc71bc8d49f2b006a37294ca52bb8b8154d6 100644 (file)
@@ -279,6 +279,30 @@ describe('Dropdown', () => {
       })
     })
 
+    it('should toggle a centered dropdown', () => {
+      return new Promise(resolve => {
+        fixtureEl.innerHTML = [
+          '<div class="dropdown-center">',
+          '  <button class="btn dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">Dropdown</button>',
+          '  <div class="dropdown-menu">',
+          '    <a class="dropdown-item" href="#">Secondary link</a>',
+          '  </div>',
+          '</div>'
+        ].join('')
+
+        const btnDropdown = fixtureEl.querySelector('[data-bs-toggle="dropdown"]')
+        const dropdown = new Dropdown(btnDropdown)
+
+        btnDropdown.addEventListener('shown.bs.dropdown', () => {
+          expect(btnDropdown).toHaveClass('show')
+          expect(btnDropdown.getAttribute('aria-expanded')).toEqual('true')
+          resolve()
+        })
+
+        dropdown.toggle()
+      })
+    })
+
     it('should toggle a dropup', () => {
       return new Promise(resolve => {
         fixtureEl.innerHTML = [
@@ -304,6 +328,31 @@ describe('Dropdown', () => {
       })
     })
 
+    it('should toggle a dropup centered', () => {
+      return new Promise(resolve => {
+        fixtureEl.innerHTML = [
+          '<div class="dropup-center">',
+          '  <button class="btn dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">Dropdown</button>',
+          '  <div class="dropdown-menu">',
+          '    <a class="dropdown-item" href="#">Secondary link</a>',
+          '  </div>',
+          '</div>'
+        ].join('')
+
+        const btnDropdown = fixtureEl.querySelector('[data-bs-toggle="dropdown"]')
+        const dropupEl = fixtureEl.querySelector('.dropup-center')
+        const dropdown = new Dropdown(btnDropdown)
+
+        dropupEl.addEventListener('shown.bs.dropdown', () => {
+          expect(btnDropdown).toHaveClass('show')
+          expect(btnDropdown.getAttribute('aria-expanded')).toEqual('true')
+          resolve()
+        })
+
+        dropdown.toggle()
+      })
+    })
+
     it('should toggle a dropup at the right', () => {
       return new Promise(resolve => {
         fixtureEl.innerHTML = [