Skip to content

Commit 3ddfd1c

Browse files
brettdhljharb
authored andcommitted
Add default parser tests
1 parent 26c73de commit 3ddfd1c

File tree

1 file changed

+254
-0
lines changed

1 file changed

+254
-0
lines changed

tests/lib/rules/no-typos.js

Lines changed: 254 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,66 @@ ruleTester.run('no-typos', rule, {
351351
`,
352352
parser: 'babel-eslint',
353353
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+
parserOptions: parserOptions
368+
}, {
369+
code: `
370+
import PropTypes from "prop-types";
371+
class Component extends React.Component {};
372+
Component.contextTypes = {
373+
a: PropTypes.string,
374+
b: PropTypes.string.isRequired,
375+
c: PropTypes.shape({
376+
d: PropTypes.string,
377+
e: PropTypes.number.isRequired,
378+
}).isRequired
379+
}
380+
`,
381+
parserOptions: parserOptions
382+
}, {
383+
code: `
384+
import PropTypes from 'prop-types'
385+
import * as MyPropTypes from 'lib/my-prop-types'
386+
class Component extends React.Component {};
387+
Component.propTypes = {
388+
a: PropTypes.string,
389+
b: MyPropTypes.MYSTRING,
390+
c: MyPropTypes.MYSTRING.isRequired,
391+
}
392+
`,
393+
parserOptions: parserOptions
394+
}, {
395+
code: `
396+
import PropTypes from "prop-types"
397+
import * as MyPropTypes from 'lib/my-prop-types'
398+
class Component extends React.Component {};
399+
Component.propTypes = {
400+
b: PropTypes.string,
401+
a: MyPropTypes.MYSTRING,
402+
}
403+
`,
404+
parserOptions: parserOptions
405+
}, {
406+
code: `
407+
import CustomReact from "react"
408+
class Component extends React.Component {};
409+
Component.propTypes = {
410+
b: CustomReact.PropTypes.string,
411+
}
412+
`,
413+
parserOptions: parserOptions
354414
}, {
355415
code: `
356416
import PropTypes from "prop-types";
@@ -1060,6 +1120,158 @@ ruleTester.run('no-typos', rule, {
10601120
}, {
10611121
message: 'Typo in declared prop type: objectof'
10621122
}]
1123+
}, {
1124+
code: `
1125+
import PropTypes from 'prop-types';
1126+
class Component extends React.Component {};
1127+
Component.childContextTypes = {
1128+
a: PropTypes.bools,
1129+
b: PropTypes.Array,
1130+
c: PropTypes.function,
1131+
d: PropTypes.objectof,
1132+
}
1133+
`,
1134+
parserOptions: parserOptions,
1135+
errors: [{
1136+
message: 'Typo in declared prop type: bools'
1137+
}, {
1138+
message: 'Typo in declared prop type: Array'
1139+
}, {
1140+
message: 'Typo in declared prop type: function'
1141+
}, {
1142+
message: 'Typo in declared prop type: objectof'
1143+
}]
1144+
}, {
1145+
code: `
1146+
import PropTypes from 'prop-types';
1147+
class Component extends React.Component {};
1148+
Component.propTypes = {
1149+
a: PropTypes.string.isrequired,
1150+
b: PropTypes.shape({
1151+
c: PropTypes.number
1152+
}).isrequired
1153+
}
1154+
`,
1155+
parserOptions: parserOptions,
1156+
errors: [{
1157+
message: 'Typo in prop type chain qualifier: isrequired'
1158+
}, {
1159+
message: 'Typo in prop type chain qualifier: isrequired'
1160+
}]
1161+
}, {
1162+
code: `
1163+
import PropTypes from 'prop-types';
1164+
class Component extends React.Component {};
1165+
Component.propTypes = {
1166+
a: PropTypes.string.isrequired,
1167+
b: PropTypes.shape({
1168+
c: PropTypes.number
1169+
}).isrequired
1170+
}
1171+
`,
1172+
parserOptions: parserOptions,
1173+
errors: [{
1174+
message: 'Typo in prop type chain qualifier: isrequired'
1175+
}, {
1176+
message: 'Typo in prop type chain qualifier: isrequired'
1177+
}]
1178+
}, {
1179+
code: `
1180+
import RealPropTypes from 'prop-types';
1181+
class Component extends React.Component {};
1182+
Component.childContextTypes = {
1183+
a: RealPropTypes.bools,
1184+
b: RealPropTypes.Array,
1185+
c: RealPropTypes.function,
1186+
d: RealPropTypes.objectof,
1187+
}
1188+
`,
1189+
parserOptions: parserOptions,
1190+
errors: [{
1191+
message: 'Typo in declared prop type: bools'
1192+
}, {
1193+
message: 'Typo in declared prop type: Array'
1194+
}, {
1195+
message: 'Typo in declared prop type: function'
1196+
}, {
1197+
message: 'Typo in declared prop type: objectof'
1198+
}]
1199+
}, {
1200+
code: `
1201+
import React from 'react';
1202+
class Component extends React.Component {};
1203+
Component.propTypes = {
1204+
a: React.PropTypes.string.isrequired,
1205+
b: React.PropTypes.shape({
1206+
c: React.PropTypes.number
1207+
}).isrequired
1208+
}
1209+
`,
1210+
parserOptions: parserOptions,
1211+
errors: [{
1212+
message: 'Typo in prop type chain qualifier: isrequired'
1213+
}, {
1214+
message: 'Typo in prop type chain qualifier: isrequired'
1215+
}]
1216+
}, {
1217+
code: `
1218+
import React from 'react';
1219+
class Component extends React.Component {};
1220+
Component.childContextTypes = {
1221+
a: React.PropTypes.bools,
1222+
b: React.PropTypes.Array,
1223+
c: React.PropTypes.function,
1224+
d: React.PropTypes.objectof,
1225+
}
1226+
`,
1227+
parserOptions: parserOptions,
1228+
errors: [{
1229+
message: 'Typo in declared prop type: bools'
1230+
}, {
1231+
message: 'Typo in declared prop type: Array'
1232+
}, {
1233+
message: 'Typo in declared prop type: function'
1234+
}, {
1235+
message: 'Typo in declared prop type: objectof'
1236+
}]
1237+
}, {
1238+
code: `
1239+
import { PropTypes } from 'react';
1240+
class Component extends React.Component {};
1241+
Component.propTypes = {
1242+
a: PropTypes.string.isrequired,
1243+
b: PropTypes.shape({
1244+
c: PropTypes.number
1245+
}).isrequired
1246+
}
1247+
`,
1248+
parserOptions: parserOptions,
1249+
errors: [{
1250+
message: 'Typo in prop type chain qualifier: isrequired'
1251+
}, {
1252+
message: 'Typo in prop type chain qualifier: isrequired'
1253+
}]
1254+
}, {
1255+
code: `
1256+
import { PropTypes } from 'react';
1257+
class Component extends React.Component {};
1258+
Component.childContextTypes = {
1259+
a: PropTypes.bools,
1260+
b: PropTypes.Array,
1261+
c: PropTypes.function,
1262+
d: PropTypes.objectof,
1263+
}
1264+
`,
1265+
parserOptions: parserOptions,
1266+
errors: [{
1267+
message: 'Typo in declared prop type: bools'
1268+
}, {
1269+
message: 'Typo in declared prop type: Array'
1270+
}, {
1271+
message: 'Typo in declared prop type: function'
1272+
}, {
1273+
message: 'Typo in declared prop type: objectof'
1274+
}]
10631275
}]
10641276
/*
10651277
// createClass tests below fail, so they're commented out
@@ -1108,6 +1320,48 @@ ruleTester.run('no-typos', rule, {
11081320
}, {
11091321
message: 'Typo in declared prop type: objectof'
11101322
}]
1323+
}, {
1324+
code: `
1325+
import React from 'react';
1326+
import PropTypes from 'prop-types';
1327+
const Component = React.createClass({
1328+
propTypes: {
1329+
a: PropTypes.string.isrequired,
1330+
b: PropTypes.shape({
1331+
c: PropTypes.number
1332+
}).isrequired
1333+
}
1334+
});
1335+
`,
1336+
parserOptions: parserOptions,
1337+
errors: [{
1338+
message: 'Typo in prop type chain qualifier: isrequired'
1339+
}, {
1340+
message: 'Typo in prop type chain qualifier: isrequired'
1341+
}]
1342+
}, {
1343+
code: `
1344+
import React from 'react';
1345+
import PropTypes from 'prop-types';
1346+
const Component = React.createClass({
1347+
childContextTypes: {
1348+
a: PropTypes.bools,
1349+
b: PropTypes.Array,
1350+
c: PropTypes.function,
1351+
d: PropTypes.objectof,
1352+
}
1353+
});
1354+
`,
1355+
parserOptions: parserOptions,
1356+
errors: [{
1357+
message: 'Typo in declared prop type: bools'
1358+
}, {
1359+
message: 'Typo in declared prop type: Array'
1360+
}, {
1361+
message: 'Typo in declared prop type: function'
1362+
}, {
1363+
message: 'Typo in declared prop type: objectof'
1364+
}]
11111365
}]
11121366
// ---------
11131367
// createClass tests above fail, so they're commented out

0 commit comments

Comments
 (0)