123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- /**
- * @fileoverview Tests for jsx-no-comment-textnodes
- * @author Ben Vinegar
- */
- 'use strict';
- // ------------------------------------------------------------------------------
- // Requirements
- // ------------------------------------------------------------------------------
- const rule = require('../../../lib/rules/jsx-no-comment-textnodes');
- const RuleTester = require('eslint').RuleTester;
- const parserOptions = {
- ecmaVersion: 2018,
- sourceType: 'module',
- ecmaFeatures: {
- jsx: true
- }
- };
- // ------------------------------------------------------------------------------
- // Tests
- // ------------------------------------------------------------------------------
- const ruleTester = new RuleTester({parserOptions});
- ruleTester.run('jsx-no-comment-textnodes', rule, {
- valid: [
- {
- code: `
- class Comp1 extends Component {
- render() {
- return (
- <div>
- {/* valid */}
- </div>
- );
- }
- }
- `,
- parser: 'babel-eslint'
- }, {
- code: `
- class Comp1 extends Component {
- render() {
- return (<div>{/* valid */}</div>);
- }
- }
- `,
- parser: 'babel-eslint'
- }, {
- code: `
- class Comp1 extends Component {
- render() {
- const bar = (<div>{/* valid */}</div>);
- return bar;
- }
- }
- `,
- parser: 'babel-eslint'
- }, {
- code: `
- var Hello = createReactClass({
- foo: (<div>{/* valid */}</div>),
- render() {
- return this.foo;
- },
- });
- `,
- parser: 'babel-eslint'
- }, {
- code: `
- class Comp1 extends Component {
- render() {
- return (
- <div>
- {/* valid */}
- {/* valid 2 */}
- {/* valid 3 */}
- </div>
- );
- }
- }
- `,
- parser: 'babel-eslint'
- }, {
- code: `
- class Comp1 extends Component {
- render() {
- return (
- <div>
- </div>
- );
- }
- }
- `,
- parser: 'babel-eslint'
- }, {
- code: `
- var foo = require('foo');
- `,
- parser: 'babel-eslint'
- }, {
- code: `
- <Foo bar='test'>
- {/* valid */}
- </Foo>
- `,
- parser: 'babel-eslint'
- },
- {
- code: `
- <strong>
- https://www.example.com/attachment/download/1
- </strong>
- `,
- parser: 'babel-eslint'
- },
- // inside element declarations
- {
- code: `
- <Foo /* valid */ placeholder={'foo'}/>
- `,
- parser: 'babel-eslint'
- },
- {
- code: `
- <Foo title={'foo' /* valid */}/>
- `,
- parser: 'babel-eslint'
- },
- {
- code: '<pre>// TODO: Write perfect code</pre>'
- },
- {
- code: '<pre>// TODO: Write perfect code</pre>',
- parser: 'babel-eslint'
- },
- {
- code: '<pre>/* TODO: Write perfect code */</pre>'
- },
- {
- code: '<pre>/* TODO: Write perfect code */</pre>',
- parser: 'babel-eslint'
- }
- ],
- invalid: [
- {
- code: `
- class Comp1 extends Component {
- render() {
- return (<div>// invalid</div>);
- }
- }
- `,
- parser: 'babel-eslint',
- errors: [{message: 'Comments inside children section of tag should be placed inside braces'}]
- }, {
- code: `
- class Comp1 extends Component {
- render() {
- return (<div>/* invalid */</div>);
- }
- }
- `,
- parser: 'babel-eslint',
- errors: [{message: 'Comments inside children section of tag should be placed inside braces'}]
- }, {
- code: `
- class Comp1 extends Component {
- render() {
- return (
- <div>
- // invalid
- </div>
- );
- }
- }
- `,
- parser: 'babel-eslint',
- errors: [{message: 'Comments inside children section of tag should be placed inside braces'}]
- }, {
- code: `
- class Comp1 extends Component {
- render() {
- return (
- <div>
- asdjfl
- /* invalid */
- foo
- </div>
- );
- }
- }
- `,
- parser: 'babel-eslint',
- errors: [{message: 'Comments inside children section of tag should be placed inside braces'}]
- }, {
- code: `
- class Comp1 extends Component {
- render() {
- return (
- <div>
- {'asdjfl'}
- // invalid
- {'foo'}
- </div>
- );
- }
- }
- `,
- parser: 'babel-eslint',
- errors: [{message: 'Comments inside children section of tag should be placed inside braces'}]
- }
- ]
- });
|