diff --git a/lib/rules/require-default-props.js b/lib/rules/require-default-props.js index 1d14b1634c..4d8cdf9efc 100644 --- a/lib/rules/require-default-props.js +++ b/lib/rules/require-default-props.js @@ -578,7 +578,7 @@ module.exports = { // If no propTypes could be found, we don't report anything. if (!list[component].propTypes) { - return; + continue; } reportPropTypesWithoutDefault( diff --git a/tests/lib/rules/require-default-props.js b/tests/lib/rules/require-default-props.js index 07add86275..7b50b78089 100644 --- a/tests/lib/rules/require-default-props.js +++ b/tests/lib/rules/require-default-props.js @@ -1307,6 +1307,25 @@ ruleTester.run('require-default-props', rule, { }] }, + // component with no declared props followed by a failing component + { + code: [ + 'var ComponentWithNoProps = ({ bar = "bar" }) => {', + ' return
Hello {this.props.foo}
;', + '}', + 'var Greetings = ({ foo = "foo" }) => {', + ' return
Hello {this.props.foo}
;', + '}', + 'Greetings.propTypes = {', + ' foo: PropTypes.string', + '};' + ].join('\n'), + errors: [{ + message: 'propType "foo" is not required, but has no corresponding defaultProp declaration.', + line: 8, + column: 3 + }] + }, // // with Flow annotations {