import React, { ReactNode } from "react"; import { BrowserRouter } from "react-router-dom"; import { AccessControlProvider, AuthProvider, LegacyAuthProvider, NotificationProvider, Refine, I18nProvider, DataProvider, IResourceItem, RouterBindings, } from "@refinedev/core"; import { MockRouterProvider, MockJSONServer } from "@test"; import { IRefineOptions } from "@refinedev/core/dist/interfaces"; const List = () => { return
hede
; }; export interface ITestWrapperProps { dataProvider?: DataProvider; routerProvider?: RouterBindings; authProvider?: AuthProvider; legacyAuthProvider?: LegacyAuthProvider; resources?: IResourceItem[]; notificationProvider?: NotificationProvider; accessControlProvider?: AccessControlProvider; i18nProvider?: I18nProvider; routerInitialEntries?: string[]; DashboardPage?: React.FC; options?: IRefineOptions; } export const TestWrapper: ( props: ITestWrapperProps, ) => React.FC<{ children?: ReactNode }> = ({ dataProvider, authProvider, routerProvider, legacyAuthProvider, resources, notificationProvider, accessControlProvider, routerInitialEntries, DashboardPage, i18nProvider, options, }) => { // Previously, MemoryRouter was used in this wrapper. However, the // recommendation by react-router developers (see // https://github.com/remix-run/react-router/discussions/8241#discussioncomment-159686) // is essentially to use the same router as your actual application. Besides // that, it's impossible to check for location changes with MemoryRouter if // needed. if (routerInitialEntries) { routerInitialEntries.forEach((route) => { window.history.replaceState({}, "", route); }); } // eslint-disable-next-line react/display-name return ({ children }): React.ReactElement => { return ( {children} ); }; }; export { MockJSONServer, MockRouterProvider, MockAccessControlProvider, MockLiveProvider, } from "./dataMocks"; // re-export everything export * from "@testing-library/react";