mirror of
https://github.com/Graylog2/graylog2-server.git
synced 2026-03-13 09:32:21 +08:00
* Fixing Quick Jump for API Browser. * Adding test. * Restoring exports, but making them explicit. * Adding missing exports. * Using cleaner type. * Exporting `cleanup` as well.
69 lines
2.3 KiB
TypeScript
69 lines
2.3 KiB
TypeScript
/*
|
|
* Copyright (C) 2020 Graylog, Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the Server Side Public License, version 1,
|
|
* as published by MongoDB, Inc.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* Server Side Public License for more details.
|
|
*
|
|
* You should have received a copy of the Server Side Public License
|
|
* along with this program. If not, see
|
|
* <http://www.mongodb.com/licensing/server-side-public-license>.
|
|
*/
|
|
import * as React from 'react';
|
|
import type { RenderOptions } from '@testing-library/react';
|
|
import { render } from '@testing-library/react';
|
|
import { createMemoryRouter, RouterProvider } from 'react-router-dom';
|
|
import '@testing-library/jest-dom/jest-globals';
|
|
import '@testing-library/jest-dom';
|
|
import 'jest-styled-components';
|
|
import DefaultProviders from 'DefaultProviders';
|
|
|
|
import PreflightWrappingContainer from '../PreflightWrappingContainer';
|
|
import WrappingContainer from '../WrappingContainer';
|
|
|
|
export const renderWithWrapper = (Component: React.ReactElement<any>, options?: RenderOptions) =>
|
|
render(Component, {
|
|
wrapper: WrappingContainer,
|
|
...options,
|
|
});
|
|
|
|
export const renderWithDataRouter = (element: React.ReactElement<any>, options?: RenderOptions) =>
|
|
render(<RouterProvider router={createMemoryRouter([{ path: '/', element }])} />, {
|
|
wrapper: DefaultProviders,
|
|
...options,
|
|
});
|
|
|
|
export const renderPreflightWithWrapper = (Component: React.ReactElement<any>, options?: RenderOptions) =>
|
|
render(Component, {
|
|
wrapper: PreflightWrappingContainer,
|
|
...options,
|
|
});
|
|
|
|
export function asElement<T extends new (...args: any) => any>(elem: any, elementType: T): InstanceType<T> {
|
|
if (elem && elem instanceof elementType) {
|
|
// @ts-ignore
|
|
return elem as T;
|
|
}
|
|
|
|
const { name } = elementType;
|
|
throw new Error(`Unable to cast ${elem?.constructor?.name ?? 'unknown'} to ${name}!`);
|
|
}
|
|
|
|
export type { Matcher } from '@testing-library/react';
|
|
export {
|
|
act,
|
|
cleanup,
|
|
renderHook,
|
|
screen,
|
|
fireEvent,
|
|
within,
|
|
waitFor,
|
|
waitForElementToBeRemoved,
|
|
} from '@testing-library/react';
|
|
export { renderWithWrapper as render, renderPreflightWithWrapper as renderPreflight, render as renderUnwrapped };
|