@@ -4,6 +4,9 @@ title: Setup
44sidebar_label : Setup
55---
66
7+ import Tabs from ' @theme/Tabs'
8+ import TabItem from ' @theme/TabItem'
9+
710` React Testing Library ` does not require any configuration to be used. However,
811there are some things you can do when configuring your testing framework to
912reduce some boilerplate. In these docs we'll demonstrate configuring Jest, but
@@ -28,12 +31,17 @@ make your test util file accessible without using relative paths.
2831The example below sets up data providers using the [ ` wrapper ` ] ( api.mdx#wrapper )
2932option to ` render ` .
3033
31- ``` diff title="my-component.test.js"
34+ <Tabs groupId = " test-utils" defaultValue = " jsx" values = { [ {label: ' Javascript' ,
35+ value: ' jsx' }, {label: ' Typescript' , value: ' tsx' }, ]} >
36+
37+ <TabItem value = " jsx" >
38+
39+ ``` diff title="my-component.test.jsx"
3240- import { render, fireEvent } from '@testing-library/react';
3341+ import { render, fireEvent } from '../test-utils';
3442```
3543
36- ``` js title="test-utils.js "
44+ ``` jsx title="test-utils.jsx "
3745import React from ' react'
3846import { render } from ' @testing-library/react'
3947import { ThemeProvider } from ' my-ui-lib'
@@ -60,6 +68,46 @@ export * from '@testing-library/react'
6068export { customRender as render }
6169```
6270
71+ </TabItem >
72+
73+ <TabItem value = " tsx" >
74+
75+ ``` diff title="my-component.test.tsx"
76+ - import { render, fireEvent } from '@testing-library/react';
77+ + import { render, fireEvent } from '../test-utils';
78+ ```
79+
80+ ``` tsx title="test-utils.tsx"
81+ import React , { FC } from ' react'
82+ import { render } from ' @testing-library/react'
83+ import { ThemeProvider } from ' my-ui-lib'
84+ import { TranslationProvider } from ' my-i18n-lib'
85+ import defaultStrings from ' i18n/en-x-default'
86+
87+ const AllTheProviders: FC = ({ children }) => {
88+ return (
89+ <ThemeProvider theme = " light" >
90+ <TranslationProvider messages = { defaultStrings } >
91+ { children }
92+ </TranslationProvider >
93+ </ThemeProvider >
94+ )
95+ }
96+
97+ const customRender = (
98+ ui : ReactElement ,
99+ options ? : Omit <RenderOptions , ' queries' >
100+ ) => render (ui , { wrapper: AllTheProviders , ... options })
101+
102+ export * from ' @testing-library/react'
103+
104+ export { customRender as render }
105+ ```
106+
107+ </TabItem >
108+
109+ </Tabs >
110+
63111> ** Note**
64112>
65113> Babel versions lower than 7 throw an error when trying to override the named
0 commit comments