Как выполнить универсальный рендеринг разрешения?
У меня есть вопрос о реакции юнит-теста.
мой модульный тест охватывает весь код, кроме следующей строки:
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')
})
})