1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-06-04 01:18:20 +02:00

refactor: custom render should provide container (#4938)

This commit is contained in:
Mateusz Kwasniewski 2023-10-06 09:19:49 +02:00 committed by GitHub
parent bed26a938c
commit 80eb6e12c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 261 additions and 320 deletions

View File

@ -5,7 +5,6 @@ import { ChangeRequestState } from 'component/changeRequest/changeRequest.types'
import userEvent from '@testing-library/user-event'; import userEvent from '@testing-library/user-event';
import { testServerRoute, testServerSetup } from 'utils/testServer'; import { testServerRoute, testServerSetup } from 'utils/testServer';
import { render } from 'utils/testRenderer'; import { render } from 'utils/testRenderer';
import { UIProviderContainer } from 'component/providers/UIProvider/UIProviderContainer';
const changeRequest = { const changeRequest = {
id: 3, id: 3,
@ -50,11 +49,7 @@ const TestComponent: FC = () => {
test('can edit and save title', async () => { test('can edit and save title', async () => {
const user = userEvent.setup(); const user = userEvent.setup();
render( render(<TestComponent />);
<UIProviderContainer>
<TestComponent />
</UIProviderContainer>,
);
const editButton = await screen.findByTestId('EditIcon'); const editButton = await screen.findByTestId('EditIcon');
await user.click(editButton); await user.click(editButton);

View File

@ -4,7 +4,6 @@ import { screen, waitFor } from '@testing-library/react';
import { render } from 'utils/testRenderer'; import { render } from 'utils/testRenderer';
import { testServerRoute, testServerSetup } from 'utils/testServer'; import { testServerRoute, testServerSetup } from 'utils/testServer';
import { FeatureArchiveDialog } from './FeatureArchiveDialog'; import { FeatureArchiveDialog } from './FeatureArchiveDialog';
import { UIProviderContainer } from 'component/providers/UIProvider/UIProviderContainer';
const server = testServerSetup(); const server = testServerSetup();
const setupHappyPathForChangeRequest = () => { const setupHappyPathForChangeRequest = () => {
@ -38,16 +37,14 @@ test('Add single archive feature change to change request', async () => {
const onConfirm = vi.fn(); const onConfirm = vi.fn();
setupHappyPathForChangeRequest(); setupHappyPathForChangeRequest();
render( render(
<UIProviderContainer> <FeatureArchiveDialog
<FeatureArchiveDialog featureIds={['featureA']}
featureIds={['featureA']} projectId={'projectId'}
projectId={'projectId'} isOpen={true}
isOpen={true} onClose={onClose}
onClose={onClose} onConfirm={onConfirm}
onConfirm={onConfirm} featuresWithUsage={[]}
featuresWithUsage={[]} />,
/>
</UIProviderContainer>,
); );
expect(screen.getByText('Archive feature toggle')).toBeInTheDocument(); expect(screen.getByText('Archive feature toggle')).toBeInTheDocument();
@ -66,16 +63,14 @@ test('Add multiple archive feature changes to change request', async () => {
const onConfirm = vi.fn(); const onConfirm = vi.fn();
setupHappyPathForChangeRequest(); setupHappyPathForChangeRequest();
render( render(
<UIProviderContainer> <FeatureArchiveDialog
<FeatureArchiveDialog featureIds={['featureA', 'featureB']}
featureIds={['featureA', 'featureB']} projectId={'projectId'}
projectId={'projectId'} isOpen={true}
isOpen={true} onClose={onClose}
onClose={onClose} onConfirm={onConfirm}
onConfirm={onConfirm} featuresWithUsage={[]}
featuresWithUsage={[]} />,
/>
</UIProviderContainer>,
); );
await screen.findByText('Archive feature toggles'); await screen.findByText('Archive feature toggles');
@ -94,16 +89,14 @@ test('Skip change request', async () => {
const onConfirm = vi.fn(); const onConfirm = vi.fn();
setupHappyPathForChangeRequest(); setupHappyPathForChangeRequest();
render( render(
<UIProviderContainer> <FeatureArchiveDialog
<FeatureArchiveDialog featureIds={['featureA', 'featureB']}
featureIds={['featureA', 'featureB']} projectId={'projectId'}
projectId={'projectId'} isOpen={true}
isOpen={true} onClose={onClose}
onClose={onClose} onConfirm={onConfirm}
onConfirm={onConfirm} featuresWithUsage={[]}
featuresWithUsage={[]} />,
/>
</UIProviderContainer>,
{ permissions: [{ permission: 'SKIP_CHANGE_REQUEST' }] }, { permissions: [{ permission: 'SKIP_CHANGE_REQUEST' }] },
); );

View File

@ -1,23 +1,20 @@
import { createLocalStorage } from 'utils/createLocalStorage'; import { createLocalStorage } from 'utils/createLocalStorage';
import { render } from 'utils/testRenderer'; import { render } from 'utils/testRenderer';
import { fireEvent, screen } from '@testing-library/react'; import { fireEvent, screen } from '@testing-library/react';
import { UIProviderContainer } from '../../providers/UIProvider/UIProviderContainer';
import { Search } from './Search'; import { Search } from './Search';
import { SEARCH_INPUT } from 'utils/testIds'; import { SEARCH_INPUT } from 'utils/testIds';
const testDisplayComponent = ( const testDisplayComponent = (
<UIProviderContainer> <Search
<Search hasFilters
hasFilters onChange={() => {}}
onChange={() => {}} id='localStorageId'
id='localStorageId' getSearchContext={() => ({
getSearchContext={() => ({ data: [],
data: [], columns: [],
columns: [], searchValue: '',
searchValue: '', })}
})} />
/>
</UIProviderContainer>
); );
test('should read saved query from local storage', async () => { test('should read saved query from local storage', async () => {

View File

@ -2,7 +2,6 @@ import { screen } from '@testing-library/react';
import { render } from 'utils/testRenderer'; import { render } from 'utils/testRenderer';
import { StrategyItemContainer } from './StrategyItemContainer'; import { StrategyItemContainer } from './StrategyItemContainer';
import { IFeatureStrategy } from 'interfaces/strategy'; import { IFeatureStrategy } from 'interfaces/strategy';
import { UIProviderContainer } from '../../providers/UIProvider/UIProviderContainer';
test('should render strategy name, custom title and description', async () => { test('should render strategy name, custom title and description', async () => {
const strategy: IFeatureStrategy = { const strategy: IFeatureStrategy = {
@ -14,12 +13,10 @@ test('should render strategy name, custom title and description', async () => {
}; };
render( render(
<UIProviderContainer> <StrategyItemContainer
<StrategyItemContainer strategy={strategy}
strategy={strategy} description={'description'}
description={'description'} />,
/>
</UIProviderContainer>,
); );
expect(screen.getByText('strategy name')).toBeInTheDocument(); expect(screen.getByText('strategy name')).toBeInTheDocument();

View File

@ -1,8 +1,7 @@
import { render } from '../../../utils/testRenderer'; import { render } from 'utils/testRenderer';
import { screen } from '@testing-library/react'; import { screen } from '@testing-library/react';
import React from 'react'; import React from 'react';
import { testServerRoute, testServerSetup } from '../../../utils/testServer'; import { testServerRoute, testServerSetup } from 'utils/testServer';
import { UIProviderContainer } from '../../providers/UIProvider/UIProviderContainer';
import { ContextFieldUsage } from './ContextFieldUsage'; import { ContextFieldUsage } from './ContextFieldUsage';
const server = testServerSetup(); const server = testServerSetup();
@ -38,11 +37,7 @@ test('should show usage of context field', async () => {
setupRoutes(); setupRoutes();
const contextFieldName = 'appName'; const contextFieldName = 'appName';
render( render(<ContextFieldUsage contextName={contextFieldName} />);
<UIProviderContainer>
<ContextFieldUsage contextName={contextFieldName} />
</UIProviderContainer>,
);
await screen.findByText('Usage of this context field:'); await screen.findByText('Usage of this context field:');
await screen.findByText('tests (Gradual rollout)'); await screen.findByText('tests (Gradual rollout)');

View File

@ -1,8 +1,7 @@
import { render } from '../../../../utils/testRenderer'; import { render } from 'utils/testRenderer';
import { screen } from '@testing-library/react'; import { screen } from '@testing-library/react';
import React from 'react'; import React from 'react';
import { testServerRoute, testServerSetup } from '../../../../utils/testServer'; import { testServerRoute, testServerSetup } from '../../../../utils/testServer';
import { UIProviderContainer } from 'component/providers/UIProvider/UIProviderContainer';
import ContextList from './ContextList'; import ContextList from './ContextList';
const server = testServerSetup(); const server = testServerSetup();
@ -26,9 +25,7 @@ test('should show the count of projects and features used in', async () => {
setupRoutes(); setupRoutes();
render( render(
<UIProviderContainer> <ContextList />,
<ContextList />
</UIProviderContainer>,
); );
await screen.findByText('2 feature toggles'); await screen.findByText('2 feature toggles');

View File

@ -3,7 +3,6 @@ import userEvent from '@testing-library/user-event';
import { render } from 'utils/testRenderer'; import { render } from 'utils/testRenderer';
import { AddDependencyDialogue } from './AddDependencyDialogue'; import { AddDependencyDialogue } from './AddDependencyDialogue';
import { testServerRoute, testServerSetup } from 'utils/testServer'; import { testServerRoute, testServerSetup } from 'utils/testServer';
import { UIProviderContainer } from '../../providers/UIProvider/UIProviderContainer';
const server = testServerSetup(); const server = testServerSetup();
@ -39,16 +38,14 @@ test('Delete dependency', async () => {
let closed = false; let closed = false;
setupApi(); setupApi();
render( render(
<UIProviderContainer> <AddDependencyDialogue
<AddDependencyDialogue project='default'
project='default' featureId='child'
featureId='child' showDependencyDialogue={true}
showDependencyDialogue={true} onClose={() => {
onClose={() => { closed = true;
closed = true; }}
}} />,
/>
</UIProviderContainer>,
); );
const removeDependency = await screen.findByText('Remove'); const removeDependency = await screen.findByText('Remove');
@ -68,16 +65,14 @@ test('Add dependency', async () => {
let closed = false; let closed = false;
setupApi(); setupApi();
render( render(
<UIProviderContainer> <AddDependencyDialogue
<AddDependencyDialogue project='default'
project='default' featureId='child'
featureId='child' showDependencyDialogue={true}
showDependencyDialogue={true} onClose={() => {
onClose={() => { closed = true;
closed = true; }}
}} />,
/>
</UIProviderContainer>,
); );
const removeDependency = await screen.findByText('Remove'); const removeDependency = await screen.findByText('Remove');

View File

@ -3,7 +3,6 @@ import { render } from 'utils/testRenderer';
import { testServerRoute, testServerSetup } from 'utils/testServer'; import { testServerRoute, testServerSetup } from 'utils/testServer';
import FeatureSettingsProjectConfirm from './FeatureSettingsProjectConfirm'; import FeatureSettingsProjectConfirm from './FeatureSettingsProjectConfirm';
import { IFeatureToggle } from 'interfaces/featureToggle'; import { IFeatureToggle } from 'interfaces/featureToggle';
import { UIProviderContainer } from '../../../../../providers/UIProvider/UIProviderContainer';
import { Route, Routes } from 'react-router-dom'; import { Route, Routes } from 'react-router-dom';
import React from 'react'; import React from 'react';
import userEvent from '@testing-library/user-event'; import userEvent from '@testing-library/user-event';
@ -22,31 +21,29 @@ test('Cannot change project for feature with dependencies', async () => {
let closed = false; let closed = false;
setupApi(); setupApi();
render( render(
<UIProviderContainer> <Routes>
<Routes> <Route
<Route path={'projects/:projectId/features/:featureId/settings'}
path={'projects/:projectId/features/:featureId/settings'} element={
element={ <FeatureSettingsProjectConfirm
<FeatureSettingsProjectConfirm projectId={'newProjectId'}
projectId={'newProjectId'} feature={
feature={ {
{ environments: [],
environments: [], dependencies: [],
dependencies: [], children: ['child'],
children: ['child'], } as unknown as IFeatureToggle
} as unknown as IFeatureToggle }
} onClose={() => {
onClose={() => { closed = true;
closed = true; }}
}} onClick={() => {}}
onClick={() => {}} open={true}
open={true} changeRequests={[]}
changeRequests={[]} />
/> }
} />
/> </Routes>,
</Routes>
</UIProviderContainer>,
{ {
route: 'projects/default/features/parent/settings', route: 'projects/default/features/parent/settings',
}, },

View File

@ -1,39 +1,32 @@
import { screen } from '@testing-library/react'; import { screen } from '@testing-library/react';
import { render } from 'utils/testRenderer'; import { render } from 'utils/testRenderer';
import { UIProviderContainer } from '../../providers/UIProvider/UIProviderContainer';
import AdvancedPlayground from './AdvancedPlayground'; import AdvancedPlayground from './AdvancedPlayground';
import { createLocalStorage } from 'utils/createLocalStorage'; import { createLocalStorage } from 'utils/createLocalStorage';
import { testServerRoute, testServerSetup } from 'utils/testServer'; import { testServerRoute, testServerSetup } from 'utils/testServer';
import userEvent from '@testing-library/user-event'; import userEvent from '@testing-library/user-event';
const testDisplayComponent = ( const testDisplayComponent = (
<UIProviderContainer> <AdvancedPlayground
<AdvancedPlayground FormComponent={(props) => (
FormComponent={(props) => ( <div>
<div> <div data-id='projects'>{JSON.stringify(props.projects)}</div>
<div data-id='projects'> <div data-id='environments'>
{JSON.stringify(props.projects)} {JSON.stringify(props.environments)}
</div>
<div data-id='environments'>
{JSON.stringify(props.environments)}
</div>
<div data-id='context'>{JSON.stringify(props.context)}</div>
</div> </div>
)} <div data-id='context'>{JSON.stringify(props.context)}</div>
/> </div>
</UIProviderContainer> )}
/>
); );
const testEvaluateComponent = ( const testEvaluateComponent = (
<UIProviderContainer> <AdvancedPlayground
<AdvancedPlayground FormComponent={(props) => (
FormComponent={(props) => ( <form onSubmit={props.onSubmit}>
<form onSubmit={props.onSubmit}> <button type='submit'>Submit</button>
<button type='submit'>Submit</button> </form>
</form> )}
)} />
/>
</UIProviderContainer>
); );
afterEach(() => { afterEach(() => {

View File

@ -1,109 +1,104 @@
import { screen } from '@testing-library/react'; import { screen } from '@testing-library/react';
import { render } from 'utils/testRenderer'; import { render } from 'utils/testRenderer';
import { UIProviderContainer } from 'component/providers/UIProvider/UIProviderContainer';
import { AdvancedPlaygroundResultsTable } from './AdvancedPlaygroundResultsTable'; import { AdvancedPlaygroundResultsTable } from './AdvancedPlaygroundResultsTable';
test('should render advanced playground table', async () => { test('should render advanced playground table', async () => {
render( render(
<UIProviderContainer> <AdvancedPlaygroundResultsTable
<AdvancedPlaygroundResultsTable loading={false}
loading={false} features={[
features={[ {
{ name: 'Infinite',
name: 'Infinite', projectId: 'ChangeReqs',
projectId: 'ChangeReqs', environments: {
environments: { development: [
development: [ {
{ isEnabled: false,
isEnabled: false, isEnabledInCurrentEnvironment: false,
isEnabledInCurrentEnvironment: false, strategies: {
strategies: { result: true,
result: true, data: [
data: [ {
{ name: 'flexibleRollout',
name: 'flexibleRollout', id: '45971fe0-1122-40a7-a68c-3a1430c44062',
id: '45971fe0-1122-40a7-a68c-3a1430c44062', disabled: false,
disabled: false, parameters: {
parameters: { groupId: 'Infinite',
groupId: 'Infinite', rollout: '50',
rollout: '50', stickiness: 'default',
stickiness: 'default',
},
result: {
enabled: true,
evaluationStatus:
'complete',
},
constraints: [],
segments: [],
links: {
edit: '/projects/ChangeReqs/features/Infinite/strategies/edit?environmenId=development&strategyId=45971fe0-1122-40a7-a68c-3a1430c44062',
},
}, },
{ result: {
name: 'default', enabled: true,
id: 'bf5e35b6-edc1-4e54-8f7e-a6cc8d4f352a', evaluationStatus: 'complete',
disabled: false,
parameters: {},
result: {
enabled: true,
evaluationStatus:
'complete',
},
constraints: [],
segments: [],
links: {
edit: '/projects/ChangeReqs/features/Infinite/strategies/edit?environmenId=development&strategyId=bf5e35b6-edc1-4e54-8f7e-a6cc8d4f352a',
},
}, },
], constraints: [],
}, segments: [],
projectId: 'ChangeReqs', links: {
variant: { edit: '/projects/ChangeReqs/features/Infinite/strategies/edit?environmenId=development&strategyId=45971fe0-1122-40a7-a68c-3a1430c44062',
name: 'disabled', },
enabled: false, },
}, {
name: 'Infinite', name: 'default',
environment: 'development', id: 'bf5e35b6-edc1-4e54-8f7e-a6cc8d4f352a',
context: { disabled: false,
appName: 'MyApp', parameters: {},
}, result: {
variants: [], enabled: true,
evaluationStatus: 'complete',
},
constraints: [],
segments: [],
links: {
edit: '/projects/ChangeReqs/features/Infinite/strategies/edit?environmenId=development&strategyId=bf5e35b6-edc1-4e54-8f7e-a6cc8d4f352a',
},
},
],
}, },
], projectId: 'ChangeReqs',
production: [ variant: {
{ name: 'disabled',
isEnabled: false, enabled: false,
isEnabledInCurrentEnvironment: false,
strategies: {
result: false,
data: [],
},
projectId: 'ChangeReqs',
variant: {
name: 'disabled',
enabled: false,
},
name: 'Infinite',
environment: 'production',
context: {
appName: 'MyApp',
},
variants: [],
}, },
], name: 'Infinite',
}, environment: 'development',
context: {
appName: 'MyApp',
},
variants: [],
},
],
production: [
{
isEnabled: false,
isEnabledInCurrentEnvironment: false,
strategies: {
result: false,
data: [],
},
projectId: 'ChangeReqs',
variant: {
name: 'disabled',
enabled: false,
},
name: 'Infinite',
environment: 'production',
context: {
appName: 'MyApp',
},
variants: [],
},
],
}, },
]} },
input={{ ]}
environments: ['development', 'production'], input={{
projects: '*', environments: ['development', 'production'],
context: { projects: '*',
appName: 'MyApp', context: {
}, appName: 'MyApp',
}} },
/> }}
</UIProviderContainer>, />,
); );
expect(screen.getByText('Infinite')).toBeInTheDocument(); expect(screen.getByText('Infinite')).toBeInTheDocument();

View File

@ -1,7 +1,6 @@
import { screen } from '@testing-library/react'; import { screen } from '@testing-library/react';
import { render } from 'utils/testRenderer'; import { render } from 'utils/testRenderer';
import { PlaygroundEnvironmentDiffTable } from './PlaygroundEnvironmentDiffTable'; import { PlaygroundEnvironmentDiffTable } from './PlaygroundEnvironmentDiffTable';
import { UIProviderContainer } from '../../../providers/UIProvider/UIProviderContainer';
const irrelevantDetails = { const irrelevantDetails = {
strategies: { strategies: {
@ -23,38 +22,36 @@ const irrelevantDetails = {
test('should render environment diff table', async () => { test('should render environment diff table', async () => {
render( render(
<UIProviderContainer> <PlaygroundEnvironmentDiffTable
<PlaygroundEnvironmentDiffTable features={{
features={{ development: [
development: [ {
{ name: 'featureA',
name: 'featureA', isEnabled: true,
isEnabled: true, environment: 'development',
environment: 'development', context: {
context: { channel: 'web',
channel: 'web', client: 'clientA',
client: 'clientA', appName: 'myapp',
appName: 'myapp',
},
...irrelevantDetails,
}, },
], ...irrelevantDetails,
production: [ },
{ ],
name: 'featureA', production: [
isEnabled: false, {
environment: 'production', name: 'featureA',
context: { isEnabled: false,
channel: 'web', environment: 'production',
client: 'clientA', context: {
appName: 'myapp', channel: 'web',
}, client: 'clientA',
...irrelevantDetails, appName: 'myapp',
}, },
], ...irrelevantDetails,
}} },
/> ],
</UIProviderContainer>, }}
/>,
); );
expect(screen.getByText('web')).toBeInTheDocument(); expect(screen.getByText('web')).toBeInTheDocument();

View File

@ -1,41 +1,38 @@
import { screen } from '@testing-library/react'; import { screen } from '@testing-library/react';
import { render } from 'utils/testRenderer'; import { render } from 'utils/testRenderer';
import { PlaygroundEnvironmentTable } from './PlaygroundEnvironmentTable'; import { PlaygroundEnvironmentTable } from './PlaygroundEnvironmentTable';
import { UIProviderContainer } from '../../../providers/UIProvider/UIProviderContainer';
test('should render environment table', async () => { test('should render environment table', async () => {
render( render(
<UIProviderContainer> <PlaygroundEnvironmentTable
<PlaygroundEnvironmentTable features={[
features={[ {
{ name: 'featureA',
name: 'featureA', strategies: {
strategies: { data: [],
data: [], result: false,
result: false, },
}, isEnabled: false,
isEnabled: false, isEnabledInCurrentEnvironment: false,
isEnabledInCurrentEnvironment: false, variants: [],
variants: [], projectId: 'projectA',
projectId: 'projectA', variant: {
variant: { name: 'variantName',
name: 'variantName', enabled: true,
enabled: true, payload: {
payload: { type: 'string',
type: 'string', value: 'variantValue',
value: 'variantValue',
},
},
environment: 'dev',
context: {
channel: 'web',
client: 'clientA',
appName: 'myapp',
}, },
}, },
]} environment: 'dev',
/> context: {
</UIProviderContainer>, channel: 'web',
client: 'clientA',
appName: 'myapp',
},
},
]}
/>,
); );
expect(screen.getByText('web')).toBeInTheDocument(); expect(screen.getByText('web')).toBeInTheDocument();

View File

@ -1,8 +1,7 @@
import { render } from '../../../utils/testRenderer'; import { render } from 'utils/testRenderer';
import { screen } from '@testing-library/react'; import { screen } from '@testing-library/react';
import { SegmentTable } from './SegmentTable'; import { SegmentTable } from './SegmentTable';
import { testServerRoute, testServerSetup } from '../../../utils/testServer'; import { testServerRoute, testServerSetup } from 'utils/testServer';
import { UIProviderContainer } from '../../providers/UIProvider/UIProviderContainer';
const server = testServerSetup(); const server = testServerSetup();
@ -31,11 +30,7 @@ const setupRoutes = () => {
test('should show the count of projects and features used in', async () => { test('should show the count of projects and features used in', async () => {
setupRoutes(); setupRoutes();
render( render(<SegmentTable />);
<UIProviderContainer>
<SegmentTable />
</UIProviderContainer>,
);
await screen.findByText('2 feature toggles'); await screen.findByText('2 feature toggles');
await screen.findByText('3 projects'); await screen.findByText('3 projects');

View File

@ -3,7 +3,6 @@ import { render } from 'utils/testRenderer';
import { testServerRoute, testServerSetup } from 'utils/testServer'; import { testServerRoute, testServerSetup } from 'utils/testServer';
import { PasswordTab } from './PasswordTab'; import { PasswordTab } from './PasswordTab';
import userEvent from '@testing-library/user-event'; import userEvent from '@testing-library/user-event';
import { UIProviderContainer } from '../../../providers/UIProvider/UIProviderContainer';
const server = testServerSetup(); const server = testServerSetup();
testServerRoute(server, '/api/admin/ui-config', {}); testServerRoute(server, '/api/admin/ui-config', {});
@ -16,11 +15,7 @@ testServerRoute(server, '/auth/reset/validate-password', {}, 'post');
test('should render authorization error on missing old password', async () => { test('should render authorization error on missing old password', async () => {
const user = userEvent.setup(); const user = userEvent.setup();
render( render(<PasswordTab />);
<UIProviderContainer>
<PasswordTab />
</UIProviderContainer>,
);
await screen.findByText('Change password'); await screen.findByText('Change password');
const passwordInput = await screen.findByLabelText('Password'); const passwordInput = await screen.findByLabelText('Password');

View File

@ -6,6 +6,7 @@ import { ThemeProvider } from 'themes/ThemeProvider';
import { IPermission } from 'interfaces/user'; import { IPermission } from 'interfaces/user';
import { AnnouncerProvider } from 'component/common/Announcer/AnnouncerProvider/AnnouncerProvider'; import { AnnouncerProvider } from 'component/common/Announcer/AnnouncerProvider/AnnouncerProvider';
import { AccessProviderMock } from 'component/providers/AccessProvider/AccessProviderMock'; import { AccessProviderMock } from 'component/providers/AccessProvider/AccessProviderMock';
import { UIProviderContainer } from '../component/providers/UIProvider/UIProviderContainer';
export const render = ( export const render = (
ui: JSX.Element, ui: JSX.Element,
@ -21,15 +22,17 @@ export const render = (
window.history.pushState({}, 'Test page', route); window.history.pushState({}, 'Test page', route);
const Wrapper: FC = ({ children }) => ( const Wrapper: FC = ({ children }) => (
<SWRConfig value={{ provider: () => new Map() }}> <UIProviderContainer>
<AccessProviderMock permissions={permissions}> <SWRConfig value={{ provider: () => new Map() }}>
<ThemeProvider> <AccessProviderMock permissions={permissions}>
<AnnouncerProvider> <ThemeProvider>
<BrowserRouter>{children}</BrowserRouter> <AnnouncerProvider>
</AnnouncerProvider> <BrowserRouter>{children}</BrowserRouter>
</ThemeProvider> </AnnouncerProvider>
</AccessProviderMock> </ThemeProvider>
</SWRConfig> </AccessProviderMock>
</SWRConfig>
</UIProviderContainer>
); );
return rtlRender(ui, { return rtlRender(ui, {