123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- 'use strict';
- const rule = require('../../../lib/rules/jsx-child-element-spacing');
- const RuleTester = require('eslint').RuleTester;
- const parserOptions = {
- sourceType: 'module',
- ecmaFeatures: {
- jsx: true
- }
- };
- const ruleTester = new RuleTester({parserOptions});
- ruleTester.run('jsx-child-element-spacing', rule, {
- valid: [{
- code: `
- <App>
- foo
- </App>
- `
- }, {
- code: `
- <App>
- <a>bar</a>
- </App>
- `
- }, {
- code: `
- <App>
- <a>
- <b>nested</b>
- </a>
- </App>
- `
- }, {
- code: `
- <App>
- foo
- bar
- </App>
- `
- }, {
- code: `
- <App>
- foo<a>bar</a>baz
- </App>
- `
- }, {
- code: `
- <App>
- foo
- {' '}
- <a>bar</a>
- {' '}
- baz
- </App>
- `
- }, {
- code: `
- <App>
- foo
- {' '}<a>bar</a>{' '}
- baz
- </App>
- `
- }, {
- code: `
- <App>
- foo{' '}
- <a>bar</a>
- {' '}baz
- </App>
- `
- }, {
- code: `
- <App>
- foo{/*
- */}<a>bar</a>{/*
- */}baz
- </App>
- `
- }, {
- code: `
- <App>
- Please take a look at <a href="https://js.org">this link</a>.
- </App>
- `
- }, {
- code: `
- <App>
- Please take a look at
- {' '}
- <a href="https://js.org">this link</a>.
- </App>
- `
- }, {
- code: `
- <App>
- <p>A</p>
- <p>B</p>
- </App>
- `
- }, {
- code: `
- <App>
- <p>A</p><p>B</p>
- </App>
- `
- }, {
- code: `
- <App>
- <a>foo</a>
- <a>bar</a>
- </App>
- `
- }, {
- code: `
- <App>
- <a>
- <b>nested1</b>
- <b>nested2</b>
- </a>
- </App>
- `
- }, {
- code: `
- <App>
- A
- B
- </App>
- `
- }],
- invalid: [{
- code: `
- <App>
- foo
- <a>bar</a>
- </App>
- `,
- errors: [
- {
- message: 'Ambiguous spacing before next element a',
- line: 4,
- column: 3
- }
- ]
- }, {
- code: `
- <App>
- <a>bar</a>
- baz
- </App>
- `,
- errors: [
- {
- message: 'Ambiguous spacing after previous element a',
- line: 3,
- column: 13
- }
- ]
- }, {
- code: `
- <App>
- {' '}<a>bar</a>
- baz
- </App>
- `,
- errors: [
- {
- message: 'Ambiguous spacing after previous element a',
- line: 3,
- column: 18
- }
- ]
- }, {
- code: `
- <App>
- Please take a look at
- <a href="https://js.org">this link</a>.
- </App>
- `,
- errors: [
- {
- message: 'Ambiguous spacing before next element a',
- line: 4,
- column: 3
- }
- ]
- }, {
- code: `
- <App>
- Some <code>loops</code> and some
- <code>if</code> statements.
- </App>
- `,
- errors: [
- {
- message: 'Ambiguous spacing before next element code',
- line: 4,
- column: 3
- }
- ]
- }, {
- code: `
- <App>
- Here is
- <a href="https://js.org">a link</a> and here is
- <a href="https://js.org">another</a>
- </App>
- `,
- errors: [
- {
- message: 'Ambiguous spacing before next element a',
- line: 4,
- column: 3
- },
- {
- message: 'Ambiguous spacing before next element a',
- line: 5,
- column: 3
- }
- ]
- }]
- });
|