Skip to content

Commit ecc5d89

Browse files
committed
Fix wrapped propTypes detection (fixes #1366)
1 parent 4724d48 commit ecc5d89

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

lib/rules/prop-types.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -786,7 +786,7 @@ module.exports = {
786786
break;
787787
case 'CallExpression':
788788
if (
789-
propWrapperFunctions.has(propTypes.callee.name) &&
789+
propWrapperFunctions.has(sourceCode.getText(propTypes.callee)) &&
790790
propTypes.arguments && propTypes.arguments[0]
791791
) {
792792
markPropTypesAsDeclared(node, propTypes.arguments[0]);

tests/lib/rules/prop-types.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2239,6 +2239,26 @@ ruleTester.run('prop-types', rule, {
22392239
errors: [
22402240
{message: '\'lastname\' is missing in props validation'}
22412241
]
2242+
}, {
2243+
code: [
2244+
'class Test extends Foo.Component {',
2245+
' render() {',
2246+
' return (',
2247+
' <div>{this.props.firstname} {this.props.lastname}</div>',
2248+
' );',
2249+
' }',
2250+
'}',
2251+
'Test.propTypes = Object.freeze({',
2252+
' firstname: PropTypes.string',
2253+
'});'
2254+
].join('\n'),
2255+
parser: 'babel-eslint',
2256+
settings: Object.assign({}, settings, {
2257+
propWrapperFunctions: ['Object.freeze']
2258+
}),
2259+
errors: [
2260+
{message: '\'lastname\' is missing in props validation'}
2261+
]
22422262
}, {
22432263
code: [
22442264
'/** @jsx Foo */',

0 commit comments

Comments
 (0)