Skip to content

Commit 15f12fe

Browse files
committed
fix(component): safe handling for text
1 parent 7a9c470 commit 15f12fe

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

src/react-toggle-pattern.js

+4
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ export default class TogglePattern extends React.Component {
1515
const children = [].concat(this.props.children);
1616
const flagKeyNames = this.getFlagNames();
1717
return children.filter(child => {
18+
// ignore text child
19+
if (!child.props) {
20+
return false;
21+
}
1822
const childKeys = Object.keys(child.props);
1923
return childKeys.some(childKey => {
2024
return flagKeyNames.some(parentKey => {

test/react-toggle-pattern-test.js

+12-5
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,21 @@ describe('<TogglePattern />', () => {
2222
});
2323
it('renders 1 <ComponentY /> components', () => {
2424
const result = shallow(<TogglePattern isEditing={false}>
25-
<ComponentX isEditing={true} />
26-
<ComponentY isEditing={false} />
25+
<ComponentX isEditing={true}/>
26+
<ComponentY isEditing={false}/>
2727
</TogglePattern>);
2828
assert(result.is(ComponentY));
2929
});
3030
it('renders 0 components', () => {
3131
const result = shallow(<TogglePattern isEditing={false}>
32-
<ComponentX isEditing={true} />
32+
<ComponentX isEditing={true}/>
3333
<ComponentY />
3434
</TogglePattern>);
3535
assert(result.node === null);
3636
});
3737
it('renders 2 <ComponentX /> components', () => {
3838
const wrapper = shallow(<TogglePattern isEditing={true}>
39-
<ComponentX isEditing={true} />
39+
<ComponentX isEditing={true}/>
4040
<ComponentX isEditing={true}/>
4141
</TogglePattern>);
4242
const result = wrapper.find(ComponentX);
@@ -64,6 +64,13 @@ describe('<TogglePattern />', () => {
6464
<ComponentY pattern="two"/>
6565
</TogglePattern>);
6666
assert(wrapper1.is(ComponentX));
67-
67+
});
68+
it('safe handling mixed text', () => {
69+
const wrapper = shallow(<TogglePattern pattern={1}>
70+
<ComponentX pattern={1}/>
71+
text
72+
<ComponentY pattern={2}/>
73+
</TogglePattern>);
74+
assert(wrapper.is(ComponentX));
6875
});
6976
});

0 commit comments

Comments
 (0)