|
12 | 12 | var rule = require('../../../lib/rules/jsx-quotes');
|
13 | 13 | var RuleTester = require('eslint').RuleTester;
|
14 | 14 |
|
| 15 | +var DEPRECATION_WARNING = 'The react/jsx-quotes rule is deprecated. Please use the jsx-quotes rule instead.'; |
| 16 | +var SINGLEQUOTE_WARNING = 'JSX attributes must use singlequote.'; |
| 17 | +var DOUBLEQUOTE_WARNING = 'JSX attributes must use doublequote.'; |
| 18 | + |
15 | 19 | // -----------------------------------------------------------------------------
|
16 | 20 | // Tests
|
17 | 21 | // -----------------------------------------------------------------------------
|
18 | 22 |
|
19 | 23 | var ruleTester = new RuleTester();
|
20 | 24 | ruleTester.run('jsx-quotes', rule, {
|
21 | 25 | valid: [
|
22 |
| - {code: '<App foo=\'bar\' />;', options: ['single'], ecmaFeatures: {jsx: true}}, |
23 |
| - {code: '<App foo="bar" />;', options: ['double'], ecmaFeatures: {jsx: true}}, |
24 |
| - {code: '<App foo="ba\'r" />;', options: ['single', 'avoid-escape'], ecmaFeatures: {jsx: true}}, |
25 |
| - {code: '<App foo=\'ba"r\' />;', options: ['double', 'avoid-escape'], ecmaFeatures: {jsx: true}}, |
26 |
| - {code: '<App>foo</App>;', options: ['single'], ecmaFeatures: {jsx: true}} |
| 26 | + // None, should always trigger at least the deprecation warning |
27 | 27 | ],
|
28 | 28 | invalid: [
|
| 29 | + {code: '<App />;', |
| 30 | + errors: [{message: DEPRECATION_WARNING}], ecmaFeatures: {jsx: true}}, |
| 31 | + {code: '<App foo=\'bar\' />;', |
| 32 | + errors: [{message: DEPRECATION_WARNING}], options: ['single'], ecmaFeatures: {jsx: true}}, |
| 33 | + {code: '<App foo="bar" />;', |
| 34 | + errors: [{message: DEPRECATION_WARNING}], options: ['double'], ecmaFeatures: {jsx: true}}, |
| 35 | + {code: '<App foo="ba\'r" />;', |
| 36 | + errors: [{message: DEPRECATION_WARNING}], options: ['single', 'avoid-escape'], ecmaFeatures: {jsx: true}}, |
| 37 | + {code: '<App foo=\'ba"r\' />;', |
| 38 | + errors: [{message: DEPRECATION_WARNING}], options: ['double', 'avoid-escape'], ecmaFeatures: {jsx: true}}, |
| 39 | + {code: '<App>foo</App>;', |
| 40 | + errors: [{message: DEPRECATION_WARNING}], options: ['single'], ecmaFeatures: {jsx: true}}, |
29 | 41 | {code: '<App foo="bar" />;',
|
30 |
| - errors: [{message: 'JSX attributes must use singlequote.'}], options: ['single'], ecmaFeatures: {jsx: true}}, |
| 42 | + errors: [ |
| 43 | + {message: DEPRECATION_WARNING}, |
| 44 | + {message: SINGLEQUOTE_WARNING} |
| 45 | + ], options: ['single'], ecmaFeatures: {jsx: true}}, |
31 | 46 | {code: '<App foo=\'bar\' />;',
|
32 |
| - errors: [{message: 'JSX attributes must use doublequote.'}], options: ['double'], ecmaFeatures: {jsx: true}} |
| 47 | + errors: [ |
| 48 | + {message: DEPRECATION_WARNING}, |
| 49 | + {message: DOUBLEQUOTE_WARNING} |
| 50 | + ], options: ['double'], ecmaFeatures: {jsx: true}} |
33 | 51 | ]
|
34 | 52 | });
|
0 commit comments