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 № 1Możesz użyć shallow
z cykl życia Eksperymentalne opcja ustawiona na true
jeśli chcesz płytkiego renderowania za pomocą wszystkich metod cyklu życia.