eslint-plugin-jest-formatting 1.1.1 → 3.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 (30) hide show
  1. package/.circleci/config.yml +2 -2
  2. package/.eslintrc +15 -4
  3. package/CHANGELOG.md +6 -0
  4. package/README.md +11 -11
  5. package/docs/rules/padding-around-all.md +13 -0
  6. package/lib/ast-utils.js +1 -0
  7. package/lib/index.js +37 -107
  8. package/lib/rules/padding.js +11 -5
  9. package/package.json +21 -20
  10. package/src/ast-utils.ts +2 -0
  11. package/src/index.ts +36 -141
  12. package/src/rules/padding.ts +19 -10
  13. package/tests/catfood.js +2 -0
  14. package/tests/dogfood.spec.js +2 -0
  15. package/tests/lib/rules/padding-around-after-all-blocks.spec.js +2 -1
  16. package/tests/lib/rules/padding-around-after-each-blocks.spec.js +2 -1
  17. package/tests/lib/rules/padding-around-before-all-blocks.spec.js +2 -1
  18. package/tests/lib/rules/padding-around-before-each-blocks.spec.js +2 -1
  19. package/tests/lib/rules/padding-around-describe-blocks.spec.js +2 -1
  20. package/tests/lib/rules/padding-around-expect-groups.spec.js +66 -3
  21. package/tests/lib/rules/padding-around-test-blocks.spec.js +1 -0
  22. package/.nvmrc +0 -1
  23. package/tests/lib/rules/padding-before-after-all-blocks.spec.js +0 -98
  24. package/tests/lib/rules/padding-before-after-each-blocks.spec.js +0 -98
  25. package/tests/lib/rules/padding-before-before-all-blocks.spec.js +0 -98
  26. package/tests/lib/rules/padding-before-before-each-blocks.spec.js +0 -98
  27. package/tests/lib/rules/padding-before-describe-blocks.spec.js +0 -144
  28. package/tests/lib/rules/padding-before-expect-statements.spec.js +0 -138
  29. package/tests/lib/rules/padding-before-test-blocks.spec.js +0 -153
  30. package/yarn.lock +0 -4234
package/tests/catfood.js CHANGED
@@ -4,6 +4,8 @@
4
4
  * globs.
5
5
  */
6
6
 
7
+ /* eslint-disable @typescript-eslint/no-empty-function */
8
+
7
9
  beforeAll(() => {});
8
10
  beforeEach(() => {});
9
11
  afterAll(() => {});
@@ -1,3 +1,5 @@
1
+ /* eslint-disable @typescript-eslint/no-empty-function */
2
+
1
3
  beforeAll(() => {});
2
4
 
3
5
  beforeEach(() => {});
@@ -108,7 +108,8 @@ ruleTester.run('padding-before-after-all-blocks', rule, {
108
108
  line: 18,
109
109
  column: 3
110
110
  },
111
- ]
111
+ ],
112
+ output: valid,
112
113
  },
113
114
  ]
114
115
  });
@@ -106,7 +106,8 @@ ruleTester.run('padding-before-after-each-blocks', rule, {
106
106
  line: 17,
107
107
  column: 3
108
108
  },
109
- ]
109
+ ],
110
+ output: valid,
110
111
  },
111
112
  ]
112
113
  });
@@ -108,7 +108,8 @@ ruleTester.run('padding-before-before-all-blocks', rule, {
108
108
  line: 18,
109
109
  column: 3
110
110
  },
111
- ]
111
+ ],
112
+ output: valid,
112
113
  },
113
114
  ]
114
115
  });
@@ -108,7 +108,8 @@ ruleTester.run('padding-before-before-each-blocks', rule, {
108
108
  line: 18,
109
109
  column: 3
110
110
  },
111
- ]
111
+ ],
112
+ output: valid,
112
113
  },
113
114
  ]
114
115
  });
