Fix a warning when running JS Tests because of FakeIdentityContext using deprecated context API (#30368)

This commit is contained in:
Renaud Chaput 2024-05-20 09:29:27 +02:00 committed by GitHub
parent 0f07e1cd4c
commit 990a0c19a9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,7 +1,3 @@
import PropTypes from 'prop-types';
import type { PropsWithChildren } from 'react';
import { Component } from 'react';
import { IntlProvider } from 'react-intl'; import { IntlProvider } from 'react-intl';
import { MemoryRouter } from 'react-router'; import { MemoryRouter } from 'react-router';
@ -9,44 +5,27 @@ import { MemoryRouter } from 'react-router';
// eslint-disable-next-line import/no-extraneous-dependencies // eslint-disable-next-line import/no-extraneous-dependencies
import { render as rtlRender } from '@testing-library/react'; import { render as rtlRender } from '@testing-library/react';
class FakeIdentityWrapper extends Component< import { IdentityContext } from './identity_context';
PropsWithChildren<{ signedIn: boolean }>
> {
static childContextTypes = {
identity: PropTypes.shape({
signedIn: PropTypes.bool.isRequired,
accountId: PropTypes.string,
disabledAccountId: PropTypes.string,
accessToken: PropTypes.string,
}).isRequired,
};
getChildContext() {
return {
identity: {
signedIn: this.props.signedIn,
accountId: '123',
accessToken: 'test-access-token',
},
};
}
render() {
return this.props.children;
}
}
function render( function render(
ui: React.ReactElement, ui: React.ReactElement,
{ locale = 'en', signedIn = true, ...renderOptions } = {}, { locale = 'en', signedIn = true, ...renderOptions } = {},
) { ) {
const fakeIdentity = {
signedIn: signedIn,
accountId: '123',
accessToken: 'test-access-token',
disabledAccountId: undefined,
permissions: 0,
};
const Wrapper = (props: { children: React.ReactNode }) => { const Wrapper = (props: { children: React.ReactNode }) => {
return ( return (
<MemoryRouter> <MemoryRouter>
<IntlProvider locale={locale}> <IntlProvider locale={locale}>
<FakeIdentityWrapper signedIn={signedIn}> <IdentityContext.Provider value={fakeIdentity}>
{props.children} {props.children}
</FakeIdentityWrapper> </IdentityContext.Provider>
</IntlProvider> </IntlProvider>
</MemoryRouter> </MemoryRouter>
); );