From 1510c25e9be4d8f7f2ba23622bfdfd9afebb6598 Mon Sep 17 00:00:00 2001 From: GeoSot Date: Tue, 20 Sep 2022 17:20:47 +0300 Subject: [PATCH] Drop tabs auto-focus (#37146) * fix: drop tabs auto-focus --- js/src/tab.js | 1 - js/tests/unit/tab.spec.js | 31 +++++++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/js/src/tab.js b/js/src/tab.js index 91187ae9f0..31dcec4a4b 100644 --- a/js/src/tab.js +++ b/js/src/tab.js @@ -115,7 +115,6 @@ class Tab extends BaseComponent { return } - element.focus() element.removeAttribute('tabindex') element.setAttribute('aria-selected', true) this._toggleDropDown(element, true) diff --git a/js/tests/unit/tab.spec.js b/js/tests/unit/tab.spec.js index f1c1d695c3..15d5811736 100644 --- a/js/tests/unit/tab.spec.js +++ b/js/tests/unit/tab.spec.js @@ -36,9 +36,7 @@ describe('Tab', () => { expect(tabBySelector._element).toEqual(tabEl) expect(tabByElement._element).toEqual(tabEl) }) - }) - describe('constructor', () => { it('Do not Throw exception if not parent', () => { fixtureEl.innerHTML = [ fixtureEl.innerHTML = '
' @@ -383,6 +381,35 @@ describe('Tab', () => { btnCloseEl.click() }) }) + + it('should not focus on opened tab', () => { + return new Promise(resolve => { + fixtureEl.innerHTML = [ + '', + '' + ].join('') + + const firstTab = fixtureEl.querySelector('#home') + firstTab.focus() + + const profileTriggerEl = fixtureEl.querySelector('#triggerProfile') + const tab = new Tab(profileTriggerEl) + + profileTriggerEl.addEventListener('shown.bs.tab', () => { + expect(document.activeElement).toBe(firstTab) + expect(document.activeElement).not.toBe(profileTriggerEl) + resolve() + }) + + tab.show() + }) + }) }) describe('dispose', () => {