@@ -146,7 +146,8 @@ ruleTester.run('padding-around-describe-blocks', rule, {
146
146
  line: 27,
147
147
  column: 1
148
148
  },
149
- ]
149
+ ],
150
+ output: valid,
150
151
  },
151
152
  ]
152
153
  });
@@ -11,7 +11,7 @@ const rule = require('../../../lib').rules['padding-around-expect-groups'];
11
11
 
12
12
  const ruleTester = new RuleTester({
13
13
  parserOptions: {
14
- ecmaVersion: 6,
14
+ ecmaVersion: 2017,
15
15
  },
16
16
  });
17
17
 
@@ -63,6 +63,29 @@ describe('someText', () => {
63
63
  });
64
64
  });
65
65
  });
66
+
67
+ test('awaited expect', async () => {
68
+ const abc = 123;
69
+ const hasAPromise = () => Promise.resolve('foo');
70
+
71
+ await expect(hasAPromise()).resolves.toEqual('foo');
72
+ expect(abc).toEqual(123);
73
+
74
+ const efg = 456;
75
+
76
+ expect(123).toEqual(abc);
77
+ await expect(hasAPromise()).resolves.toEqual('foo');
78
+
79
+ const hij = 789;
80
+
81
+ await expect(hasAPromise()).resolves.toEqual('foo');
82
+ await expect(hasAPromise()).resolves.toEqual('foo');
83
+
84
+ const somethingElseAsync = () => Promise.resolve('bar');
85
+ await somethingElseAsync();
86
+
87
+ await expect(hasAPromise()).resolves.toEqual('foo');
88
+ });
66
89
  `;
67
90
 
68
91
  const invalid = `
@@ -103,6 +126,25 @@ describe('someText', () => {
103
126
  });
104
127
  });
105
128
  });
