/ / Otrzymywanie wywołania `render` zwracającego wartość null podczas korzystania z Enzyme.mount - javascript, Reagjs, Jestjs, Enzym

Uzyskanie wywołania `render` w celu zwrócenia wartości null podczas używania Enzyme.mount - javascript, reactjs, jestjs, enzym

Pytanie

Czy ktoś zna akceptowalny sposób na zwrot zamontowanego komponentu null (lub coś podobnego) podczas korzystania Enzyme.mount?

Przypadek użycia

Mam komponent, który jest owinięty n komponenty wyższego rzędu. Tak naprawdę chciałbym mount składnik zamiast shallow ponieważ chciałbym to przetestować componentDidMount nazwał coś zgodnie z oczekiwaniami.

Moja funkcja / test montowania wygląda mniej więcej tak:

const component = <ApplicationsShowRoute />;
const { store } = mountSetup(component);
expect(store.getActions()).toEqual([ { type: "API_REQUEST" } ]);

Po zamontowaniu tego wolałbym nie martwić się o to, co jest renderowane (błędy w komponentach potomnych itp.).

Kod

export class ApplicationsShowRouteRaw extends Component {

componentDidMount() {
const { uuid } = this.props.match.params;

this.props.fetchShowRoute(uuid);
}

props: Props

render() {
const { application, match } = this.props;

return isEmpty(application) || application.Uuid !== match.params.uuid ? (
<FullPageLoader />
) : (
<ApplicationsShow
application={application}
/>
);
}
}

export const mapStateToProps = (state: Object) => ({
application: getShowRoute(state),
});

export const mapDispatchToProps = (dispatch: Function) => ({
fetchShowRoute: (uuid: string) => dispatch(fetchShowRoute(uuid)),
});

export default connect(
mapStateToProps,
mapDispatchToProps,
)(ApplicationsShowRouteRaw);

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz użyć shallow z cykl życia Eksperymentalne opcja ustawiona na true jeśli chcesz płytkiego renderowania za pomocą wszystkich metod cyklu życia.