mirror of https://github.com/portainer/portainer
38 lines
877 B
TypeScript
38 lines
877 B
TypeScript
|
import { fireEvent, render } from '@testing-library/react';
|
||
|
import { PropsWithChildren } from 'react';
|
||
|
|
||
|
import { Button, Props } from './Button';
|
||
|
|
||
|
function renderDefault({
|
||
|
type = 'button',
|
||
|
color = 'primary',
|
||
|
size = 'small',
|
||
|
disabled = false,
|
||
|
onClick = () => {},
|
||
|
children = null,
|
||
|
}: Partial<PropsWithChildren<Props>> = {}) {
|
||
|
return render(
|
||
|
<Button
|
||
|
type={type}
|
||
|
color={color}
|
||
|
size={size}
|
||
|
disabled={disabled}
|
||
|
onClick={onClick}
|
||
|
>
|
||
|
{children}
|
||
|
</Button>
|
||
|
);
|
||
|
}
|
||
|
|
||
|
test('should display a Button component and allow onClick', async () => {
|
||
|
const children = 'test label';
|
||
|
const onClick = jest.fn();
|
||
|
const { findByText } = renderDefault({ children, onClick });
|
||
|
|
||
|
const buttonLabel = await findByText(children);
|
||
|
expect(buttonLabel).toBeTruthy();
|
||
|
|
||
|
fireEvent.click(buttonLabel);
|
||
|
expect(onClick).toHaveBeenCalled();
|
||
|
});
|