Передача контекста на тестовых примерах для React неглубоких ферментов -jest - PullRequest
0 голосов
/ 20 марта 2019

Как я могу передать контекст и извлечь данные вспомогательным методом?

См. Фрагмент ниже:

import AppContext from '../../context/AppContext'
import extractDatta from '../../helper';

class App extends Component{
  static contextType = AppContext

  componentWillMount(){
   const resolvedData = extractData("/home",this.context)
  }

 render(){
   return(
  )
 }

}

хелперы / index.js:

const extractData = (path, context) => {
  // getting context as undefined 
}

App.test.js:

describe('App test suites', () => {
  let wrapper;
  let appContext;
  beforeEach(() => {
    appContext = {name: "Application"}
    wrapper = shallow(<Supplier />, { appContext })
  })
  it('Should render the App Component', () => {
    expect(wrapper).toMatchSnapshot();
  })
})

Любая помощь приветствуется:)

1 Ответ

1 голос
/ 30 мая 2019

Итак, вот мой хакерский обходной путь, пока команда Enzyme работает над завершением [https://github.com/airbnb/enzyme/issues/1553](React 16 поддержки).Я предоставляю устаревшее contextTypes для класса компонента, что позволяет передавать контекст в соответствии с документами.

import PropTypes from "prop-types";

describe('App test suites', () => {
  let wrapper;
  let appContext;
  beforeEach(() => {
    appContext = {name: "Application"}

    // Hack in the legacy context API just for tests. You'll get a warning, but it 
    // ought to work...
    Supplier.contextTypes = {
      name: PropTypes.string
    }

    wrapper = shallow(<Supplier />, { appContext })
  })

  it('Should render the App Component', () => {
    expect(wrapper).toMatchSnapshot();
  })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...