1010// -----------------------------------------------------------------------------
1111
1212var eslint = require ( 'eslint' ) . linter ;
13- var rule = require ( 'eslint/lib/rules/no-unused-vars' ) ;
13+ var ruleNoUnusedVars = require ( 'eslint/lib/rules/no-unused-vars' ) ;
14+ var rulePreferConst = require ( 'eslint/lib/rules/prefer-const' ) ;
1415var RuleTester = require ( 'eslint' ) . RuleTester ;
1516
1617var parserOptions = {
@@ -28,7 +29,7 @@ require('babel-eslint');
2829
2930var ruleTester = new RuleTester ( ) ;
3031eslint . defineRule ( 'jsx-uses-vars' , require ( '../../../lib/rules/jsx-uses-vars' ) ) ;
31- ruleTester . run ( 'no-unused-vars' , rule , {
32+ ruleTester . run ( 'no-unused-vars' , ruleNoUnusedVars , {
3233 valid : [
3334 {
3435 code : '\
@@ -186,3 +187,25 @@ ruleTester.run('no-unused-vars', rule, {
186187 }
187188 ]
188189} ) ;
190+
191+ // Check compatibility with eslint prefer-const rule (#716)
192+ ruleTester . run ( 'prefer-const' , rulePreferConst , {
193+ valid : [ ] ,
194+ invalid : [ {
195+ code : [
196+ '/* eslint jsx-uses-vars:1 */' ,
197+ 'let App = <div />;' ,
198+ '<App />;'
199+ ] . join ( '\n' ) ,
200+ errors : [ { message : '\'App\' is never reassigned. Use \'const\' instead.' } ] ,
201+ parserOptions : parserOptions
202+ } , {
203+ code : [
204+ '/* eslint jsx-uses-vars:1 */' ,
205+ 'let filters = \'foo\';' ,
206+ '<div>{filters}</div>;'
207+ ] . join ( '\n' ) ,
208+ errors : [ { message : '\'filters\' is never reassigned. Use \'const\' instead.' } ] ,
209+ parserOptions : parserOptions
210+ } ]
211+ } ) ;
0 commit comments