eslint-plugin-jest-formatting 3.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/AGENTS.md +110 -0
  2. package/CHANGELOG.md +33 -0
  3. package/README.md +44 -1
  4. package/docs/rules/padding-around-after-all-blocks.md +73 -11
  5. package/docs/rules/padding-around-after-each-blocks.md +67 -11
  6. package/docs/rules/padding-around-all.md +102 -9
  7. package/docs/rules/padding-around-before-all-blocks.md +67 -13
  8. package/docs/rules/padding-around-before-each-blocks.md +65 -11
  9. package/docs/rules/padding-around-describe-blocks.md +64 -5
  10. package/docs/rules/padding-around-expect-groups.md +64 -6
  11. package/docs/rules/padding-around-test-blocks.md +76 -13
  12. package/lib/ast-utils.js +15 -8
  13. package/lib/index.js +84 -54
  14. package/lib/rules/padding.js +47 -21
  15. package/llms.txt +29 -0
  16. package/package.json +28 -21
  17. package/.circleci/config.yml +0 -67
  18. package/.eslintignore +0 -3
  19. package/.eslintrc +0 -34
  20. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -31
  21. package/.github/ISSUE_TEMPLATE/rule-request.md +0 -21
  22. package/.prettierignore +0 -4
  23. package/.prettierrc +0 -4
  24. package/docs/rules/padding-before-after-all-blocks.md +0 -24
  25. package/docs/rules/padding-before-after-each-blocks.md +0 -24
  26. package/docs/rules/padding-before-all.md +0 -15
  27. package/docs/rules/padding-before-before-all-blocks.md +0 -24
  28. package/docs/rules/padding-before-before-each-blocks.md +0 -24
  29. package/docs/rules/padding-before-describe-blocks.md +0 -28
  30. package/docs/rules/padding-before-expect-statements.md +0 -22
  31. package/docs/rules/padding-before-test-blocks.md +0 -31
  32. package/jest.config.js +0 -4
  33. package/renovate.json +0 -3
  34. package/src/ast-utils.ts +0 -80
  35. package/src/index.ts +0 -182
  36. package/src/rules/padding.ts +0 -357
  37. package/tests/catfood.js +0 -41
  38. package/tests/dogfood.spec.js +0 -32
  39. package/tests/lib/ast-utils.spec.ts +0 -94
  40. package/tests/lib/rules/padding-around-after-all-blocks.spec.js +0 -115
  41. package/tests/lib/rules/padding-around-after-each-blocks.spec.js +0 -113
  42. package/tests/lib/rules/padding-around-before-all-blocks.spec.js +0 -115
  43. package/tests/lib/rules/padding-around-before-each-blocks.spec.js +0 -115
  44. package/tests/lib/rules/padding-around-describe-blocks.spec.js +0 -153
  45. package/tests/lib/rules/padding-around-expect-groups.spec.js +0 -217
  46. package/tests/lib/rules/padding-around-test-blocks.spec.js +0 -162
  47. package/tsconfig.json +0 -12
