mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-08-19 09:30:21 +00:00
Co-authored-by: Pablo F.G <pablo.fernandez@prowler.com>
31 lines
922 B
TypeScript
31 lines
922 B
TypeScript
import type { ComponentType, PropsWithChildren, ReactElement } from "react";
|
|
import { render as vitestRender } from "vitest-browser-react";
|
|
|
|
import { TestAppShell } from "./app-shell";
|
|
|
|
/** Every browser-mode render gets the shared app shell (see `app-shell.tsx`). */
|
|
const TestProviders = ({ children }: PropsWithChildren) => (
|
|
<TestAppShell>{children}</TestAppShell>
|
|
);
|
|
|
|
type RenderOptions = Parameters<typeof vitestRender>[1];
|
|
|
|
export function render(ui: ReactElement, options?: RenderOptions) {
|
|
const userWrapper = options?.wrapper as
|
|
| ComponentType<PropsWithChildren>
|
|
| undefined;
|
|
|
|
const Wrapper = userWrapper
|
|
? ({ children }: PropsWithChildren) => {
|
|
const Inner = userWrapper;
|
|
return (
|
|
<TestProviders>
|
|
<Inner>{children}</Inner>
|
|
</TestProviders>
|
|
);
|
|
}
|
|
: TestProviders;
|
|
|
|
return vitestRender(ui, { ...options, wrapper: Wrapper });
|
|
}
|