diff --git a/__tests__/component-test.js b/__tests__/component-test.js index d3017db..85e989e 100644 --- a/__tests__/component-test.js +++ b/__tests__/component-test.js @@ -11,6 +11,18 @@ const { } = require('../module/'); describe('React-Cond components', () => { + it('should render the child component for a single condition if it matches', () => { + const isTrue = (i) => i; + + let component = TestUtils.renderIntoDocument( + +

Works!

+
+ ); + let val = TestUtils.findRenderedDOMComponentWithTag(component, 'h1'); + equal(val.getDOMNode().textContent, 'Works!'); + }); + it('should render the child component if the condition value is equal to `props.value`', () => { let component = TestUtils.renderIntoDocument( diff --git a/module/index.js b/module/index.js index 0c799d5..ce9a18d 100644 --- a/module/index.js +++ b/module/index.js @@ -34,7 +34,11 @@ export const Cond = React.createClass({ if (Array.isArray(children[0])) { clauses = children; } else if (children[0] && children[0].props && children[0].props[CASE_SYMBOL]) { + // multiple clauses clauses = children.map(c => [c.props.test, c.props.children]); + } else if (children && children.props && children.props[CASE_SYMBOL]) { + // single clause + clauses = [[children.props.test, children.props.children]]; } else { clauses = [children]; }