@@ -1,94 +0,0 @@
1
- import { isValidParent, isTokenASemicolon, areTokensOnSameLine } from "../../src/ast-utils";
2
- import { AST } from "eslint";
3
- import { Node } from "estree";
4
-
5
- describe('isValidParent', () => {
6
- test.each`
7
- type | expected
8
- ${'Program'} | ${true}
9
- ${'BlockStatement'} | ${true}
10
- ${'SwitchCase'} | ${true}
11
- ${'SwitchStatement'} | ${true}
12
- ${'Statement'} | ${false}
13
- `('returns $expected for parent value of $type', ({ type, expected }) => {
14
- expect(isValidParent(type)).toBe(expected);
15
- });
16
- });
17
-
18
- describe('isTokenASemicolon', () => {
19
- test.each`
20
- type | value | expected
21
- ${'Punctuator'} | ${';'} | ${true}
22
- ${'Punctuator'} | ${'.'} | ${false}
23
- ${'String'} | ${';'} | ${false}
24
- `('returns $expected for $type and $value', ({ type, value, expected}) => {
25
- const token: AST.Token = {
26
- type,
27
- value,
28
- range: [0, 1],
29
- loc: {
30
- start: {
31
- line: 0,
32
- column: 0,
33
- },
34
- end: {
35
- line: 0,
36
- column: 1,
37
- }
38
- }
39
- };
40
-
41
- expect(isTokenASemicolon(token)).toBe(expected);
42
- });
43
- });
44
-
45
- describe('areTokensOnSameLine', () => {
46
- const makeNode = (line: number): Node => {
47
- return {
48
- type: 'Identifier',
49
- name: 'describe',
50
- loc: {
51
- start: {
52
- line,
53
- column: 10
54
- },
55
- end: {
56
- line,
57
- column: 10
58
- },
59
- },
60
- };
61
- };
62
-
63
- const makeToken = (line: number): AST.Token => {
64
- return {
65
- type: 'Punctuator',
66
- value: ';',
67
- range: [0, 1],
68
- loc: {
69
- start: {
70
- line,
71
- column: 10
72
- },
73
- end: {
74
- line,
75
- column: 10
76
- },
77
- },
78
- };
79
- };
80
-
81
- test.each`
82
- left | right | expected
83
- ${makeNode(1)} | ${makeNode(1)} | ${true}
84
- ${makeNode(1)} | ${makeToken(1)} | ${true}
85
- ${makeToken(1)} | ${makeNode(1)} | ${true}
86
- ${makeToken(1)} | ${makeToken(1)} | ${true}
87
- ${makeNode(1)} | ${makeNode(2)} | ${false}
88
- ${makeNode(1)} | ${makeToken(2)} | ${false}
89
- ${makeToken(1)} | ${makeNode(2)} | ${false}
90
- ${makeToken(1)} | ${makeToken(2)} | ${false}
91
- `('returns $expected for left node/token ending on $left.loc.end.line and right node/token starting on $right.loc.start.line', ({ left, right, expected }) => {
92
- expect(areTokensOnSameLine(left, right)).toBe(expected);
93
- });
94
- });
@@ -1,115 +0,0 @@
1
- /**
2
- * @fileoverview Enforces single line padding before afterAll blocks
3
- */
4
-
5
- //------------------------------------------------------------------------------
6
- // Requirements
7
- //------------------------------------------------------------------------------
8
-
9
- const { RuleTester } = require('eslint');
10
- const rule = require('../../../lib').rules['padding-around-after-all-blocks'];
11
-
12
- const ruleTester = new RuleTester({
13
- parserOptions: {
14
- ecmaVersion: 6,
15
- },
16
- });
17
-
18
- //------------------------------------------------------------------------------
19
- // Tests
20
- //------------------------------------------------------------------------------
21
-
22
- const invalid = `
23
- const someText = 'abc';
24
- afterAll(() => {
25
- });
26
- describe('someText', () => {
27
- const something = 'abc';
28
- // A comment
29
- afterAll(() => {
30
- // stuff
31
- });
32
- afterAll(() => {
33
- // other stuff
34
- });
35
- });
36
-
37
- describe('someText', () => {
38
- const something = 'abc';
39
- afterAll(() => {
40
- // stuff
41
- });
42
- });
43
- `;
44
-
45
- const valid = `
46
- const someText = 'abc';
47
-
48
- afterAll(() => {
49
- });
50
-
51
- describe('someText', () => {
52
- const something = 'abc';
53
-
54
- // A comment
55
- afterAll(() => {
56
- // stuff
57
- });
58
-
59
- afterAll(() => {
60
- // other stuff
61
- });
62
- });
63
-
64
- describe('someText', () => {
65
- const something = 'abc';
66
-
67
- afterAll(() => {
68
- // stuff
69
- });
70
- });
71
- `;
72
-
73
- ruleTester.run('padding-before-after-all-blocks', rule, {
74
- valid: [valid],
75
- invalid: [
76
- {
77
- code: invalid,
78
- filename: 'src/component.test.jsx',
79
- errors: 5,
80
- output: valid,
81
- },
82
- {
83
- code: invalid,
84
- filename: 'src/component.test.js',
85
- errors: [
86
- {
87
- message: 'Expected blank line before this statement.',
88
- line: 3,
89
- column: 1
90
- },
91
- {
92
- message: 'Expected blank line before this statement.',
93
- line: 5,
94
- column: 1
95
- },
96
- {
97
- message: 'Expected blank line before this statement.',
98
- line: 8,
99
- column: 3
100
- },
101
- {
102
- message: 'Expected blank line before this statement.',
103
- line: 11,
104
- column: 3
105
- },
106
- {
107
- message: 'Expected blank line before this statement.',
108
- line: 18,
109
- column: 3
110
- },
111
- ],
112
- output: valid,
113
- },
114
- ]
115
- });
@@ -1,113 +0,0 @@
1
- /**
2
- * @fileoverview Enforces single line padding around afterEach blocks
3
- */
4
-
5
- //------------------------------------------------------------------------------
6
- // Requirements
7
- //------------------------------------------------------------------------------
8
-
9
- const { RuleTester } = require('eslint');
10
- const rule = require('../../../lib').rules['padding-around-after-each-blocks'];
11
-
12
- const ruleTester = new RuleTester({
13
- parserOptions: {
14
- ecmaVersion: 6,
15
- },
16
- });
17
-
18
- //------------------------------------------------------------------------------
19
- // Tests
20
- //------------------------------------------------------------------------------
21
-
22
- const invalid = `
23
- const someText = 'abc';
24
- afterEach(() => {
25
- });
26
- describe('someText', () => {
27
- const something = 'abc';
28
- // A comment
29
- afterEach(() => {
30
- // stuff
31
- });
32
- afterEach(() => {
33
- // other stuff
34
- });
35
- });
36
- describe('someText', () => {
37
- const something = 'abc';
38
- afterEach(() => {
39
- // stuff
40
- });
41
- });
42
- `;
43
-
44
- const valid = `
45
- const someText = 'abc';
46
-
47
- afterEach(() => {
48
- });
49
-
50
- describe('someText', () => {
51
- const something = 'abc';
52
-
53
- // A comment
54
- afterEach(() => {
55
- // stuff
56
- });
57
-
58
- afterEach(() => {
59
- // other stuff
60
- });
61
- });
62
- describe('someText', () => {
63
- const something = 'abc';
64
-
65
- afterEach(() => {
66
- // stuff
67
- });
68
- });
69
- `;
70
-
71
- ruleTester.run('padding-before-after-each-blocks', rule, {
72
- valid: [valid],
73
- invalid: [
74
- {
75
- code: invalid,
76
- errors: 5,
77
- filename: 'src/component.test.jsx',
78
- output: valid,
79
- },
80
- {
81
- code: invalid,
82
- filename: 'src/component.test.js',
83
- errors: [
84
- {
85
- message: 'Expected blank line before this statement.',
86
- line: 3,
87
- column: 1
88
- },
89
- {
90
- message: 'Expected blank line before this statement.',
91
- line: 5,
92
- column: 1
93
- },
94
- {
95
- message: 'Expected blank line before this statement.',
96
- line: 8,
97
- column: 3
98
- },
99
- {
100
- message: 'Expected blank line before this statement.',
101
- line: 11,
102
- column: 3
103
- },
104
- {
105
- message: 'Expected blank line before this statement.',
106
- line: 17,
107
- column: 3
108
- },
109
- ],
110
- output: valid,
111
- },
112
- ]
113
- });
@@ -1,115 +0,0 @@
1
- /**
2
- * @fileoverview Enforces single line padding around beforeAll blocks
3
- */
4
-
5
- //------------------------------------------------------------------------------
6
- // Requirements
7
- //------------------------------------------------------------------------------
8
-
9
- const { RuleTester } = require('eslint');
10
- const rule = require('../../../lib').rules['padding-around-before-all-blocks'];
11
-
12
- const ruleTester = new RuleTester({
13
- parserOptions: {
14
- ecmaVersion: 6,
15
- },
16
- });
17
-
18
- //------------------------------------------------------------------------------
19
- // Tests
20
- //------------------------------------------------------------------------------
21
-
22
- const invalid = `
23
- const someText = 'abc';
24
- beforeAll(() => {
25
- });
26
- describe('someText', () => {
27
- const something = 'abc';
28
- // A comment
29
- beforeAll(() => {
30
- // stuff
31
- });
32
- beforeAll(() => {
33
- // other stuff
34
- });
35
- });
36
-
37
- describe('someText', () => {
38
- const something = 'abc';
39
- beforeAll(() => {
40
- // stuff
41
- });
42
- });
43
- `;
44
-
45
- const valid = `
46
- const someText = 'abc';
47
-
48
- beforeAll(() => {
49
- });
50
-
51
- describe('someText', () => {
52
- const something = 'abc';
53
-
54
- // A comment
55
- beforeAll(() => {
56
- // stuff
57
- });
58
-
59
- beforeAll(() => {
60
- // other stuff
61
- });
62
- });
63
-
64
- describe('someText', () => {
65
- const something = 'abc';
66
-
67
- beforeAll(() => {
68
- // stuff
69
- });
70
- });
71
- `;
72
-
73
- ruleTester.run('padding-before-before-all-blocks', rule, {
74
- valid: [valid],
75
- invalid: [
76
- {
77
- code: invalid,
78
- filename: 'src/component.test.jsx',
79
- errors: 5,
80
- output: valid,
81
- },
82
- {
83
- code: invalid,
84
- filename: 'src/component.test.js',
85
- errors: [
86
- {
87
- message: 'Expected blank line before this statement.',
88
- line: 3,
89
- column: 1
90
- },
91
- {
92
- message: 'Expected blank line before this statement.',
93
- line: 5,
94
- column: 1
95
- },
96
- {
97
- message: 'Expected blank line before this statement.',
98
- line: 8,
99
- column: 3
100
- },
101
- {
102
- message: 'Expected blank line before this statement.',
103
- line: 11,
104
- column: 3
105
- },
106
- {
107
- message: 'Expected blank line before this statement.',
108
- line: 18,
109
- column: 3
110
- },
111
- ],
112
- output: valid,
113
- },
114
- ]
115
- });
@@ -1,115 +0,0 @@
1
- /**
2
- * @fileoverview Enforces single line padding around beforeEach blocks
3
- */
4
-
5
- //------------------------------------------------------------------------------
6
- // Requirements
7
- //------------------------------------------------------------------------------
8
-
9
- const { RuleTester } = require('eslint');
10
- const rule = require('../../../lib').rules['padding-around-before-each-blocks'];
11
-
12
- const ruleTester = new RuleTester({
13
- parserOptions: {
14
- ecmaVersion: 6,
15
- },
16
- });
17
-
18
- //------------------------------------------------------------------------------
19
- // Tests
20
- //------------------------------------------------------------------------------
21
-
22
- const invalid = `
23
- const someText = 'abc';
24
- beforeEach(() => {
25
- });
26
- describe('someText', () => {
27
- const something = 'abc';
28
- // A comment
29
- beforeEach(() => {
30
- // stuff
31
- });
32
- beforeEach(() => {
33
- // other stuff
34
- });
35
- });
36
-
37
- describe('someText', () => {
38
- const something = 'abc';
39
- beforeEach(() => {
40
- // stuff
41
- });
42
- });
43
- `;
44
-
45
- const valid = `
46
- const someText = 'abc';
47
-
48
- beforeEach(() => {
49
- });
50
-
51
- describe('someText', () => {
52
- const something = 'abc';
53
-
54
- // A comment
55
- beforeEach(() => {
56
- // stuff
57
- });
58
-
59
- beforeEach(() => {
60
- // other stuff
61
- });
62
- });
63
-
64
- describe('someText', () => {
65
- const something = 'abc';
66
-
67
- beforeEach(() => {
68
- // stuff
69
- });
70
- });
71
- `;
72
-
73
- ruleTester.run('padding-before-before-each-blocks', rule, {
74
- valid: [valid],
75
- invalid: [
76
- {
77
- code: invalid,
78
- filename: 'src/component.test.jsx',
79
- errors: 5,
80
- output: valid,
81
- },
82
- {
83
- code: invalid,
84
- filename: 'src/component.test.js',
85
- errors: [
86
- {
87
- message: 'Expected blank line before this statement.',
88
- line: 3,
89
- column: 1
90
- },
91
- {
92
- message: 'Expected blank line before this statement.',
93
- line: 5,
94
- column: 1
95
- },
96
- {
97
- message: 'Expected blank line before this statement.',
98
- line: 8,
99
- column: 3
100
- },
101
- {
102
- message: 'Expected blank line before this statement.',
103
- line: 11,
104
- column: 3
105
- },
106
- {
107
- message: 'Expected blank line before this statement.',
108
- line: 18,
109
- column: 3
110
- },
111
- ],
112
- output: valid,
113
- },
114
- ]
115
- });
@@ -1,153 +0,0 @@
1
- /**
2
- * @fileoverview Enforces padding line around describe blocks
3
- * @author Dan Green-Leipciger
4
- */
5
-
6
- //------------------------------------------------------------------------------
7
- // Requirements
8
- //------------------------------------------------------------------------------
9
-
10
- const { RuleTester } = require('eslint');
11
- const rule = require('../../../lib').rules['padding-around-describe-blocks'];
12
-
13
- const ruleTester = new RuleTester({
14
- parserOptions: {
15
- ecmaVersion: 6,
16
- },
17
- });
18
-
19
- //------------------------------------------------------------------------------
20
- // Tests
21
- //------------------------------------------------------------------------------
22
-
23
- const valid = `
24
- foo();
25
- bar();
26
-
27
- const someText = 'abc';
28
- const someObject = {
29
- one: 1,
30
- two: 2,
31
- };
32
-
33
- // A comment before describe
34
- describe('someText', () => {
35
- describe('some condition', () => {
36
- });
37
-
38
- describe('some other condition', () => {
39
- });
40
- });
41
-
42
- xdescribe('someObject', () => {
43
- // Another comment
44
- describe('some condition', () => {
45
- const anotherThing = 500;
46
-
47
- describe('yet another condition', () => { // A comment over here!
48
- });
49
- });
50
- });
51
-
52
- fdescribe('weird', () => {});
53
-
54
- describe.skip('skip me', () => {});
55
-
56
- const BOOP = "boop";
57
-
58
- describe
59
- .skip('skip me too', () => {
60
- // stuff
61
- });
62
- `;
63
-
64
- const invalid = `
65
- foo();
66
- bar();
67
-
68
- const someText = 'abc';
69
- const someObject = {
70
- one: 1,
71
- two: 2,
72
- };
73
- // A comment before describe
74
- describe('someText', () => {
75
- describe('some condition', () => {
76
- });
77
- describe('some other condition', () => {
78
- });
79
- });
80
- xdescribe('someObject', () => {
81
- // Another comment
82
- describe('some condition', () => {
83
- const anotherThing = 500;
84
- describe('yet another condition', () => { // A comment over here!
85
- });
86
- });
87
- });fdescribe('weird', () => {});
88
- describe.skip('skip me', () => {});
89
- const BOOP = "boop";
90
- describe
91
- .skip('skip me too', () => {
92
- // stuff
93
- });
94
- `;
95
-
96
- ruleTester.run('padding-around-describe-blocks', rule, {
97
- valid: [valid],
98
- invalid: [
99
- {
100
- code: invalid,
101
- filename: 'src/component.test.jsx',
102
- errors: 8,
103
- output: valid,
104
- },
105
- {
106
- code: invalid,
107
- filename: 'src/component.test.js',
108
- errors: [
109
- {
110
- message: 'Expected blank line before this statement.',
111
- line: 11,
112
- column: 1
113
- },
114
- {
115
- message: 'Expected blank line before this statement.',
116
- line: 14,
117
- column: 3
118
- },
119
- {
120
- message: 'Expected blank line before this statement.',
121
- line: 17,
122
- column: 1
123
- },
124
- {
125
- message: 'Expected blank line before this statement.',
126
- line: 21,
127
- column: 5
128
- },
129
- {
130
- message: 'Expected blank line before this statement.',
131
- line: 24,
132
- column: 4
133
- },
134
- {
135
- message: 'Expected blank line before this statement.',
136
- line: 25,
137
- column: 1
138
- },
139
- {
140
- message: 'Expected blank line before this statement.',
141
- line: 26,
142
- column: 1
143
- },
144
- {
145
- message: 'Expected blank line before this statement.',
146
- line: 27,
147
- column: 1
148
- },
149
- ],
150
- output: valid,
151
- },
152
- ]
153
- });