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

У меня есть вопрос о реакции юнит-теста.

мой модульный тест охватывает весь код, кроме следующей строки:

resolve: () => require.resolveWeak('common/DumbComponent'),

похоже, что строка выше никогда не вызывается в тесте.

Есть ли способ заставить юнит-тест охватить линию выше? или невозможно? та строка выше вызывается на стороне сервера рендеринга?

Вот мой компонент реакции:

import React, { Component } from 'react'
import { connect } from 'react-redux'
import universal from 'react-universal-component'

const DumbComponent = universal(() => import(/* webpackChunkName: 'test' */ 'common/DumbComponent'), {
  resolve: () => require.resolveWeak('common/DumbComponent'),
  chunkName: 'test'
})

class SmartComponent extends Component {
  render () {
    return (
      <DumbComponent id={this.props.id} />
    )
  }
}

SmartComponent.propTypes = {
    ...
}

function mapStateToProps (state, ownProps) {
    ...
}

export default connect(mapStateToProps)(SmartComponent)

Вот модульный тест:

import React from 'react'
import {createMockStore} from 'redux-test-utils'
import SmartComponentfrom '../SmartComponent'
import {mount} from 'enzyme'
import {Provider} from 'react-redux'

describe('SmartComponent', () => {
  const setup = propOverrides => {
    const state = Object.assign({}, propOverrides)
    const store = createMockStore(state)
    return mount(
      <Provider store={store}>
        <SmartComponent id='test' />
      </Provider>
    )
  }

  let component
  beforeEach(() => {
    component = setup()
  })
  it('it be rendered properly and has correct id in props', () => {
    expect(component.find(SmartComponent)).toBeDefined()
    expect(component.find(SmartComponent).props().id).toBe('test')
  })
})

0 ответов

Другие вопросы по тегам