diff --git a/docs/rules/display-name.md b/docs/rules/display-name.md index e7c13772cd..99e7a7941a 100644 --- a/docs/rules/display-name.md +++ b/docs/rules/display-name.md @@ -35,7 +35,7 @@ var Hello = React.createClass({ ### `acceptTranspilerName` -When `true` the rule will accept the name set by the transpiler and does not require a `displayName` property in this case. +When `true` (default) the rule will accept the name set by the transpiler and does not require a `displayName` property in this case. The following patterns are considered okay and do not cause warnings: diff --git a/lib/rules/display-name.js b/lib/rules/display-name.js index f8a5b9a2ab..8d2aa52930 100644 --- a/lib/rules/display-name.js +++ b/lib/rules/display-name.js @@ -14,7 +14,9 @@ module.exports = Components.detect(function(context, components, utils) { var sourceCode = context.getSourceCode(); var config = context.options[0] || {}; - var acceptTranspilerName = config.acceptTranspilerName || false; + var acceptTranspilerName = config.hasOwnProperty('acceptTranspilerName') ? + config.acceptTranspilerName : + true; var MISSING_MESSAGE = 'Component definition is missing display name'; diff --git a/tests/lib/rules/display-name.js b/tests/lib/rules/display-name.js index 62e3cc105a..3b94c5399a 100644 --- a/tests/lib/rules/display-name.js +++ b/tests/lib/rules/display-name.js @@ -43,6 +43,9 @@ ruleTester.run('display-name', rule, { ' }', '});' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parserOptions: parserOptions }, { code: [ @@ -53,6 +56,9 @@ ruleTester.run('display-name', rule, { '}', 'Hello.displayName = \'Hello\'' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parserOptions: parserOptions }, { code: [ @@ -62,6 +68,9 @@ ruleTester.run('display-name', rule, { ' }', '}' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parserOptions: parserOptions }, { code: [ @@ -72,6 +81,9 @@ ruleTester.run('display-name', rule, { ' }', '}' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint' }, { code: [ @@ -79,6 +91,9 @@ ruleTester.run('display-name', rule, { ' method;', '}' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint', parserOptions: parserOptions }, { @@ -92,6 +107,9 @@ ruleTester.run('display-name', rule, { ' }', '}' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parserOptions: parserOptions }, { code: [ @@ -102,6 +120,9 @@ ruleTester.run('display-name', rule, { ' }', '}' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint', parserOptions: parserOptions }, { @@ -112,9 +133,6 @@ ruleTester.run('display-name', rule, { ' }', '});' ].join('\n'), - options: [{ - acceptTranspilerName: true - }], parserOptions: parserOptions }, { code: [ @@ -124,10 +142,7 @@ ruleTester.run('display-name', rule, { ' }', '}' ].join('\n'), - parser: 'babel-eslint', - options: [{ - acceptTranspilerName: true - }] + parser: 'babel-eslint' }, { code: [ 'export default class Hello {', @@ -136,10 +151,7 @@ ruleTester.run('display-name', rule, { ' }', '}' ].join('\n'), - parser: 'babel-eslint', - options: [{ - acceptTranspilerName: true - }] + parser: 'babel-eslint' }, { code: [ 'var Hello;', @@ -149,9 +161,6 @@ ruleTester.run('display-name', rule, { ' }', '});' ].join('\n'), - options: [{ - acceptTranspilerName: true - }], parserOptions: parserOptions }, { code: [ @@ -164,6 +173,9 @@ ruleTester.run('display-name', rule, { ' }', '});' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parserOptions: parserOptions }, { code: [ @@ -173,6 +185,9 @@ ruleTester.run('display-name', rule, { ' }', '}' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint' }, { code: [ @@ -180,40 +195,28 @@ ruleTester.run('display-name', rule, { ' return
Hello {this.props.name}
;', '}' ].join('\n'), - parser: 'babel-eslint', - options: [{ - acceptTranspilerName: true - }] + parser: 'babel-eslint' }, { code: [ 'function Hello() {', ' return
Hello {this.props.name}
;', '}' ].join('\n'), - parser: 'babel-eslint', - options: [{ - acceptTranspilerName: true - }] + parser: 'babel-eslint' }, { code: [ 'var Hello = () => {', ' return
Hello {this.props.name}
;', '}' ].join('\n'), - parser: 'babel-eslint', - options: [{ - acceptTranspilerName: true - }] + parser: 'babel-eslint' }, { code: [ 'module.exports = function Hello() {', ' return
Hello {this.props.name}
;', '}' ].join('\n'), - parser: 'babel-eslint', - options: [{ - acceptTranspilerName: true - }] + parser: 'babel-eslint' }, { code: [ 'function Hello() {', @@ -221,6 +224,9 @@ ruleTester.run('display-name', rule, { '}', 'Hello.displayName = \'Hello\';' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint' }, { code: [ @@ -229,6 +235,9 @@ ruleTester.run('display-name', rule, { '}', 'Hello.displayName = \'Hello\';' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint' }, { code: [ @@ -237,6 +246,9 @@ ruleTester.run('display-name', rule, { '}', 'Hello.displayName = \'Hello\';' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint' }, { code: [ @@ -249,6 +261,9 @@ ruleTester.run('display-name', rule, { '}', 'Mixins.Greetings.Hello.displayName = \'Hello\';' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint' }, { code: [ @@ -261,10 +276,7 @@ ruleTester.run('display-name', rule, { ' }', '});' ].join('\n'), - parser: 'babel-eslint', - options: [{ - acceptTranspilerName: true - }] + parser: 'babel-eslint' }, { code: [ 'var Hello = React.createClass({', @@ -277,6 +289,9 @@ ruleTester.run('display-name', rule, { ' }', '});' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint' }, { code: [ @@ -288,10 +303,7 @@ ruleTester.run('display-name', rule, { ' }', '};' ].join('\n'), - parser: 'babel-eslint', - options: [{ - acceptTranspilerName: true - }] + parser: 'babel-eslint' }, { code: [ 'var obj = {', @@ -300,10 +312,7 @@ ruleTester.run('display-name', rule, { ' }', '};' ].join('\n'), - parser: 'babel-eslint', - options: [{ - acceptTranspilerName: true - }] + parser: 'babel-eslint' }, { code: [ 'export default {', @@ -313,6 +322,9 @@ ruleTester.run('display-name', rule, { ' }', '};' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint' }, { code: [ @@ -324,6 +336,9 @@ ruleTester.run('display-name', rule, { ' }', '});' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint' } ], @@ -336,6 +351,9 @@ ruleTester.run('display-name', rule, { ' }', '});' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parserOptions: parserOptions, errors: [{ message: 'Component definition is missing display name' @@ -348,6 +366,9 @@ ruleTester.run('display-name', rule, { ' }', '});' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parserOptions: parserOptions, errors: [{ message: 'Component definition is missing display name' @@ -360,6 +381,9 @@ ruleTester.run('display-name', rule, { ' }', '}' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parserOptions: parserOptions, errors: [{ message: 'Component definition is missing display name' @@ -375,9 +399,6 @@ ruleTester.run('display-name', rule, { '}', 'module.exports = HelloComponent();' ].join('\n'), - options: [{ - acceptTranspilerName: true - }], parserOptions: parserOptions, errors: [{ message: 'Component definition is missing display name' @@ -389,9 +410,6 @@ ruleTester.run('display-name', rule, { '}' ].join('\n'), parser: 'babel-eslint', - options: [{ - acceptTranspilerName: true - }], errors: [{ message: 'Component definition is missing display name' }] @@ -402,9 +420,6 @@ ruleTester.run('display-name', rule, { '}' ].join('\n'), parser: 'babel-eslint', - options: [{ - acceptTranspilerName: true - }], errors: [{ message: 'Component definition is missing display name' }] @@ -419,6 +434,9 @@ ruleTester.run('display-name', rule, { ' }', '});' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint', errors: [{ message: 'Component definition is missing display name' @@ -434,6 +452,9 @@ ruleTester.run('display-name', rule, { ' }', '});' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint', settings: settings, errors: [{ @@ -451,6 +472,9 @@ ruleTester.run('display-name', rule, { ' }', '});' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint', errors: [{ message: 'Component definition is missing display name' @@ -465,6 +489,9 @@ ruleTester.run('display-name', rule, { ' }', '};' ].join('\n'), + options: [{ + acceptTranspilerName: false + }], parser: 'babel-eslint', errors: [{ message: 'Component definition is missing display name'