-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathjest.setup.js
More file actions
41 lines (35 loc) · 1.3 KB
/
Copy pathjest.setup.js
File metadata and controls
41 lines (35 loc) · 1.3 KB
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
37
38
39
40
41
import React from "react";
import { Provider } from "react-redux";
import { BrowserRouter } from "react-router-dom";
import { GoogleOAuthProvider } from "@react-oauth/google";
import "@testing-library/jest-dom/extend-expect";
import { render as rtlRender } from "@testing-library/react";
import { ThemeProvider } from "styled-components";
import { mockIntersectionObserver } from "./__test__/__mocks__/mockIntersectionObserver.js";
import { server } from "./__test__/__mocks__/server.js";
import { setupStore } from "./src/store/index.js";
import lightTheme from "./src/styles/theme.js";
beforeAll(() => server.listen());
afterEach(() => server.resetHandlers());
afterAll(() => server.close());
global.IntersectionObserver = mockIntersectionObserver;
export const render = (
ui,
{
preloadedState = {},
store = setupStore(preloadedState),
...renderOptions
} = {},
) => {
const Wrapper = ({ children }) => (
<GoogleOAuthProvider clientId="379597382111-vo2ht0r8a3d0ais7v12q7777lu48al1a.apps.googleusercontent.com">
<Provider store={store}>
<ThemeProvider theme={lightTheme}>
<BrowserRouter>{children}</BrowserRouter>
</ThemeProvider>
</Provider>
</GoogleOAuthProvider>
);
return { store, ...rtlRender(ui, { wrapper: Wrapper, ...renderOptions }) };
};
export * from "@testing-library/react";