Попытка запустить модульный тест для следующего: Вот фрагмент кода:
renderAdvancedColumns = () => {
let rules = this.props.selectedFormJSON ? this.props.selectedFormJSON.FORM_RULE : [];
let inner = [];
if(rules.length !== 0) {
inner = rules.map((rule, i) => { //LINE GIVING ERROR
return (
<div className={i===0? 'settings-field first-form-field' : 'settings-field'}>
<div className='settings-label'>
{rule.Event}
<div
className={this.props.selectedFormJSON.FORM_RULE[i].FORM_OPERATION.HttpMethod !== 'POST' &&
this.props.selectedFormJSON.FORM_RULE[i].FORM_OPERATION.HttpMethod !== 'PATCH' ?
'tran-button specify-body-button disabled' : 'tran-button specify-body-button'}
disabled={this.props.selectedFormJSON.FORM_RULE[i].FORM_OPERATION.HttpMethod === 'GET'}
onClick={()=>{this.setState({specifyBodyModalOpen: true})}}>
Specify Body
</div>
</div>
<input className='settings-input' value={this.props.selectedFormJSON.FORM_RULE[i].FORM_OPERATION.Endpoint || ''} onChange={(e) => {this.updateFORMOPERATION(i, 'Endpoint', e.target.value)}} />
Я обычно запускаю свои тестовые файлы и проверяю, чтобы все реквизиты правильно отображались.Но не знаю, почему это блокирует: inner = rules.map ((rule, i) => {
Вот как я объявляю this.props
const baseProps = {
selectedFormJSON :{
Subform:{},
SubformFilter:{},
OverlayMapper:{},
Name:{},
Form_UID:{},
FORM_RULE:{
FORM_OPERATION:{
Endpoint:{},
HttpMethod:{},
},
},
Describe('FormSettings ', () => {
let wrapper;
let tree;
it('should render using all of the props', () => {
tree = renderer.create(<BrowserRouter><FormSettings {...baseProps} />
</BrowserRouter>)
let treeJson = tree.toJSON()
expect(treeJson).toMatchSnapshot();
tree.unmount()
});