-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathcustomized-testing-library.test.utils.tsx
36 lines (31 loc) · 1.29 KB
/
customized-testing-library.test.utils.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import React, { ReactNode } from "react";
import { act, render, RenderOptions } from "@testing-library/react";
import { i18nextConfig, TranslationsProvider } from "../i18n/i18nextConfig";
import { VisForContextProvider } from "../components/BlockContent/VisFor/VisForContext";
import { DevContextProvider } from "../components/DevKnapper/DevContext";
import { SupportedLanguage } from "../i18n/supportedLanguages";
import { PreviewContextProvider } from "../components/Preview/previewContext";
// https://testing-library.com/docs/react-testing-library/setup#custom-render
const AllTheProviders =
(lang: SupportedLanguage): React.FunctionComponent<any> =>
(props: { children: ReactNode }) => {
act(() => {
i18nextConfig.changeLanguage(lang);
});
return (
<VisForContextProvider>
<DevContextProvider>
<PreviewContextProvider>
<TranslationsProvider>{props.children}</TranslationsProvider>
</PreviewContextProvider>
</DevContextProvider>
</VisForContextProvider>
);
};
const customRender = (
ui: React.ReactElement,
options?: Omit<RenderOptions, "queries">,
lang: SupportedLanguage = "no"
) => render(ui, { wrapper: AllTheProviders(lang), ...options });
export * from "@testing-library/react";
export { customRender as render };