отформатирован здесь хорошо... пробовал в стеке, но не работал так хорошо... https://gist.github.com/js08/22654f6cd2f160aa2e0a
одиночные объекты в массиве:
shallowRenderer.render(<SportsList disclosures ={[ 'id': 'foo', 'text': 'car racing' ]} />);
несколько объектов в массиве:
shallowRenderer.render(<SportsList disclosures ={[ {id: 100, text: 'car racing'}, {id: 10, text: 'hello vworld'}, {id: 100, text: 'car racing'} ]} />);
import {expect} from 'chai';
import React from 'react';
import TestUtils from 'react-addons-test-utils';
import SportsList from '../../src/components/footer/disclosure-list.jsx';
import initializeJsDom from '../test-utils/dom.js';
import {getGridLayoutClasses} from 'sports-css-grids';
describe('shallow renderer tests for disclosure-list ', function() {
let shallowRenderer = TestUtils.createRenderer();
it('should render correctly', () => {
shallowRenderer.render(<SportsList disclosures ={[ {id: 100, text: 'car racing'}, {id: 10, text: 'hello vworld'}, {id: 100, text: 'car racing'} ]} />);
//shallowRenderer.render(<SportsList disclosures ={[ 'id': 'foo', 'text': 'car racing' ]} />);
let sportsOutputElement = shallowRenderer.getRenderOutput();
let sportsTitle = sportsOutputElement.props.children[0].key;
let text = sportsOutputElement.props.children[0].props.dangerouslySetInnerHTML.__html;
//result succeful for single value
expect(sportsTitle).equal('100');
//result succeful for single value
expect(text).equal('car racing');
});
});
json structure
renderedElement - multiple arrays-- -- >
{
"type": "div",
"key": null,
"ref": null,
"props": {
"className": "pageFooter-disclosures",
"children": [{
"type": "p",
"key": "100",
"ref": null,
"props": {
"dangerouslySetInnerHTML": {
"__html": "hello world"
}
},
"_owner": null,
"_store": {}
}, {
"type": "p",
"key": "10",
"ref": null,
"props": {
"dangerouslySetInnerHTML": {
"__html": "hello vworld"
}
},
"_owner": null,
"_store": {}
}, {
"type": "p",
"key": "100",
"ref": null,
"props": {
"dangerouslySetInnerHTML": {
"__html": "hello world"
}
},
"_owner": null,
"_store": {}
}]
},
"_owner": null,
"_store": {}
}√
should render correctly(3 ms)
С expect
от chai
вы можете использовать EQL, который будет проверять объекты для глубокого равенства
expect(sportsOutputElement.props.children).to.eql([ {id: 100, text: 'car racing'}, {id: 10, text: 'hello vworld'}, {id: 100, text: 'car racing'} ]);
//result successfull for single value
строкой выше