", () => {
- const onMouseOver = jest.fn();
- const onMouseMove = jest.fn();
- const onMouseDown = jest.fn();
- const onFocus = jest.fn();
- const onMouseUp = jest.fn();
- const onClick = jest.fn();
+import React from 'react'
+import { render, cleanup } from 'react-testing-library'
+import 'jest-dom/extend-expect'
+import userEvent from '../src'
+
+afterEach(cleanup)
+
+describe('fireEvent.click', () => {
+ it.each(['input', 'textarea'])(
+ 'should fire the correct events for <%s>',
+ type => {
+ const onMouseOver = jest.fn()
+ const onMouseMove = jest.fn()
+ const onMouseDown = jest.fn()
+ const onFocus = jest.fn()
+ const onMouseUp = jest.fn()
+ const onClick = jest.fn()
+ const { getByTestId } = render(
+ React.createElement(type, {
+ 'data-testid': 'element',
+ onMouseOver: onMouseOver,
+ onMouseMove: onMouseMove,
+ onMouseDown: onMouseDown,
+ onFocus: onFocus,
+ onMouseUp: onMouseUp,
+ onClick: onClick,
+ })
+ )
+
+ expect(onMouseOver).not.toHaveBeenCalled()
+ expect(onMouseMove).not.toHaveBeenCalled()
+ expect(onMouseDown).not.toHaveBeenCalled()
+ expect(onFocus).not.toHaveBeenCalled()
+ expect(onMouseUp).not.toHaveBeenCalled()
+ expect(onClick).not.toHaveBeenCalled()
+
+ userEvent.click(getByTestId('element'))
+
+ expect(onMouseOver).toHaveBeenCalledTimes(1)
+ expect(onMouseMove).toHaveBeenCalledTimes(1)
+ expect(onMouseDown).toHaveBeenCalledTimes(1)
+ expect(onFocus).toHaveBeenCalledTimes(1)
+ expect(onMouseUp).toHaveBeenCalledTimes(1)
+ expect(onClick).toHaveBeenCalledTimes(1)
+ }
+ )
+
+ it('should fire the correct events for
', () => {
+ const onMouseOver = jest.fn()
+ const onMouseMove = jest.fn()
+ const onMouseDown = jest.fn()
+ const onFocus = jest.fn()
+ const onMouseUp = jest.fn()
+ const onClick = jest.fn()
const { getByTestId } = render(
{
onMouseUp={onMouseUp}
onClick={onClick}
/>
- );
-
- expect(onMouseOver).not.toHaveBeenCalled();
- expect(onMouseMove).not.toHaveBeenCalled();
- expect(onMouseDown).not.toHaveBeenCalled();
- expect(onFocus).not.toHaveBeenCalled();
- expect(onMouseUp).not.toHaveBeenCalled();
- expect(onClick).not.toHaveBeenCalled();
-
- userEvent.click(getByTestId("div"));
-
- expect(onMouseOver).toHaveBeenCalledTimes(1);
- expect(onMouseMove).toHaveBeenCalledTimes(1);
- expect(onMouseDown).toHaveBeenCalledTimes(1);
- expect(onFocus).not.toHaveBeenCalled();
- expect(onMouseUp).toHaveBeenCalledTimes(1);
- expect(onClick).toHaveBeenCalledTimes(1);
- });
-
- it("toggles the focus", () => {
+ )
+
+ expect(onMouseOver).not.toHaveBeenCalled()
+ expect(onMouseMove).not.toHaveBeenCalled()
+ expect(onMouseDown).not.toHaveBeenCalled()
+ expect(onFocus).not.toHaveBeenCalled()
+ expect(onMouseUp).not.toHaveBeenCalled()
+ expect(onClick).not.toHaveBeenCalled()
+
+ userEvent.click(getByTestId('div'))
+
+ expect(onMouseOver).toHaveBeenCalledTimes(1)
+ expect(onMouseMove).toHaveBeenCalledTimes(1)
+ expect(onMouseDown).toHaveBeenCalledTimes(1)
+ expect(onFocus).not.toHaveBeenCalled()
+ expect(onMouseUp).toHaveBeenCalledTimes(1)
+ expect(onClick).toHaveBeenCalledTimes(1)
+ })
+
+ it('toggles the focus', () => {
const { getByTestId } = render(
- );
-
- const a = getByTestId("A");
- const b = getByTestId("B");
-
- expect(a).not.toHaveFocus();
- expect(b).not.toHaveFocus();
-
- userEvent.click(a);
- expect(a).toHaveFocus();
- expect(b).not.toHaveFocus();
-
- userEvent.click(b);
- expect(a).not.toHaveFocus();
- expect(a).not.toHaveFocus();
- });
-
- it("gives focus when clicking a