Skip to content

Commit

Permalink
Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Yannick Croissant committed May 11, 2015
1 parent 4765743 commit 4d9e0db
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 18 deletions.
6 changes: 4 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ module.exports = {
'no-unknown-property': require('./lib/rules/no-unknown-property'),
'jsx-sort-props': require('./lib/rules/jsx-sort-props'),
'jsx-sort-prop-types': require('./lib/rules/jsx-sort-prop-types'),
'jsx-boolean-value': require('./lib/rules/jsx-boolean-value')
'jsx-boolean-value': require('./lib/rules/jsx-boolean-value'),
'sort-comp': require('./lib/rules/sort-comp')
},
rulesConfig: {
'jsx-uses-react': 0,
Expand All @@ -35,6 +36,7 @@ module.exports = {
'no-unknown-property': 0,
'jsx-sort-props': 0,
'jsx-sort-prop-types': 0,
'jsx-boolean-value': 0
'jsx-boolean-value': 0,
'sort-comp': 0
}
};
64 changes: 48 additions & 16 deletions tests/lib/rules/sort-comp.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ var eslintTester = new ESLintTester(eslint);
eslintTester.addRuleTest('lib/rules/sort-comp', {

valid: [{
// Must validate a full class
code: [
'var Hello = React.createClass({',
' displayName : \'\',',
Expand All @@ -43,6 +44,7 @@ eslintTester.addRuleTest('lib/rules/sort-comp', {
jsx: true
}
}, {
// Must validate a class with missing groups
code: [
'var Hello = React.createClass({',
' render: function() {',
Expand All @@ -54,6 +56,7 @@ eslintTester.addRuleTest('lib/rules/sort-comp', {
jsx: true
}
}, {
// Must but a custom method in 'everything-else'
code: [
'var Hello = React.createClass({',
' onClick: function() {},',
Expand All @@ -66,6 +69,7 @@ eslintTester.addRuleTest('lib/rules/sort-comp', {
jsx: true
}
}, {
// Must allow us to re-order the groups
code: [
'var Hello = React.createClass({',
' displayName : \'Hello\',',
Expand All @@ -78,28 +82,68 @@ eslintTester.addRuleTest('lib/rules/sort-comp', {
args: [1, {
order: [
'lifecycle',
'render'
'render',
'everything-else'
]
}],
ecmaFeatures: {
jsx: true
}
}, {
// Must allow us to create a RegExp-based group
code: [
'class Hello extends React.Component {',
' customHandler() {}',
' render() {',
' return <div>Hello</div>;',
' }',
' onClick() {}',
'}'
].join('\n'),
args: [1, {
order: [
'lifecycle',
'everything-else',
'render',
'/on.*/'
]
}],
ecmaFeatures: {
classes: true,
jsx: true
}
}, {
// Must allow us to create a named group
code: [
'class Hello extends React.Component {',
' propTypes() {}',
' customHandler() {}',
' render() {',
' return <div>Hello</div>;',
' }',
' onClick() {}',
'}'
].join('\n'),
args: [1, {
order: [
'lifecycle',
'everything-else',
'render',
'customGroup'
],
groups: {
customGroup: [
'/on.*/'
]
}
}],
ecmaFeatures: {
classes: true,
jsx: true
}
}],

invalid: [{
// Must force a lifecycle method to be placed before render
code: [
'var Hello = React.createClass({',
' render: function() {',
Expand All @@ -113,6 +157,7 @@ eslintTester.addRuleTest('lib/rules/sort-comp', {
},
errors: [{message: 'render should be placed after displayName'}]
}, {
// Must force a custom method to be placed before render
code: [
'var Hello = React.createClass({',
' render: function() {',
Expand All @@ -126,6 +171,7 @@ eslintTester.addRuleTest('lib/rules/sort-comp', {
},
errors: [{message: 'render should be placed after onClick'}]
}, {
// Must force a custom method to be placed after render if no 'everything-else' group is specified
code: [
'var Hello = React.createClass({',
' displayName : \'Hello\',',
Expand All @@ -145,19 +191,5 @@ eslintTester.addRuleTest('lib/rules/sort-comp', {
jsx: true
},
errors: [{message: 'onClick should be placed after render'}]
}, {
code: [
'class Hello extends React.Component {',
' render() {',
' return <div>Hello</div>;',
' }',
' propTypes() {}',
'}'
].join('\n'),
ecmaFeatures: {
classes: true,
jsx: true
},
errors: [{message: 'render should be placed after propTypes'}]
}]
});

0 comments on commit 4d9e0db

Please sign in to comment.