Files
freeCodeCamp/tools/ui-components/src/close-button/close-button.test.tsx
Maciek Sitkowski 58701d511b feat(tools): add Alert component (#43835)
* feat(alert): initialize component

* feat(alert): add children prop

* feat(alert): add className prop

* feat(alert): add variant prop

* feat(alert): add close button and handle onDismiss click

* feat(alert): place all alert related css in alert.css

* feat: define state color variables and use them instead of bootstrap ones

* chore: remove unused classes

* feat: replace base alert styles with tailwind classes

* feat: extract close button to separate component

* chore: remove unused css

* test: add close button tests

* refactor: use more tailwind-like approach for adding colors to theme

* refactor: use more expressive prop name for close button label

* refactor: use semantic color names

* feat: add stories with/without close button

* chore: add missing variants
2021-11-27 12:28:40 +03:00

31 lines
889 B
TypeScript

import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import React from 'react';
import { CloseButton } from './close-button';
describe('<CloseButton>', () => {
it('should render', () => {
render(<CloseButton onClick={jest.fn()} />);
expect(screen.getByRole('button')).toBeInTheDocument();
});
it('should set "aria-label" to "label" prop', () => {
const expectedLabel = 'Close me please';
render(<CloseButton label={expectedLabel} onClick={jest.fn()} />);
expect(
screen.getByRole('button', { name: expectedLabel })
).toBeInTheDocument();
});
it('should call "onClick" handler on button click', () => {
const onClick = jest.fn();
render(<CloseButton onClick={onClick} />);
userEvent.click(screen.getByRole('button'));
expect(onClick).toHaveBeenCalledTimes(1);
});
});