From ea795badd8830dd8ebcb95d39052c2718dac79ce Mon Sep 17 00:00:00 2001 From: Maciej Jastrzebski Date: Mon, 16 Sep 2024 16:16:40 +0200 Subject: [PATCH] refactor: centralize renderer selection --- src/__tests__/auto-cleanup.test.tsx | 6 +----- src/__tests__/host-component-names.test.tsx | 6 +----- src/__tests__/screen.test.tsx | 6 +----- src/matchers/__tests__/extend-expect.test.tsx | 6 +----- src/matchers/__tests__/to-be-busy.test.tsx | 6 +----- src/matchers/__tests__/to-be-checked.test.tsx | 6 +----- src/matchers/__tests__/to-be-disabled.test.tsx | 6 +----- src/matchers/__tests__/to-be-empty-element.test.tsx | 6 +----- src/matchers/__tests__/to-be-expanded.test.tsx | 6 +----- src/matchers/__tests__/to-be-on-the-screen.test.tsx | 6 +----- src/matchers/__tests__/to-have-display-value.test.tsx | 6 +----- src/queries/__tests__/accessibility-state.test.tsx | 3 +-- src/queries/__tests__/accessibility-value.test.tsx | 3 +-- src/queries/__tests__/display-value.test.tsx | 6 +----- src/queries/__tests__/placeholder-text.test.tsx | 6 +----- src/queries/__tests__/role.test.tsx | 6 +----- src/queries/__tests__/test-id.test.tsx | 6 +----- src/queries/__tests__/text.test.tsx | 8 ++------ src/user-event/press/__tests__/press.real-timers.test.tsx | 6 +----- src/user-event/press/__tests__/press.test.tsx | 6 +----- src/user-event/type/__tests__/type.test.tsx | 3 +-- 21 files changed, 22 insertions(+), 97 deletions(-) diff --git a/src/__tests__/auto-cleanup.test.tsx b/src/__tests__/auto-cleanup.test.tsx index f0cba16d..157b4085 100644 --- a/src/__tests__/auto-cleanup.test.tsx +++ b/src/__tests__/auto-cleanup.test.tsx @@ -1,10 +1,6 @@ import * as React from 'react'; import { View } from 'react-native'; -import { configure, render } from '..'; - -beforeEach(() => { - configure({ renderer: 'internal' }); -}); +import { render } from '..'; let isMounted = false; diff --git a/src/__tests__/host-component-names.test.tsx b/src/__tests__/host-component-names.test.tsx index 6e6a18eb..fd2b6520 100644 --- a/src/__tests__/host-component-names.test.tsx +++ b/src/__tests__/host-component-names.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { View } from 'react-native'; import TestRenderer from 'react-test-renderer'; -import { configure, configureInternal, getConfig } from '../config'; +import { configureInternal, getConfig } from '../config'; import { getHostComponentNames, configureHostComponentNamesIfNeeded, @@ -9,10 +9,6 @@ import { import { act, render } from '..'; import * as internalRenderer from '../renderer/renderer'; -beforeEach(() => { - configure({ renderer: 'internal' }); -}); - describe('getHostComponentNames', () => { test('returns host component names from internal config', () => { configureInternal({ diff --git a/src/__tests__/screen.test.tsx b/src/__tests__/screen.test.tsx index beefdf56..b22e9252 100644 --- a/src/__tests__/screen.test.tsx +++ b/src/__tests__/screen.test.tsx @@ -1,10 +1,6 @@ import * as React from 'react'; import { View, Text } from 'react-native'; -import { configure, render, screen } from '..'; - -beforeEach(() => { - configure({ renderer: 'internal' }); -}); +import { render, screen } from '..'; test('screen has the same queries as render result', () => { const result = render(Mt. Everest); diff --git a/src/matchers/__tests__/extend-expect.test.tsx b/src/matchers/__tests__/extend-expect.test.tsx index 13f1ecad..1889926a 100644 --- a/src/matchers/__tests__/extend-expect.test.tsx +++ b/src/matchers/__tests__/extend-expect.test.tsx @@ -2,11 +2,7 @@ import * as React from 'react'; import { View } from 'react-native'; // Note: that must point to root of the /src to reliably replicate default import. -import { configure, render } from '../..'; - -beforeEach(() => { - configure({ renderer: 'internal' }); -}); +import { render } from '../..'; // This is check that RNTL does not extend "expect" by default, until we actually want to expose Jest matchers publically. test('does not extend "expect" by default', () => { diff --git a/src/matchers/__tests__/to-be-busy.test.tsx b/src/matchers/__tests__/to-be-busy.test.tsx index b129a534..8de385f4 100644 --- a/src/matchers/__tests__/to-be-busy.test.tsx +++ b/src/matchers/__tests__/to-be-busy.test.tsx @@ -1,12 +1,8 @@ import * as React from 'react'; import { View } from 'react-native'; -import { configure, render, screen } from '../..'; +import { render, screen } from '../..'; import '../extend-expect'; -beforeEach(() => { - configure({ renderer: 'internal' }); -}); - test('toBeBusy() basic case', () => { render( <> diff --git a/src/matchers/__tests__/to-be-checked.test.tsx b/src/matchers/__tests__/to-be-checked.test.tsx index d4dfc444..6cdc2979 100644 --- a/src/matchers/__tests__/to-be-checked.test.tsx +++ b/src/matchers/__tests__/to-be-checked.test.tsx @@ -1,12 +1,8 @@ import React from 'react'; import { type AccessibilityRole, Switch, View } from 'react-native'; -import { render, screen, configure } from '../..'; +import { render, screen } from '../..'; import '../extend-expect'; -beforeEach(() => { - configure({ renderer: 'internal' }); -}); - function renderViewsWithRole(role: AccessibilityRole) { render( <> diff --git a/src/matchers/__tests__/to-be-disabled.test.tsx b/src/matchers/__tests__/to-be-disabled.test.tsx index f6bad344..f43757cb 100644 --- a/src/matchers/__tests__/to-be-disabled.test.tsx +++ b/src/matchers/__tests__/to-be-disabled.test.tsx @@ -10,13 +10,9 @@ import { Text, View, } from 'react-native'; -import { configure, render, screen } from '../..'; +import { render, screen } from '../..'; import '../extend-expect'; -// beforeEach(() => { -// configure({ renderer: 'internal' }); -// }); - test('toBeDisabled()/toBeEnabled() supports basic case', () => { render( diff --git a/src/matchers/__tests__/to-be-empty-element.test.tsx b/src/matchers/__tests__/to-be-empty-element.test.tsx index b9c559bc..a6325601 100644 --- a/src/matchers/__tests__/to-be-empty-element.test.tsx +++ b/src/matchers/__tests__/to-be-empty-element.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { View } from 'react-native'; -import { configure, render, screen } from '../..'; +import { render, screen } from '../..'; import '../extend-expect'; // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -9,10 +9,6 @@ function DoNotRenderChildren({ children }: { children: React.ReactNode }) { return null; } -beforeEach(() => { - configure({ renderer: 'internal' }); -}); - test('toBeEmptyElement() base case', () => { render( diff --git a/src/matchers/__tests__/to-be-expanded.test.tsx b/src/matchers/__tests__/to-be-expanded.test.tsx index c8f6adb0..b82dd6ed 100644 --- a/src/matchers/__tests__/to-be-expanded.test.tsx +++ b/src/matchers/__tests__/to-be-expanded.test.tsx @@ -1,12 +1,8 @@ import * as React from 'react'; import { View } from 'react-native'; -import { configure, render, screen } from '../..'; +import { render, screen } from '../..'; import '../extend-expect'; -beforeEach(() => { - configure({ renderer: 'internal' }); -}); - test('toBeExpanded() basic case', () => { render( <> diff --git a/src/matchers/__tests__/to-be-on-the-screen.test.tsx b/src/matchers/__tests__/to-be-on-the-screen.test.tsx index 07d8b275..217f06d0 100644 --- a/src/matchers/__tests__/to-be-on-the-screen.test.tsx +++ b/src/matchers/__tests__/to-be-on-the-screen.test.tsx @@ -1,12 +1,8 @@ import * as React from 'react'; import { View, Text } from 'react-native'; -import { configure, render, screen } from '../..'; +import { render, screen } from '../..'; import '../extend-expect'; -beforeEach(() => { - configure({ renderer: 'internal' }); -}); - test('toBeOnTheScreen() example test', () => { render( diff --git a/src/matchers/__tests__/to-have-display-value.test.tsx b/src/matchers/__tests__/to-have-display-value.test.tsx index 32881483..e5ebd7e4 100644 --- a/src/matchers/__tests__/to-have-display-value.test.tsx +++ b/src/matchers/__tests__/to-have-display-value.test.tsx @@ -1,12 +1,8 @@ import * as React from 'react'; import { TextInput, View } from 'react-native'; -import { configure, render, screen } from '../..'; +import { render, screen } from '../..'; import '../extend-expect'; -beforeEach(() => { - configure({ renderer: 'internal' }); -}); - test('toHaveDisplayValue() example test', () => { render(); diff --git a/src/queries/__tests__/accessibility-state.test.tsx b/src/queries/__tests__/accessibility-state.test.tsx index 6944a044..db837c81 100644 --- a/src/queries/__tests__/accessibility-state.test.tsx +++ b/src/queries/__tests__/accessibility-state.test.tsx @@ -1,12 +1,11 @@ /* eslint-disable no-console */ import * as React from 'react'; import { View, Text, Pressable, TouchableOpacity } from 'react-native'; -import { configure, render, screen } from '../..'; +import { render, screen } from '../..'; type ConsoleLogMock = jest.Mock; beforeEach(() => { - configure({ renderer: 'internal' }); jest.spyOn(console, 'warn').mockImplementation(() => {}); }); diff --git a/src/queries/__tests__/accessibility-value.test.tsx b/src/queries/__tests__/accessibility-value.test.tsx index b64f3921..c20d5725 100644 --- a/src/queries/__tests__/accessibility-value.test.tsx +++ b/src/queries/__tests__/accessibility-value.test.tsx @@ -1,12 +1,11 @@ /* eslint-disable no-console */ import * as React from 'react'; import { Text, TouchableOpacity, View } from 'react-native'; -import { configure, render, screen } from '../..'; +import { render, screen } from '../..'; type ConsoleLogMock = jest.Mock; beforeEach(() => { - configure({ renderer: 'internal' }); jest.spyOn(console, 'warn').mockImplementation(() => {}); }); diff --git a/src/queries/__tests__/display-value.test.tsx b/src/queries/__tests__/display-value.test.tsx index 7b3eb7ec..fb8d5e68 100644 --- a/src/queries/__tests__/display-value.test.tsx +++ b/src/queries/__tests__/display-value.test.tsx @@ -1,12 +1,8 @@ import * as React from 'react'; import { TextInput, View } from 'react-native'; -import { configure, fireEvent, render, screen } from '../..'; +import { fireEvent, render, screen } from '../..'; import '../../matchers/extend-expect'; -beforeEach(() => { - configure({ renderer: 'internal' }); -}); - const PLACEHOLDER_FRESHNESS = 'Add custom freshness'; const PLACEHOLDER_CHEF = 'Who inspected freshness?'; const INPUT_FRESHNESS = 'Custom Freshie'; diff --git a/src/queries/__tests__/placeholder-text.test.tsx b/src/queries/__tests__/placeholder-text.test.tsx index 8f46b022..61a394ac 100644 --- a/src/queries/__tests__/placeholder-text.test.tsx +++ b/src/queries/__tests__/placeholder-text.test.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import { TextInput, View } from 'react-native'; -import { configure, render, screen } from '../..'; +import { render, screen } from '../..'; const PLACEHOLDER_FRESHNESS = 'Add custom freshness'; const PLACEHOLDER_CHEF = 'Who inspected freshness?'; @@ -24,10 +24,6 @@ const Banana = () => ( ); -beforeEach(() => { - configure({ renderer: 'internal' }); -}); - test('getByPlaceholderText, queryByPlaceholderText', () => { render(); const input = screen.getByPlaceholderText(/custom/i); diff --git a/src/queries/__tests__/role.test.tsx b/src/queries/__tests__/role.test.tsx index 48923a3c..9feb21ba 100644 --- a/src/queries/__tests__/role.test.tsx +++ b/src/queries/__tests__/role.test.tsx @@ -10,7 +10,7 @@ import { View, Switch, } from 'react-native'; -import { configure, render, screen } from '../..'; +import { render, screen } from '../..'; const TEXT_LABEL = 'cool text'; @@ -42,10 +42,6 @@ const Section = () => ( ); -beforeEach(() => { - configure({ renderer: 'internal' }); -}); - test('getByRole, queryByRole, findByRole', async () => { render(
); diff --git a/src/queries/__tests__/test-id.test.tsx b/src/queries/__tests__/test-id.test.tsx index f8170bd8..349a8034 100644 --- a/src/queries/__tests__/test-id.test.tsx +++ b/src/queries/__tests__/test-id.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { Button, Text, TextInput, View } from 'react-native'; -import { configure, render, screen } from '../..'; +import { render, screen } from '../..'; const PLACEHOLDER_FRESHNESS = 'Add custom freshness'; const PLACEHOLDER_CHEF = 'Who inspected freshness?'; @@ -24,10 +24,6 @@ const Banana = () => ( const MyComponent = (_props: { testID?: string }) => My Component; -beforeEach(() => { - configure({ renderer: 'internal' }); -}); - test('getByTestId returns only native elements', () => { render( diff --git a/src/queries/__tests__/text.test.tsx b/src/queries/__tests__/text.test.tsx index c9547e30..089ed279 100644 --- a/src/queries/__tests__/text.test.tsx +++ b/src/queries/__tests__/text.test.tsx @@ -1,10 +1,6 @@ import * as React from 'react'; import { Button, Image, Text, TextInput, TouchableOpacity, View } from 'react-native'; -import { configure, getDefaultNormalizer, render, screen, within } from '../..'; - -beforeEach(() => { - configure({ renderer: 'internal' }); -}); +import { getDefaultNormalizer, render, screen, within } from '../..'; test('byText matches simple text', () => { render(Hello World); @@ -20,7 +16,7 @@ test('byText matches inner nested text', () => { expect(screen.getByText('Hello World').props.testID).toBe('inner'); }); -test('byText matches accross multiple texts', () => { +test('byText matches across multiple texts', () => { render( Hello World diff --git a/src/user-event/press/__tests__/press.real-timers.test.tsx b/src/user-event/press/__tests__/press.real-timers.test.tsx index 293321bc..1ba53c27 100644 --- a/src/user-event/press/__tests__/press.real-timers.test.tsx +++ b/src/user-event/press/__tests__/press.real-timers.test.tsx @@ -8,13 +8,9 @@ import { View, } from 'react-native'; import { createEventLogger, getEventsNames } from '../../../test-utils'; -import { configure, render, screen } from '../../..'; +import { render, screen } from '../../..'; import { userEvent } from '../..'; -// beforeEach(() => { -// configure({ renderer: 'internal' }); -// }); - describe('userEvent.press with real timers', () => { beforeEach(() => { jest.useRealTimers(); diff --git a/src/user-event/press/__tests__/press.test.tsx b/src/user-event/press/__tests__/press.test.tsx index 271be9b9..c4ff8be7 100644 --- a/src/user-event/press/__tests__/press.test.tsx +++ b/src/user-event/press/__tests__/press.test.tsx @@ -9,13 +9,9 @@ import { Button, } from 'react-native'; import { createEventLogger, getEventsNames } from '../../../test-utils'; -import { configure, render, screen } from '../../..'; +import { render, screen } from '../../..'; import { userEvent } from '../..'; -// beforeEach(() => { -// configure({ renderer: 'internal' }); -// }); - describe('userEvent.press with fake timers', () => { beforeEach(() => { jest.useFakeTimers(); diff --git a/src/user-event/type/__tests__/type.test.tsx b/src/user-event/type/__tests__/type.test.tsx index 5e6a09a7..8e55c774 100644 --- a/src/user-event/type/__tests__/type.test.tsx +++ b/src/user-event/type/__tests__/type.test.tsx @@ -1,12 +1,11 @@ import * as React from 'react'; import { TextInput, TextInputProps, View } from 'react-native'; import { createEventLogger, getEventsNames, lastEventPayload } from '../../../test-utils'; -import { configure, render, screen } from '../../..'; +import { render, screen } from '../../..'; import { userEvent } from '../..'; import '../../../matchers/extend-expect'; beforeEach(() => { - configure({ renderer: 'internal' }); jest.useRealTimers(); });