From e2f4c2c89af0ad9f7249000cec27258534a3e626 Mon Sep 17 00:00:00 2001 From: Joachim Seminck Date: Mon, 27 May 2019 07:50:56 +0200 Subject: [PATCH] [Fix] `no-unused-prop-types`: Change the reporting to point to a more accurate node --- lib/rules/no-unused-prop-types.js | 2 +- tests/lib/rules/no-unused-prop-types.js | 60 ++++++++++++------------- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/lib/rules/no-unused-prop-types.js b/lib/rules/no-unused-prop-types.js index 5f675f6dcf..2fcda62fe1 100644 --- a/lib/rules/no-unused-prop-types.js +++ b/lib/rules/no-unused-prop-types.js @@ -104,7 +104,7 @@ module.exports = { if (prop.node && !isPropUsed(component, prop)) { context.report({ - node: prop.node.value || prop.node, + node: prop.node.key || prop.node, message: UNUSED_MESSAGE, data: { name: prop.fullName diff --git a/tests/lib/rules/no-unused-prop-types.js b/tests/lib/rules/no-unused-prop-types.js index cd4fa5f0f7..55913f31ef 100644 --- a/tests/lib/rules/no-unused-prop-types.js +++ b/tests/lib/rules/no-unused-prop-types.js @@ -3229,7 +3229,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'unused\' PropType is defined but prop is never used', line: 3, - column: 13 + column: 5 }] }, { code: [ @@ -3245,7 +3245,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'name\' PropType is defined but prop is never used', line: 3, - column: 11 + column: 5 }] }, { code: [ @@ -3262,7 +3262,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'name\' PropType is defined but prop is never used', line: 3, - column: 11 + column: 5 }] }, { code: [ @@ -4061,7 +4061,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'unused\' PropType is defined but prop is never used', line: 3, - column: 13 + column: 5 }] }, { code: [ @@ -4079,7 +4079,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'unused\' PropType is defined but prop is never used', line: 3, - column: 13 + column: 5 }] }, { code: [ @@ -4097,7 +4097,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'unused\' PropType is defined but prop is never used', line: 3, - column: 13 + column: 5 }] }, { code: [ @@ -4114,7 +4114,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'unused\' PropType is defined but prop is never used', line: 3, - column: 13 + column: 5 }] }, { code: [ @@ -4132,7 +4132,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'unused\' PropType is defined but prop is never used', line: 3, - column: 13 + column: 5 }] }, { code: [ @@ -4149,7 +4149,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'unused\' PropType is defined but prop is never used', line: 3, - column: 13 + column: 5 }] }, { code: [ @@ -4167,7 +4167,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'unused\' PropType is defined but prop is never used', line: 3, - column: 13 + column: 5 }] }, { code: [ @@ -4184,7 +4184,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'unused\' PropType is defined but prop is never used', line: 3, - column: 13 + column: 5 }] }, { code: [ @@ -4202,7 +4202,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'unused\' PropType is defined but prop is never used', line: 3, - column: 13 + column: 5 }] }, { code: [ @@ -4219,7 +4219,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'unused\' PropType is defined but prop is never used', line: 3, - column: 13 + column: 5 }] }, { code: [ @@ -4236,7 +4236,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'something\' PropType is defined but prop is never used', line: 3, - column: 16 + column: 5 }] }, { code: [ @@ -4252,7 +4252,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'something\' PropType is defined but prop is never used', line: 3, - column: 16 + column: 5 }] }, { code: [ @@ -4273,7 +4273,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'bar\' PropType is defined but prop is never used', line: 4, - column: 10 + column: 5 }] }, { // Multiple props used inside of an async class property @@ -4294,7 +4294,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'baz\' PropType is defined but prop is never used', line: 5, - column: 10 + column: 5 }] }, { code: [ @@ -4313,7 +4313,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'bar\' PropType is defined but prop is never used', line: 10, - column: 8 + column: 3 }] }, { code: [ @@ -4334,7 +4334,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'bar\' PropType is defined but prop is never used', line: 4, - column: 10 + column: 5 }] }, { // Multiple destructured props inside of async class property @@ -4375,7 +4375,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'bar\' PropType is defined but prop is never used', line: 4, - column: 10 + column: 5 }] }, { code: [ @@ -4394,7 +4394,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'bar\' PropType is defined but prop is never used', line: 10, - column: 8 + column: 3 }] }, { code: [ @@ -4415,7 +4415,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'bar\' PropType is defined but prop is never used', line: 4, - column: 10 + column: 5 }] }, { // Multiple destructured props inside of async class method @@ -4437,7 +4437,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'baz\' PropType is defined but prop is never used', line: 5, - column: 10 + column: 5 }] }, { // factory functions that return async functions @@ -4460,7 +4460,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'baz\' PropType is defined but prop is never used', line: 5, - column: 10 + column: 5 }] }, { code: [ @@ -4479,7 +4479,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'bar\' PropType is defined but prop is never used', line: 10, - column: 8 + column: 3 }] }, { code: [ @@ -4498,7 +4498,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'bar\' PropType is defined but prop is never used', line: 10, - column: 8 + column: 3 }], settings: { propWrapperFunctions: ['forbidExtraProps'] @@ -4521,7 +4521,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'bar\' PropType is defined but prop is never used', line: 4, - column: 10 + column: 5 }], settings: { propWrapperFunctions: ['forbidExtraProps'] @@ -4547,7 +4547,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'foo\' PropType is defined but prop is never used', line: 3, - column: 10 + column: 5 }] }, { // Multiple props used inside of an async function @@ -4571,7 +4571,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'baz\' PropType is defined but prop is never used', line: 13, - column: 8 + column: 3 }] }, { // Multiple props used inside of an async arrow function @@ -4595,7 +4595,7 @@ ruleTester.run('no-unused-prop-types', rule, { errors: [{ message: '\'foo\' PropType is defined but prop is never used', line: 11, - column: 8 + column: 3 }] }, { // None of the props are used issue #1162