2022-04-08 16:01:43 +02:00
|
|
|
import React, { FC } from 'react';
|
|
|
|
import { BrowserRouter as Router } from 'react-router-dom';
|
2022-04-08 12:26:44 +02:00
|
|
|
import { render as rtlRender, RenderOptions } from '@testing-library/react';
|
2022-04-08 15:02:06 +02:00
|
|
|
import { SWRConfig } from 'swr';
|
2022-04-08 16:01:43 +02:00
|
|
|
import { MainThemeProvider } from 'themes/MainThemeProvider';
|
2022-04-27 09:14:44 +02:00
|
|
|
import { AnnouncerProvider } from 'component/common/Announcer/AnnouncerProvider/AnnouncerProvider';
|
2022-04-08 12:26:44 +02:00
|
|
|
|
|
|
|
export const render = (
|
|
|
|
ui: JSX.Element,
|
|
|
|
{
|
|
|
|
route = '/',
|
|
|
|
...renderOptions
|
|
|
|
}: { route?: string } & Omit<RenderOptions, 'queries'> = {}
|
|
|
|
) => {
|
|
|
|
window.history.pushState({}, 'Test page', route);
|
|
|
|
|
|
|
|
return rtlRender(ui, {
|
2022-04-08 15:02:06 +02:00
|
|
|
wrapper: Wrapper,
|
2022-04-08 12:26:44 +02:00
|
|
|
...renderOptions,
|
|
|
|
});
|
|
|
|
};
|
2022-04-08 15:02:06 +02:00
|
|
|
|
2022-04-08 16:01:43 +02:00
|
|
|
const Wrapper: FC = ({ children }) => {
|
2022-04-08 15:02:06 +02:00
|
|
|
return (
|
|
|
|
<SWRConfig value={{ provider: () => new Map() }}>
|
2022-04-08 16:01:43 +02:00
|
|
|
<MainThemeProvider>
|
2022-04-27 09:14:44 +02:00
|
|
|
<AnnouncerProvider>
|
|
|
|
<Router>{children}</Router>
|
|
|
|
</AnnouncerProvider>
|
2022-04-08 16:01:43 +02:00
|
|
|
</MainThemeProvider>
|
2022-04-08 15:02:06 +02:00
|
|
|
</SWRConfig>
|
|
|
|
);
|
|
|
|
};
|