From e4ae6627d5a525e6d9075b272ca53f7bc4726592 Mon Sep 17 00:00:00 2001 From: Carson Date: Wed, 14 Sep 2022 10:36:24 -0500 Subject: [PATCH 1/2] Close #36947: fix active class toggling tabs within dropdown --- js/src/tab.js | 2 -- js/tests/unit/tab.spec.js | 7 ++++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/js/src/tab.js b/js/src/tab.js index 31dcec4a4b5c..1d6d68d85ce1 100644 --- a/js/src/tab.js +++ b/js/src/tab.js @@ -38,7 +38,6 @@ const CLASS_DROPDOWN = 'dropdown' const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle' const SELECTOR_DROPDOWN_MENU = '.dropdown-menu' -const SELECTOR_DROPDOWN_ITEM = '.dropdown-item' const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)' const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]' @@ -231,7 +230,6 @@ class Tab extends BaseComponent { toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE) toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW) - toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE) outerElem.setAttribute('aria-expanded', open) } diff --git a/js/tests/unit/tab.spec.js b/js/tests/unit/tab.spec.js index 15d581173601..95994a69fce8 100644 --- a/js/tests/unit/tab.spec.js +++ b/js/tests/unit/tab.spec.js @@ -840,10 +840,11 @@ describe('Tab', () => { '' ].join('') - const firstDropItem = fixtureEl.querySelector('.dropdown-item') + const dropItems = fixtureEl.querySelectorAll('.dropdown-item') - firstDropItem.click() - expect(firstDropItem).toHaveClass('active') + dropItems[1].click() + expect(dropItems[0]).not.toHaveClass("active") + expect(dropItems[1]).toHaveClass('active') expect(fixtureEl.querySelector('.nav-link')).not.toHaveClass('active') }) From 7840191da6d2c79ce08460d0e1f152678ac2d483 Mon Sep 17 00:00:00 2001 From: Carson Date: Wed, 14 Sep 2022 11:03:53 -0500 Subject: [PATCH 2/2] Use single quotes --- js/tests/unit/tab.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/tests/unit/tab.spec.js b/js/tests/unit/tab.spec.js index 95994a69fce8..b00014eed0b0 100644 --- a/js/tests/unit/tab.spec.js +++ b/js/tests/unit/tab.spec.js @@ -843,7 +843,7 @@ describe('Tab', () => { const dropItems = fixtureEl.querySelectorAll('.dropdown-item') dropItems[1].click() - expect(dropItems[0]).not.toHaveClass("active") + expect(dropItems[0]).not.toHaveClass('active') expect(dropItems[1]).toHaveClass('active') expect(fixtureEl.querySelector('.nav-link')).not.toHaveClass('active') })