Когда я внедряю withMobileDialog в компонент React, я не могу получить доступ к членам компонента.
Я пробовал погружение, мелкий пользовательский интерфейс материала, монтирование, мелкий фермент и монтирование безрезультатно.
Без инъекции с помощью MobileDialog я могу без проблем получить доступ к участникам.
Компонент:
class Blog extends React.Component {
constructor(props) {
super(props);
this.state = {
open: false
};
this.postCount = 5;
this.posts = this.getPosts();
}
setOpen = () => {
if (this.showPosts()) {
this.setState({ open: true });
}
};
render() {
return (
...
);
}
}
export default compose(
observer,
withStyles(styles),
withMobileDialog()
)(Blog);
Тест:
import React from 'react';
//import { mount } from 'enzyme';
import Blog from '../blog';
import { Switch, Redirect } from 'react-router-dom';
import sinon from 'sinon';
import blog from '../blog';
import { createShallow, createMount } from '@material-ui/core/test-utils';
describe('Blog', () => {
let blogWrapper, shallow, mount;
beforeEach(() => {
shallow = createShallow();
mount = createMount();
});
it('should render private page with its router', () => {
blogWrapper = shallow(
<Blog
/>
);
// setOpen is undefined
const toggleSpy = jest.spyOn(blogWrapper.instance(), 'setOpen');
expect(blogWrapper.state.open).toBeTrue();
});
});