- I am trying to write the test case for my jsx file...
- i took the sample test case from another jsx file...
- that file doesnt have coect method...
- but his file has coect method..
- I think because of this its breaking my test case...
- can you guys tell me how to fix it..
-
providing my code below...
error shallow renderer tests for sports-Page-Default should render correctly: Invariant Violation: Could not find "store" in either the context or props of "Coect(sportsPageDefault)". Either wrap the root component in a , or explicitly pass "store" as a prop to "Coect(sportsPageDefault)". at Object.invariant [as default] (C:codebasesports-Page-Defaultnode_modulesinvariantinvariant.js:42:15) at new Coect (C:codebasesports-Page-Defaultnode_modulesreact-reduxlibcomponentscreateCoect.js:135:33) at [object Object].ReactCompositeComponentMixin.mountComponent (C:codebasesports-Page-Defaultnode_modulesreactlibReactCompositeComponent.js:148:18) at [object Object].wrapper [as mountComponent] (C:codebasesports-Page-Defaultnode_modulesreactlibReactPerf.js:66:21) at [object Object].ReactShallowRenderer._render (C:codebasesports-Page-Defaultnode_modulesreactlibReactTestUtils.js:362:14) at [object Object].ReactShallowRenderer.render (C:codebasesports-Page-Defaultnode_modulesreactlibReactTestUtils.js:344:8) at Context. (C:/codebase/sports-Page-Default/test/sports-Page-Default-tests.js:16:25)
test case import {expect} from 'chai'; import React from 'react'; import TestUtils from 'react-addons-test-utils'; import sportsPageDefault from '../src/sports-Page-Default'; import initializeJsDom from './test-utils/dom.js'; import {getGridLayoutClasses} from 'sports-css-grids'; //import _difference from 'lodash/array/difference';
describe('shallow renderer tests for sports-Page-Default ', function() { let shallowRenderer = TestUtils.createRenderer(); console.log("shallowRenderer" + JSON.stringify(shallowRenderer));
it('should render correctly', () => { shallowRenderer.render(<sportsPageDefault />); let renderedElement = shallowRenderer.getRenderOutput(); console.log(renderedElement); /* let actualTitleEl = renderedElement.props.children[0].props.children[0]; let expectedTitleEl = <h1 className="transactionalPageHeader-appName font-serif">Demo</h1>; expect(actualTitleEl).to.deep.equal(expectedTitleEl);*/ });});
actual code
import './css/sports-bottom-layout.css'; import './css/sports-Page.css'; import './css/sports-leftCoerLayout.css';
import React from 'react'; import PageHeader from './components/page-header/page-header'; import MainContent from './components/main-content'; import sports-bottom-layout from './components/sports-bottom-layout/sports-bottom-layout'; import {getPanelLayoutState} from './util/PageLayout'; import {getGridLayoutClasses} from 'sports-css-grids/lib/js/gridLayout'; import PagePureRenderMixin from './util/PagePureRenderMixin'; import {coect} from 'react-redux'; import {setHeaderPanelState, setRightPanelState} from './redux/layout/layout-actions';
console.log("inside"); let customMixin = PagePureRenderMixin({ state: { mainPanelGridClassList: function(classArray) { retu classArray.length; console.log("classArray.length" + classArray.length); } } });
let PT = React.PropTypes;
let sportsPageDefault = React.createClass({
propTypes: { headerClass: React.PropTypes.string, layout: PT.object.isRequired, sports-leftCoerLayout: PT.oneOfType([ PT.func, PT.object ]), title: PT.string.isRequired }, //cpomponent m,ount code});
function sportsShallow(itemA, itemB) { for (let i in itemA) { if (itemA[i] !== itemB[i]) { retu false; } } retu true; }
export default coect(state => ({ layout: state.Page.layout }))(sportsPageDefault);
