Skip to content

Commit 66e2a45

Browse files
committed
Update createClass pragma to createReactClass
1 parent a05a72d commit 66e2a45

32 files changed

+293
-246
lines changed

lib/rules/require-default-props.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -518,7 +518,7 @@ module.exports = {
518518
},
519519

520520
// e.g.:
521-
// React.createClass({
521+
// createReactClass({
522522
// render: function() {
523523
// return <div>{this.props.foo}</div>;
524524
// },

lib/util/pragma.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ var JS_IDENTIFIER_REGEX = /^[_$a-zA-Z][_$a-zA-Z0-9]*$/;
1010

1111

1212
function getCreateClassFromContext(context) {
13-
var pragma = 'createClass';
13+
var pragma = 'createReactClass';
1414
// .eslintrc shared settings (http://eslint.org/docs/user-guide/configuring#adding-shared-settings)
1515
if (context.settings.react && context.settings.react.createClass) {
1616
pragma = context.settings.react.createClass;

tests/lib/rules/display-name.js

+64-17
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,6 @@ var parserOptions = {
2121
}
2222
};
2323

24-
var settings = {
25-
react: {
26-
pragma: 'Foo'
27-
}
28-
};
29-
3024
// ------------------------------------------------------------------------------
3125
// Tests
3226
// ------------------------------------------------------------------------------
@@ -35,6 +29,19 @@ var ruleTester = new RuleTester();
3529
ruleTester.run('display-name', rule, {
3630

3731
valid: [{
32+
code: [
33+
'var Hello = createReactClass({',
34+
' displayName: \'Hello\',',
35+
' render: function() {',
36+
' return <div>Hello {this.props.name}</div>;',
37+
' }',
38+
'});'
39+
].join('\n'),
40+
options: [{
41+
ignoreTranspilerName: true
42+
}],
43+
parserOptions: parserOptions
44+
}, {
3845
code: [
3946
'var Hello = React.createClass({',
4047
' displayName: \'Hello\',',
@@ -46,6 +53,11 @@ ruleTester.run('display-name', rule, {
4653
options: [{
4754
ignoreTranspilerName: true
4855
}],
56+
settings: {
57+
react: {
58+
createClass: 'createClass'
59+
}
60+
},
4961
parserOptions: parserOptions
5062
}, {
5163
code: [
@@ -118,7 +130,7 @@ ruleTester.run('display-name', rule, {
118130
parserOptions: parserOptions
119131
}, {
120132
code: [
121-
'var Hello = React.createClass({',
133+
'var Hello = createReactClass({',
122134
' render: function() {',
123135
' return <div>Hello {this.props.name}</div>;',
124136
' }',
@@ -146,7 +158,7 @@ ruleTester.run('display-name', rule, {
146158
}, {
147159
code: [
148160
'var Hello;',
149-
'Hello = React.createClass({',
161+
'Hello = createReactClass({',
150162
' render: function() {',
151163
' return <div>Hello {this.props.name}</div>;',
152164
' }',
@@ -155,7 +167,7 @@ ruleTester.run('display-name', rule, {
155167
parserOptions: parserOptions
156168
}, {
157169
code: [
158-
'module.exports = React.createClass({',
170+
'module.exports = createReactClass({',
159171
' "displayName": "Hello",',
160172
' "render": function() {',
161173
' return <div>Hello {this.props.name}</div>;',
@@ -165,7 +177,7 @@ ruleTester.run('display-name', rule, {
165177
parserOptions: parserOptions
166178
}, {
167179
code: [
168-
'var Hello = React.createClass({',
180+
'var Hello = createReactClass({',
169181
' displayName: \'Hello\',',
170182
' render: function() {',
171183
' let { a, ...b } = obj;',
@@ -265,7 +277,7 @@ ruleTester.run('display-name', rule, {
265277
parser: 'babel-eslint'
266278
}, {
267279
code: [
268-
'var Hello = React.createClass({',
280+
'var Hello = createReactClass({',
269281
' render: function() {',
270282
' return <div>{this._renderHello()}</div>;',
271283
' },',
@@ -277,7 +289,7 @@ ruleTester.run('display-name', rule, {
277289
parser: 'babel-eslint'
278290
}, {
279291
code: [
280-
'var Hello = React.createClass({',
292+
'var Hello = createReactClass({',
281293
' displayName: \'Hello\',',
282294
' render: function() {',
283295
' return <div>{this._renderHello()}</div>;',
@@ -346,6 +358,11 @@ ruleTester.run('display-name', rule, {
346358
options: [{
347359
ignoreTranspilerName: true
348360
}],
361+
settings: {
362+
react: {
363+
createClass: 'createClass'
364+
}
365+
},
349366
parser: 'babel-eslint'
350367
}, {
351368
code: [
@@ -395,7 +412,7 @@ ruleTester.run('display-name', rule, {
395412

396413
invalid: [{
397414
code: [
398-
'var Hello = React.createClass({',
415+
'var Hello = createReactClass({',
399416
' render: function() {',
400417
' return React.createElement("div", {}, "text content");',
401418
' }',
@@ -412,6 +429,26 @@ ruleTester.run('display-name', rule, {
412429
code: [
413430
'var Hello = React.createClass({',
414431
' render: function() {',
432+
' return React.createElement("div", {}, "text content");',
433+
' }',
434+
'});'
435+
].join('\n'),
436+
options: [{
437+
ignoreTranspilerName: true
438+
}],
439+
settings: {
440+
react: {
441+
createClass: 'createClass'
442+
}
443+
},
444+
parserOptions: parserOptions,
445+
errors: [{
446+
message: 'Component definition is missing display name'
447+
}]
448+
}, {
449+
code: [
450+
'var Hello = createReactClass({',
451+
' render: function() {',
415452
' return <div>Hello {this.props.name}</div>;',
416453
' }',
417454
'});'
@@ -441,7 +478,7 @@ ruleTester.run('display-name', rule, {
441478
}, {
442479
code: [
443480
'function HelloComponent() {',
444-
' return React.createClass({',
481+
' return createReactClass({',
445482
' render: function() {',
446483
' return <div>Hello {this.props.name}</div>;',
447484
' }',
@@ -478,7 +515,7 @@ ruleTester.run('display-name', rule, {
478515
}]
479516
}, {
480517
code: [
481-
'module.exports = React.createClass({',
518+
'module.exports = createReactClass({',
482519
' render() {',
483520
' return <div>Hello {this.props.name}</div>;',
484521
' }',
@@ -490,7 +527,7 @@ ruleTester.run('display-name', rule, {
490527
}]
491528
}, {
492529
code: [
493-
'var Hello = React.createClass({',
530+
'var Hello = createReactClass({',
494531
' _renderHello: function() {',
495532
' return <span>Hello {this.props.name}</span>;',
496533
' },',
@@ -521,7 +558,12 @@ ruleTester.run('display-name', rule, {
521558
ignoreTranspilerName: true
522559
}],
523560
parser: 'babel-eslint',
524-
settings: settings,
561+
settings: {
562+
react: {
563+
pragma: 'Foo',
564+
createClass: 'createClass'
565+
}
566+
},
525567
errors: [{
526568
message: 'Component definition is missing display name'
527569
}]
@@ -540,6 +582,11 @@ ruleTester.run('display-name', rule, {
540582
options: [{
541583
ignoreTranspilerName: true
542584
}],
585+
settings: {
586+
react: {
587+
createClass: 'createClass'
588+
}
589+
},
543590
parser: 'babel-eslint',
544591
errors: [{
545592
message: 'Component definition is missing display name'

tests/lib/rules/forbid-component-props.js

+11-11
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ ruleTester.run('forbid-component-props', rule, {
3232

3333
valid: [{
3434
code: [
35-
'var First = React.createClass({',
35+
'var First = createReactClass({',
3636
' render: function() {',
3737
' return <div className="foo" />;',
3838
' }',
@@ -41,7 +41,7 @@ ruleTester.run('forbid-component-props', rule, {
4141
parserOptions: parserOptions
4242
}, {
4343
code: [
44-
'var First = React.createClass({',
44+
'var First = createReactClass({',
4545
' render: function() {',
4646
' return <div style={{color: "red"}} />;',
4747
' }',
@@ -51,7 +51,7 @@ ruleTester.run('forbid-component-props', rule, {
5151
parserOptions: parserOptions
5252
}, {
5353
code: [
54-
'var First = React.createClass({',
54+
'var First = createReactClass({',
5555
' propTypes: externalPropTypes,',
5656
' render: function() {',
5757
' return <Foo bar="baz" />;',
@@ -61,7 +61,7 @@ ruleTester.run('forbid-component-props', rule, {
6161
parserOptions: parserOptions
6262
}, {
6363
code: [
64-
'var First = React.createClass({',
64+
'var First = createReactClass({',
6565
' propTypes: externalPropTypes,',
6666
' render: function() {',
6767
' return <Foo className="bar" />;',
@@ -72,7 +72,7 @@ ruleTester.run('forbid-component-props', rule, {
7272
parserOptions: parserOptions
7373
}, {
7474
code: [
75-
'var First = React.createClass({',
75+
'var First = createReactClass({',
7676
' propTypes: externalPropTypes,',
7777
' render: function() {',
7878
' return <Foo className="bar" />;',
@@ -83,7 +83,7 @@ ruleTester.run('forbid-component-props', rule, {
8383
parserOptions: parserOptions
8484
}, {
8585
code: [
86-
'var First = React.createClass({',
86+
'var First = createReactClass({',
8787
' propTypes: externalPropTypes,',
8888
' render: function() {',
8989
' return <this.Foo bar="baz" />;',
@@ -93,7 +93,7 @@ ruleTester.run('forbid-component-props', rule, {
9393
parserOptions: parserOptions
9494
}, {
9595
code: [
96-
'class First extends React.createClass {',
96+
'class First extends createReactClass {',
9797
' render() {',
9898
' return <this.foo className="bar" />;',
9999
' }',
@@ -112,7 +112,7 @@ ruleTester.run('forbid-component-props', rule, {
112112

113113
invalid: [{
114114
code: [
115-
'var First = React.createClass({',
115+
'var First = createReactClass({',
116116
' propTypes: externalPropTypes,',
117117
' render: function() {',
118118
' return <Foo className="bar" />;',
@@ -128,7 +128,7 @@ ruleTester.run('forbid-component-props', rule, {
128128
}]
129129
}, {
130130
code: [
131-
'var First = React.createClass({',
131+
'var First = createReactClass({',
132132
' propTypes: externalPropTypes,',
133133
' render: function() {',
134134
' return <Foo style={{color: "red"}} />;',
@@ -144,7 +144,7 @@ ruleTester.run('forbid-component-props', rule, {
144144
}]
145145
}, {
146146
code: [
147-
'var First = React.createClass({',
147+
'var First = createReactClass({',
148148
' propTypes: externalPropTypes,',
149149
' render: function() {',
150150
' return <Foo className="bar" />;',
@@ -161,7 +161,7 @@ ruleTester.run('forbid-component-props', rule, {
161161
}]
162162
}, {
163163
code: [
164-
'var First = React.createClass({',
164+
'var First = createReactClass({',
165165
' propTypes: externalPropTypes,',
166166
' render: function() {',
167167
' return <Foo style={{color: "red"}} />;',

tests/lib/rules/forbid-foreign-prop-types.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ ruleTester.run('forbid-foreign-prop-types', rule, {
6363

6464
invalid: [{
6565
code: [
66-
'var Foo = React.createClass({',
66+
'var Foo = createReactClass({',
6767
' propTypes: Bar.propTypes,',
6868
' render: function() {',
6969
' return <Foo className="bar" />;',
@@ -78,7 +78,7 @@ ruleTester.run('forbid-foreign-prop-types', rule, {
7878
},
7979
{
8080
code: [
81-
'var Foo = React.createClass({',
81+
'var Foo = createReactClass({',
8282
' propTypes: Bar["propTypes"],',
8383
' render: function() {',
8484
' return <Foo className="bar" />;',
@@ -94,7 +94,7 @@ ruleTester.run('forbid-foreign-prop-types', rule, {
9494
{
9595
code: [
9696
'var { propTypes } = SomeComponent',
97-
'var Foo = React.createClass({',
97+
'var Foo = createReactClass({',
9898
' propTypes,',
9999
' render: function() {',
100100
' return <Foo className="bar" />;',
@@ -110,7 +110,7 @@ ruleTester.run('forbid-foreign-prop-types', rule, {
110110
{
111111
code: [
112112
'var { propTypes: things, ...foo } = SomeComponent',
113-
'var Foo = React.createClass({',
113+
'var Foo = createReactClass({',
114114
' propTypes,',
115115
' render: function() {',
116116
' return <Foo className="bar" />;',
@@ -140,7 +140,7 @@ ruleTester.run('forbid-foreign-prop-types', rule, {
140140
{
141141
code: [
142142
'var { propTypes: typesOfProps } = SomeComponent',
143-
'var Foo = React.createClass({',
143+
'var Foo = createReactClass({',
144144
' propTypes: typesOfProps,',
145145
' render: function() {',
146146
' return <Foo className="bar" />;',

0 commit comments

Comments
 (0)