129
+
130
+ test('awaited expect', async () => {
131
+ const abc = 123;
132
+ const hasAPromise = () => Promise.resolve('foo');
133
+ await expect(hasAPromise()).resolves.toEqual('foo');
134
+ expect(abc).toEqual(123);
135
+
136
+ const efg = 456;
137
+ expect(123).toEqual(abc);
138
+ await expect(hasAPromise()).resolves.toEqual('foo');
139
+
140
+ const hij = 789;
141
+ await expect(hasAPromise()).resolves.toEqual('foo');
142
+ await expect(hasAPromise()).resolves.toEqual('foo');
143
+
144
+ const somethingElseAsync = () => Promise.resolve('bar');
145
+ await somethingElseAsync();
146
+ await expect(hasAPromise()).resolves.toEqual('foo');
147
+ });
106
148
  `;
107
149
 
108
150
  ruleTester.run('padding-around-expect-groups', rule, {
@@ -111,7 +153,7 @@ ruleTester.run('padding-around-expect-groups', rule, {
111
153
  {
112
154
  code: invalid,
113
155
  filename: 'src/component.test.jsx',
114
- errors: 6,
156
+ errors: 10,
115
157
  output: valid,
116
158
  },
117
159
  {
@@ -148,7 +190,28 @@ ruleTester.run('padding-around-expect-groups', rule, {
148
190
  line: 32,
149
191
  column: 7
150
192
  },
151
- ]
193
+ {
194
+ message: 'Expected blank line before this statement.',
195
+ line: 43,
196
+ column: 3
197
+ },
198
+ {
199
+ message: 'Expected blank line before this statement.',
200
+ line: 47,
201
+ column: 3
202
+ },
203
+ {
204
+ message: 'Expected blank line before this statement.',
205
+ line: 51,
206
+ column: 3
207
+ },
208
+ {
209
+ message: 'Expected blank line before this statement.',
210
+ line: 56,
211
+ column: 3
212
+ },
213
+ ],
214
+ output: valid,
152
215
  },
153
216
  ]
154
217
  });
@@ -156,6 +156,7 @@ ruleTester.run('padding-around-test-blocks', rule, {
156
156
  column: 1
157
157
  },
158
158
  ],
159
+ output: valid,
159
160
  },
160
161
  ],
161
162
  });
package/.nvmrc DELETED
@@ -1 +0,0 @@
1
- v8.10.0
@@ -1,98 +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-before-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
-
27
- describe('someText', () => {
28
- const something = 'abc';
29
- // A comment
30
- afterAll(() => {
31
- // stuff
32
- });
33
- });
34
-
35
- describe('someText', () => {
36
- const something = 'abc';
37
- afterAll(() => {
38
- // stuff
39
- });
40
- });
41
- `;
42
-
43
- const valid = `
44
- const someText = 'abc';
45
-
46
- afterAll(() => {
47
- });
48
-
49
- describe('someText', () => {
50
- const something = 'abc';
51
-
52
- // A comment
53
- afterAll(() => {
54
- // stuff
55
- });
56
- });
57
-
58
- describe('someText', () => {
59
- const something = 'abc';
60
-
61
- afterAll(() => {
62
- // stuff
63
- });
64
- });
65
- `;
66
-
67
- ruleTester.run('padding-before-after-all-blocks', rule, {
68
- valid: [valid],
69
- invalid: [
70
- {
71
- code: invalid,
72
- filename: 'src/component.test.jsx',
73
- errors: 3,
74
- output: valid,
75
- },
76
- {
77
- code: invalid,
78
- filename: 'src/component.test.js',
79
- errors: [
80
- {
81
- message: 'Expected blank line before this statement.',
82
- line: 3,
83
- column: 1
84
- },
85
- {
86
- message: 'Expected blank line before this statement.',
87
- line: 9,
88
- column: 3
89
- },
90
- {
91
- message: 'Expected blank line before this statement.',
92
- line: 16,
93
- column: 3
94
- },
95
- ]
96
- },
97
- ]
98
- });
@@ -1,98 +0,0 @@
1
- /**
2
- * @fileoverview Enforces single line padding before afterEach blocks
3
- */
4
-
5
- //------------------------------------------------------------------------------
6
- // Requirements
7
- //------------------------------------------------------------------------------
8
-
9
- const { RuleTester } = require('eslint');
10
- const rule = require('../../../lib').rules['padding-before-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
-
27
- describe('someText', () => {
28
- const something = 'abc';
29
- // A comment
30
- afterEach(() => {
31
- // stuff
32
- });
33
- });
34
-
35
- describe('someText', () => {
36
- const something = 'abc';
37
- afterEach(() => {
38
- // stuff
39
- });
40
- });
41
- `;
42
-
43
- const valid = `
44
- const someText = 'abc';
45
-
46
- afterEach(() => {
47
- });
48
-
49
- describe('someText', () => {
50
- const something = 'abc';
51
-
52
- // A comment
53
- afterEach(() => {
54
- // stuff
55
- });
56
- });
57
-
58
- describe('someText', () => {
59
- const something = 'abc';
60
-
61
- afterEach(() => {
62
- // stuff
63
- });
64
- });
65
- `;
66
-
67
- ruleTester.run('padding-before-after-each-blocks', rule, {
68
- valid: [valid],
69
- invalid: [
70
- {
71
- code: invalid,
72
- errors: 3,
73
- filename: 'src/component.test.jsx',
74
- output: valid,
75
- },
76
- {
77
- code: invalid,
78
- filename: 'src/component.test.js',
79
- errors: [
80
- {
81
- message: 'Expected blank line before this statement.',
82
- line: 3,
83
- column: 1
84
- },
85
- {
86
- message: 'Expected blank line before this statement.',
87
- line: 9,
88
- column: 3
89
- },
90
- {
91
- message: 'Expected blank line before this statement.',
92
- line: 16,
93
- column: 3
94
- },
95
- ]
96
- },
97
- ]
98
- });
@@ -1,98 +0,0 @@
1
- /**
2
- * @fileoverview Enforces single line padding before beforeAll blocks
3
- */
4
-
5
- //------------------------------------------------------------------------------
6
- // Requirements
7
- //------------------------------------------------------------------------------
8
-
9
- const { RuleTester } = require('eslint');
10
- const rule = require('../../../lib').rules['padding-before-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
-
27
- describe('someText', () => {
28
- const something = 'abc';
29
- // A comment
30
- beforeAll(() => {
31
- // stuff
32
- });
33
- });
34
-
35
- describe('someText', () => {
36
- const something = 'abc';
37
- beforeAll(() => {
38
- // stuff
39
- });
40
- });
41
- `;
42
-
43
- const valid = `
44
- const someText = 'abc';
45
-
46
- beforeAll(() => {
47
- });
48
-
49
- describe('someText', () => {
50
- const something = 'abc';
51
-
52
- // A comment
53
- beforeAll(() => {
54
- // stuff
55
- });
56
- });
57
-
58
- describe('someText', () => {
59
- const something = 'abc';
60
-
61
- beforeAll(() => {
62
- // stuff
63
- });
64
- });
65
- `;
66
-
67
- ruleTester.run('padding-before-before-all-blocks', rule, {
68
- valid: [valid],
69
- invalid: [
70
- {
71
- code: invalid,
72
- filename: 'src/component.test.jsx',
73
- errors: 3,
74
- output: valid,
75
- },
76
- {
77
- code: invalid,
78
- filename: 'src/component.test.js',
79
- errors: [
80
- {
81
- message: 'Expected blank line before this statement.',
82
- line: 3,
83
- column: 1
84
- },
85
- {
86
- message: 'Expected blank line before this statement.',
87
- line: 9,
88
- column: 3
89
- },
90
- {
91
- message: 'Expected blank line before this statement.',
92
- line: 16,
93
- column: 3
94
- },
95
- ]
96
- },
97
- ]
98
- });
@@ -1,98 +0,0 @@
1
- /**
2
- * @fileoverview Enforces single line padding before beforeEach blocks
3
- */
4
-
5
- //------------------------------------------------------------------------------
6
- // Requirements
7
- //------------------------------------------------------------------------------
8
-
9
- const { RuleTester } = require('eslint');
10
- const rule = require('../../../lib').rules['padding-before-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
-
27
- describe('someText', () => {
28
- const something = 'abc';
29
- // A comment
30
- beforeEach(() => {
31
- // stuff
32
- });
33
- });
34
-
35
- describe('someText', () => {
36
- const something = 'abc';
37
- beforeEach(() => {
38
- // stuff
39
- });
40
- });
41
- `;
42
-
43
- const valid = `
44
- const someText = 'abc';
45
-
46
- beforeEach(() => {
47
- });
48
-
49
- describe('someText', () => {
50
- const something = 'abc';
51
-
52
- // A comment
53
- beforeEach(() => {
54
- // stuff
55
- });
56
- });
57
-
58
- describe('someText', () => {
59
- const something = 'abc';
60
-
61
- beforeEach(() => {
62
- // stuff
63
- });
64
- });
65
- `;
66
-
67
- ruleTester.run('padding-before-before-each-blocks', rule, {
68
- valid: [valid],
69
- invalid: [
70
- {
71
- code: invalid,
72
- filename: 'src/component.test.jsx',
73
- errors: 3,
74
- output: valid,
75
- },
76
- {
77
- code: invalid,
78
- filename: 'src/component.test.js',
79
- errors: [
80
- {
81
- message: 'Expected blank line before this statement.',
82
- line: 3,
83
- column: 1
84
- },
85
- {
86
- message: 'Expected blank line before this statement.',
87
- line: 9,
88
- column: 3
89
- },
90
- {
91
- message: 'Expected blank line before this statement.',
92
- line: 16,
93
- column: 3
94
- },
95
- ]
96
- },
97
- ]
98
- });