From f7cc48495b085fe8f6cfa37e80e968d5b47639df Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Wed, 1 Jun 2022 23:21:30 +0200 Subject: test: install and configure cypress I also configure Jest to avoid conflicts between Cypress and Jest. --- tests/utils/index.tsx | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 tests/utils/index.tsx (limited to 'tests/utils/index.tsx') diff --git a/tests/utils/index.tsx b/tests/utils/index.tsx new file mode 100644 index 0000000..1bcea8e --- /dev/null +++ b/tests/utils/index.tsx @@ -0,0 +1,43 @@ +import { render, RenderOptions } from '@testing-library/react'; +import { ThemeProvider } from 'next-themes'; +import { FC, ReactElement, ReactNode } from 'react'; +import { IntlProvider } from 'react-intl'; + +type ProvidersConfig = { + children: ReactNode; + locale?: 'en' | 'fr'; +}; + +type CustomRenderOptions = { + providers?: ProvidersConfig; + testingLibrary?: Omit; +}; + +/** + * Return a component wrapped with Intl and Theme Provider. + * + * @returns A component wrapped Intl and Theme providers. + */ +const AllTheProviders: FC = ({ children, locale = 'en' }) => { + return ( + + {children} + + ); +}; + +/** + * Render a component with all the providers. + * + * @param {ReactElement} ui - A React component. + * @param {CustomRenderOptions} [options] - An object of render options and providers options. + * @returns A React component wrapped with all the providers. + */ +const customRender = (ui: ReactElement, options?: CustomRenderOptions) => + render(ui, { + wrapper: (props) => , + ...options?.testingLibrary, + }); + +export * from '@testing-library/react'; +export { customRender as render }; -- cgit v1.2.3