Alerting: fix collapsable toggle text regression (#47517)

This commit is contained in:
Gilles De Mey 2022-04-08 17:15:19 +02:00 committed by GitHub
parent 18e93c7077
commit 7e844064a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 1 deletions

View File

@ -0,0 +1,29 @@
import { render, screen } from '@testing-library/react';
import { noop } from 'lodash';
import React from 'react';
import { CollapseToggle } from './CollapseToggle';
describe('TestToggle', () => {
it('should render text', () => {
render(<CollapseToggle isCollapsed={true} text="Hello, world" onToggle={noop} />);
expect(screen.getByRole('button')).toHaveTextContent('Hello, world');
});
it('should respect isCollapsed', () => {
const { rerender } = render(<CollapseToggle isCollapsed={false} text="Hello, world" onToggle={noop} />);
expect(screen.getByRole('button', { expanded: true })).toBeInTheDocument();
rerender(<CollapseToggle isCollapsed={true} text="Hello, world" onToggle={noop} />);
expect(screen.getByRole('button', { expanded: false })).toBeInTheDocument();
});
it('should call onToggle', () => {
const onToggle = jest.fn();
render(<CollapseToggle isCollapsed={true} text="Hello, world" onToggle={onToggle} />);
screen.getByRole('button').click();
expect(onToggle).toHaveBeenCalledWith(false);
// it should also not have any impact on the actual expanded state since the component does not track its own state
expect(screen.getByRole('button', { expanded: false })).toBeInTheDocument();
});
});

View File

@ -34,7 +34,9 @@ export const CollapseToggle: FC<Props> = ({
icon={isCollapsed ? 'angle-right' : 'angle-down'}
onClick={() => onToggle(!isCollapsed)}
{...restOfProps}
/>
>
{text}
</Button>
);
};