import { fireEvent } from '@testing-library/react' import userEvent from '@testing-library/user-event' import * as React from 'react' import renderWithTheme from '../../tests/helpers/renderWithTheme' import CheckBox from './CheckBox' describe('component: CheckBox', () => { test('should trigger onChange event', () => { const onChange = jest.fn() const { getByTestId } = renderWithTheme( ) fireEvent.click(getByTestId('will-check')) expect(onChange).toHaveBeenCalled() }) test('should trigger onFocus event', () => { const onFocus = jest.fn() const { getByTestId } = renderWithTheme( ) fireEvent.focus(getByTestId('will-check')) expect(onFocus).toHaveBeenCalled() }) test('should trigger onBlur event', () => { const onBlur = jest.fn() const { getByTestId } = renderWithTheme( ) fireEvent.blur(getByTestId('will-check')) expect(onBlur).toHaveBeenCalled() }) test('should not trigger onChange event', () => { const onChange = jest.fn() const { getByTestId } = renderWithTheme( ) userEvent.click(getByTestId('will-not-check')) expect(onChange).not.toHaveBeenCalled() }) test('should not trigger onFocus event', () => { const onFocus = jest.fn() const { getByTestId } = renderWithTheme( ) userEvent.click(getByTestId('will-not-check')) expect(onFocus).not.toHaveBeenCalled() }) test('should support ref prop', () => { const ref = React.createRef() const { getByTestId } = renderWithTheme( ) expect(getByTestId('inreffable')).toBe(ref.current) expect(ref.current).toBeChecked() }) describe('with theme customization', () => { test('should have 2px border', () => { const { getByTestId } = renderWithTheme(, { border: 'thick', }) const checkBox = getByTestId('checkbox') const checkboxStyles = window.getComputedStyle(checkBox) expect(checkboxStyles.borderWidth).toBe('0px') }) }) })