Skip to content

Commit fda9f8f

Browse files
author
Yannick Croissant
committed
Add rules tests
1 parent f2faa43 commit fda9f8f

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed

tests/lib/rules/no-multi-comp.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/**
2+
* @fileoverview Prevent multiple component definition per file
3+
* @author Yannick Croissant
4+
*/
5+
'use strict';
6+
7+
// ------------------------------------------------------------------------------
8+
// Requirements
9+
// ------------------------------------------------------------------------------
10+
11+
var eslint = require('eslint').linter;
12+
var ESLintTester = require('eslint-tester');
13+
14+
// ------------------------------------------------------------------------------
15+
// Tests
16+
// ------------------------------------------------------------------------------
17+
18+
var eslintTester = new ESLintTester(eslint);
19+
eslintTester.addRuleTest('lib/rules/no-multi-comp', {
20+
21+
valid: [
22+
{
23+
code: 'var Hello = require(\'./components/Hello\');var HelloJohn = React.createClass({render: function() {return <Hello name="John" />;}});',
24+
settings: {
25+
ecmascript: 6,
26+
jsx: true
27+
}
28+
}
29+
],
30+
31+
invalid: [
32+
{
33+
code: 'var Hello = React.createClass({render: function() {return <div>Hello {this.props.name}</div>;}});var HelloJohn = React.createClass({render: function() {return <Hello name="John" />;}});',
34+
settings: {
35+
ecmascript: 6,
36+
jsx: true
37+
},
38+
errors: [{
39+
message: 'Declare only one React component per file'
40+
}]
41+
}
42+
]
43+
});

tests/lib/rules/prop-types.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/**
2+
* @fileoverview Prevent missing propTypes in a React component definition
3+
* @author Yannick Croissant
4+
*/
5+
'use strict';
6+
7+
// ------------------------------------------------------------------------------
8+
// Requirements
9+
// ------------------------------------------------------------------------------
10+
11+
var eslint = require('eslint').linter;
12+
var ESLintTester = require('eslint-tester');
13+
14+
// ------------------------------------------------------------------------------
15+
// Tests
16+
// ------------------------------------------------------------------------------
17+
18+
var eslintTester = new ESLintTester(eslint);
19+
eslintTester.addRuleTest('lib/rules/prop-types', {
20+
21+
valid: [
22+
{
23+
code: 'var Hello = React.createClass({propTypes: {name: React.PropTypes.string.isRequired},render: function() {return <div>Hello {this.props.name}</div>;}});',
24+
settings: {
25+
ecmascript: 6,
26+
jsx: true
27+
}
28+
}
29+
],
30+
31+
invalid: [
32+
{
33+
code: 'var Hello = React.createClass({render: function() {return <div>Hello {this.props.name}</div>;}});',
34+
settings: {
35+
ecmascript: 6,
36+
jsx: true
37+
},
38+
errors: [{
39+
message: 'Component definition is missing props validation'
40+
}]
41+
}
42+
]
43+
});

0 commit comments

Comments
 (0)