@@ -14,7 +14,8 @@ const parserOptions = {
14
14
ecmaVersion : 6 ,
15
15
ecmaFeatures : {
16
16
jsx : true
17
- }
17
+ } ,
18
+ sourceType : 'module'
18
19
} ;
19
20
20
21
// -----------------------------------------------------------------------------
@@ -337,6 +338,34 @@ ruleTester.run('no-typos', rule, {
337
338
` ,
338
339
parser : 'babel-eslint' ,
339
340
parserOptions : parserOptions
341
+ } , {
342
+ code : `
343
+ import PropTypes from "prop-types";
344
+ class Component extends React.Component {};
345
+ Component.propTypes = {
346
+ a: PropTypes.oneOf([
347
+ 'hello',
348
+ 'hi'
349
+ ])
350
+ }
351
+ ` ,
352
+ parser : 'babel-eslint' ,
353
+ parserOptions : parserOptions
354
+ } , {
355
+ code : `
356
+ import PropTypes from "prop-types";
357
+ class Component extends React.Component {};
358
+ Component.childContextTypes = {
359
+ a: PropTypes.string,
360
+ b: PropTypes.string.isRequired,
361
+ c: PropTypes.shape({
362
+ d: PropTypes.string,
363
+ e: PropTypes.number.isRequired,
364
+ }).isRequired
365
+ }
366
+ ` ,
367
+ parser : 'babel-eslint' ,
368
+ parserOptions : parserOptions
340
369
} , {
341
370
code : `
342
371
import PropTypes from "prop-types";
@@ -367,26 +396,22 @@ ruleTester.run('no-typos', rule, {
367
396
parserOptions : parserOptions
368
397
} , {
369
398
code : `
370
- const PropTypes = require(' prop-types');
371
- const MyPropTypes = require( 'lib/my-prop-types')
399
+ import PropTypes from " prop-types"
400
+ import * as MyPropTypes from 'lib/my-prop-types'
372
401
class Component extends React.Component {};
373
402
Component.propTypes = {
374
- a: PropTypes.string,
375
- b: MyPropTypes.MYSTRING,
376
- c: MyPropTypes.MYSTRING.isRequired,
403
+ b: PropTypes.string,
404
+ a: MyPropTypes.MYSTRING,
377
405
}
378
406
` ,
379
407
parser : 'babel-eslint' ,
380
408
parserOptions : parserOptions
381
409
} , {
382
410
code : `
383
- const RealPropTypes = require('prop-types');
384
- const MyPropTypes = require('lib/my-prop-types')
411
+ import CustomReact from "react"
385
412
class Component extends React.Component {};
386
413
Component.propTypes = {
387
- a: RealPropTypes.string,
388
- b: MyPropTypes.MYSTRING,
389
- c: MyPropTypes.MYSTRING.isRequired,
414
+ b: CustomReact.PropTypes.string,
390
415
}
391
416
` ,
392
417
parser : 'babel-eslint' ,
@@ -878,7 +903,7 @@ ruleTester.run('no-typos', rule, {
878
903
} ]
879
904
} , {
880
905
code : `
881
- const PropTypes = require( 'prop-types') ;
906
+ import PropTypes from 'prop-types';
882
907
class Component extends React.Component {};
883
908
Component.childContextTypes = {
884
909
a: PropTypes.bools,
@@ -900,15 +925,15 @@ ruleTester.run('no-typos', rule, {
900
925
} ]
901
926
} , {
902
927
code : `
903
- const PropTypes = require( 'prop-types') ;
928
+ import PropTypes from 'prop-types';
904
929
class Component extends React.Component {};
905
930
Component.propTypes = {
906
931
a: PropTypes.string.isrequired,
907
932
b: PropTypes.shape({
908
933
c: PropTypes.number
909
934
}).isrequired
910
935
}
911
- ` ,
936
+ ` ,
912
937
parserOptions : parserOptions ,
913
938
errors : [ {
914
939
message : 'Typo in prop type chain qualifier: isrequired'
@@ -917,7 +942,7 @@ ruleTester.run('no-typos', rule, {
917
942
} ]
918
943
} , {
919
944
code : `
920
- const PropTypes = require( 'prop-types') ;
945
+ import PropTypes from 'prop-types';
921
946
class Component extends React.Component {};
922
947
Component.propTypes = {
923
948
a: PropTypes.string.isrequired,
@@ -935,7 +960,7 @@ ruleTester.run('no-typos', rule, {
935
960
} ]
936
961
} , {
937
962
code : `
938
- const RealPropTypes = require( 'prop-types') ;
963
+ import RealPropTypes from 'prop-types';
939
964
class Component extends React.Component {};
940
965
Component.childContextTypes = {
941
966
a: RealPropTypes.bools,
@@ -955,5 +980,17 @@ ruleTester.run('no-typos', rule, {
955
980
} , {
956
981
message : 'Typo in declared prop type: objectof'
957
982
} ]
983
+ } , {
984
+ code : `
985
+ import RealReactDifferentName from "react"
986
+ Component.propTypes = {
987
+ b: RealReactDifferentName.PropTypes.STRING,
988
+ }
989
+ ` ,
990
+ parser : 'babel-eslint' ,
991
+ parserOptions : parserOptions ,
992
+ errors : [ {
993
+ message : 'Typo in prop type chain qualifier: STRING'
994
+ } ]
958
995
} ]
959
996
} ) ;
0 commit comments