Remove flag from

Signed-off-by: Philipp Hugenroth <philipph@spotify.com>
This commit is contained in:
Philipp Hugenroth
2023-12-06 15:27:00 +01:00
parent 175d86b63b
commit 69919a82ab
3 changed files with 24 additions and 7 deletions
@@ -81,14 +81,11 @@ export function HeaderTabs(props: HeaderTabsProps) {
const styles = useStyles();
const handleChange = useCallback(
(e: React.ChangeEvent<{}>, index: number) => {
(_: React.ChangeEvent<{}>, index: number) => {
if (selectedIndex === undefined) {
setSelectedTab(index);
}
if (e.type === 'focus') {
onChange?.(index);
}
if (onChange) onChange(index);
},
[selectedIndex, onChange],
);
@@ -102,7 +99,6 @@ export function HeaderTabs(props: HeaderTabsProps) {
return (
<Box className={styles.tabsWrapper}>
<Tabs
selectionFollowsFocus
indicatorColor="primary"
textColor="inherit"
variant="scrollable"
@@ -18,6 +18,7 @@ import { renderInTestApp, wrapInTestApp } from '@backstage/test-utils';
import { fireEvent, render, screen } from '@testing-library/react';
import React from 'react';
import { CardTab, TabbedCard } from './TabbedCard';
import userEvent from '@testing-library/user-event';
const minProps = {
title: 'Some title',
@@ -96,4 +97,25 @@ describe('<TabbedCard />', () => {
);
expect(screen.getByText('Test Content 2')).toBeInTheDocument();
});
it('should trigger onChange only once', async () => {
const mockOnChange = jest.fn();
const user = userEvent.setup();
const rendered = render(
wrapInTestApp(
<TabbedCard onChange={mockOnChange}>
<CardTab value="one" label="Test 1">
Test Content 1
</CardTab>
<CardTab value="two" label="Test 2">
Test Content 2
</CardTab>
</TabbedCard>,
),
);
await user.click(rendered.getByText('Test 2'));
expect(mockOnChange).toHaveBeenCalledTimes(1);
});
});
@@ -114,7 +114,6 @@ export function TabbedCard(props: PropsWithChildren<Props>) {
<ErrorBoundary {...errProps}>
{title && <BoldHeader title={title} />}
<Tabs
selectionFollowsFocus
classes={tabsClasses}
value={value || selectedIndex}
onChange={handleChange}