From 941cb81738ad86154795c04d4e38bf43b5adfc9a Mon Sep 17 00:00:00 2001 From: Dana Hartweg Date: Sat, 22 Dec 2018 13:52:59 -0500 Subject: [PATCH 1/3] feat: Add blur support to fireEvent --- src/fireEvent.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/fireEvent.js b/src/fireEvent.js index 8386ecd6a..b37fe3178 100644 --- a/src/fireEvent.js +++ b/src/fireEvent.js @@ -34,6 +34,8 @@ const toEventHandlerName = (eventName: string) => const pressHandler = (element: ReactTestInstance) => invokeEvent(element, 'press'); +const blurHandler = (element: ReactTestInstance) => + invokeEvent(element, 'blur'); const changeTextHandler = (element: ReactTestInstance, data?: *) => invokeEvent(element, 'changeText', data); const scrollHandler = (element: ReactTestInstance, data?: *) => @@ -42,6 +44,7 @@ const scrollHandler = (element: ReactTestInstance, data?: *) => const fireEvent = invokeEvent; fireEvent.press = pressHandler; +fireEvent.blur = blurHandler; fireEvent.changeText = changeTextHandler; fireEvent.scroll = scrollHandler; From 33e0d5f8fd176a265e96657929a00548cd1d6d1c Mon Sep 17 00:00:00 2001 From: Dana Hartweg Date: Sat, 22 Dec 2018 13:53:25 -0500 Subject: [PATCH 2/3] test: Add test for fireEvent.blur --- src/__tests__/fireEvent.test.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/__tests__/fireEvent.test.js b/src/__tests__/fireEvent.test.js index 54ccdaab3..81d008899 100644 --- a/src/__tests__/fireEvent.test.js +++ b/src/__tests__/fireEvent.test.js @@ -128,3 +128,17 @@ test('fireEvent.changeText', () => { expect(onChangeTextMock).toHaveBeenCalledWith(CHANGE_TEXT); }); + +test('fireEvent.blur', () => { + const onBlurMock = jest.fn(); + + const { getByTestId } = render( + + + + ); + + fireEvent.blur(getByTestId('text-input')); + + expect(onBlurMock).toHaveBeenCalled(); +}); From 713837310f6a36edb328d2ef7b091d0dfe870f01 Mon Sep 17 00:00:00 2001 From: Dana Hartweg Date: Sat, 22 Dec 2018 13:53:51 -0500 Subject: [PATCH 3/3] docs: Add documentation for fireEvent.blur --- docs/API.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/API.md b/docs/API.md index 4dd529748..39000eefa 100644 --- a/docs/API.md +++ b/docs/API.md @@ -200,6 +200,25 @@ const { getByTestId } = render( fireEvent.changeText(getByTestId('text-input'), CHANGE_TEXT); ``` +### `fireEvent.blur: (element: ReactTestInstance) => void` + +Invokes `blur` event handler on the element or parent element in the tree. + +```jsx +import { View, TextInput } from 'react-native'; +import { render, fireEvent } from 'react-native-testing-library'; + +const onBlurMock = jest.fn(); + +const { getByTestId } = render( + + + +); + +fireEvent.blur(getByTestId('text-input')); +``` + ### `fireEvent.scroll: (element: ReactTestInstance, data?: *) => void` Invokes `scroll` event handler on the element or parent element in the tree.