Files
nebula.js/commands/serve/web/utils/testRenderer.jsx
renovate[bot] 5cde83c607 chore(deps): update dependency react-router-dom to v7 (#1644)
* chore(deps): update dependency react-router-dom to v7

* chore: additions

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: caele <tsm@qlik.com>
2024-12-27 14:54:55 +01:00

53 lines
1.4 KiB
JavaScript

import React from 'react';
import { render } from '@testing-library/react';
import userEvents from '@testing-library/user-event';
import { BrowserRouter } from 'react-router';
import { createTheme, ThemeProvider } from '@nebula.js/ui/theme';
import { RootContext } from '../contexts/RootContext';
const theme = createTheme('light');
export function TestRenderer(component, contextValuesOverride) {
const contextValue = {
// context values
storage: () => {},
// useInfo result
info: {},
setInfo: () => {},
// useConnection result
glob: {},
setGlobal: () => {},
treatAsDesktop: false,
setTreatAsDesktop: () => {},
error: {},
setError: () => {},
activeStep: 0,
setActiveStep: () => {},
// useCachedConnections result
cachedConnectionsData: {
cachedConnections: [],
addCachedConnections: () => {},
removeCachedConnection: () => {},
},
// override what ever you want in render level
...contextValuesOverride,
};
const Wrapper = ({ children }) => (
<BrowserRouter>
<RootContext.Provider value={contextValue}>
<ThemeProvider theme={theme}>{children}</ThemeProvider>
</RootContext.Provider>
</BrowserRouter>
);
return { ...render(component, { wrapper: Wrapper }), userEvents: userEvents.setup() };
}
export const RouterWrapper = ({ children }) => <BrowserRouter>{children}</BrowserRouter>;