Skip to content

Commit 80fb0cd

Browse files
CopilotLipata
andcommitted
Fix tabs selection to work without content and add test
Co-authored-by: Lipata <[email protected]>
1 parent 1baf994 commit 80fb0cd

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

projects/igniteui-angular/src/lib/tabs/tab-header.directive.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,7 @@ export abstract class IgxTabHeaderDirective implements IgxTabHeaderBase {
4040
/** @hidden */
4141
@HostListener('click')
4242
public onClick() {
43-
if (this.tab.panelComponent) {
44-
this.tabs.selectTab(this.tab, true);
45-
}
43+
this.tabs.selectTab(this.tab, true);
4644
}
4745

4846
/** @hidden */

projects/igniteui-angular/src/lib/tabs/tabs/tabs.component.spec.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -865,6 +865,36 @@ describe('IgxTabs', () => {
865865
fixture.detectChanges();
866866
expect(tabsComp.selectedIndicator.nativeElement.style.visibility).toBe('hidden');
867867
});
868+
869+
it('should allow tab selection by clicking on tabs without content', fakeAsync(() => {
870+
// Initially tab 1 (index 1) is selected
871+
expect(tabsComp.selectedIndex).toBe(1);
872+
expect(tabItems[1].selected).toBe(true);
873+
expect(tabItems[0].selected).toBe(false);
874+
expect(tabItems[2].selected).toBe(false);
875+
876+
// Click on tab 0 (no content)
877+
headerElements[0].dispatchEvent(new Event('click', { bubbles: true }));
878+
tick(200);
879+
fixture.detectChanges();
880+
881+
// Should now be selected
882+
expect(tabsComp.selectedIndex).toBe(0);
883+
expect(tabItems[0].selected).toBe(true);
884+
expect(tabItems[1].selected).toBe(false);
885+
expect(tabItems[2].selected).toBe(false);
886+
887+
// Click on tab 2 (no content)
888+
headerElements[2].dispatchEvent(new Event('click', { bubbles: true }));
889+
tick(200);
890+
fixture.detectChanges();
891+
892+
// Should now be selected
893+
expect(tabsComp.selectedIndex).toBe(2);
894+
expect(tabItems[2].selected).toBe(true);
895+
expect(tabItems[0].selected).toBe(false);
896+
expect(tabItems[1].selected).toBe(false);
897+
}));
868898
});
869899

870900
describe('Tabs-only Mode With Initial Selection Set on Tabs Component Tests', () => {

0 commit comments

Comments
 (0)