Невозможно получить доступ к методу в компоненте React с помощью пользовательского интерфейса материала withMobileDialog - PullRequest
0 голосов
/ 05 июня 2019

Когда я внедряю 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();
  });

});
...