Skip to content

Commit

Permalink
[Fix] Fix prop-types detection collision on renamed props
Browse files Browse the repository at this point in the history
Fixes #2383
  • Loading branch information
yannickcr committed Sep 2, 2019
1 parent 2c6430d commit fcfee49
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 11 deletions.
16 changes: 7 additions & 9 deletions lib/util/usedPropTypes.js
Expand Up @@ -356,21 +356,19 @@ module.exports = function usedPropTypesInstructions(context, components, utils)
}
const propName = ast.getKeyValue(context, properties[k]);

if (propName) {
propVariables.set(propName, parentNames.concat(propName));
usedPropTypes.push({
allNames: parentNames.concat([propName]),
name: propName,
node: properties[k]
});
}

if (
propName &&
properties[k].type === 'Property' &&
properties[k].value.type === 'ObjectPattern'
) {
markPropTypesAsUsed(properties[k].value, parentNames.concat([propName]));
} else if (propName) {
propVariables.set(propName, parentNames.concat(propName));
usedPropTypes.push({
allNames: parentNames.concat([propName]),
name: propName,
node: properties[k]
});
}
}
break;
Expand Down
23 changes: 21 additions & 2 deletions tests/lib/rules/prop-types.js
Expand Up @@ -2498,7 +2498,6 @@ ruleTester.run('prop-types', rule, {
}
`,
errors: [
{message: "'foo' is missing in props validation"},
{message: "'foo.bar' is missing in props validation"}
]
}, {
Expand Down Expand Up @@ -2526,7 +2525,6 @@ ruleTester.run('prop-types', rule, {
}
`,
errors: [
{message: "'foo' is missing in props validation"},
{message: "'foo.bar' is missing in props validation"}
]
},
Expand Down Expand Up @@ -4808,6 +4806,27 @@ ruleTester.run('prop-types', rule, {
errors: [{
message: '\'text\' is missing in props validation'
}]
},
{
code: `
function Foo({
foo: {
bar: foo,
baz
},
}) {
return <p>{foo.reduce(() => 5)}</p>;
}
Foo.propTypes = {
foo: PropTypes.shape({
bar: PropTypes.arrayOf(PropTypes.string).isRequired,
}).isRequired,
};
`,
errors: [{
message: '\'foo.baz\' is missing in props validation'
}]
}
]
});

0 comments on commit fcfee49

Please sign in to comment.