UNPKG

1.49 kBJavaScriptView Raw
1import React from 'react';
2import { render, screen } from '@testing-library/react';
3import user from '@testing-library/user-event';
4import '@testing-library/jest-dom';
5import CloseButton from '../CloseButton';
6
7describe('CloseButton', () => {
8 it('should render a close button', () => {
9 render(<CloseButton data-testid="close-btn" />);
10 expect(screen.getByTestId('close-btn')).toHaveClass('btn-close');
11 });
12
13 it('should render white variant', () => {
14 render(<CloseButton variant="white" data-testid="close-btn" />);
15 expect(screen.getByTestId('close-btn')).toHaveClass('btn-close-white');
16 });
17
18 describe('onClick', () => {
19 it('calls props.onClick if it exists', () => {
20 const onClick = jest.fn();
21 render(<CloseButton onClick={onClick} data-testid="btn-close" />);
22
23 user.click(screen.getByTestId('btn-close'));
24 expect(onClick).toHaveBeenCalled();
25 });
26
27 it('returns the value returned by props.onClick', () => {
28 const onClick = jest.fn(() => 1234);
29 render(<CloseButton onClick={onClick} data-testid="btn-close" />);
30
31 user.click(screen.getByTestId('btn-close'));
32
33 expect(onClick.mock.results[0].value).toBe(1234);
34 });
35
36 it('is not called when disabled', () => {
37 const onClick = jest.fn();
38 render(
39 <CloseButton onClick={onClick} disabled data-testid="btn-close" />,
40 );
41 user.click(screen.getByTestId('btn-close'));
42
43 expect(onClick).not.toHaveBeenCalled();
44 });
45 });
46});