Skip to content

Commit 1fb5a4a

Browse files
authored
feat(no-disabled-tests): improve error message and simplify rule (#1739)
1 parent ff8c9ac commit 1fb5a4a

File tree

2 files changed

+26
-61
lines changed

2 files changed

+26
-61
lines changed

src/rules/__tests__/no-disabled-tests.test.ts

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -73,83 +73,83 @@ ruleTester.run('no-disabled-tests', rule, {
7373
invalid: [
7474
{
7575
code: 'describe.skip("foo", function () {})',
76-
errors: [{ messageId: 'disabledSuite', column: 1, line: 1 }],
76+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
7777
},
7878
{
7979
code: 'describe.skip.each([1, 2, 3])("%s", (a, b) => {});',
80-
errors: [{ messageId: 'disabledSuite', column: 1, line: 1 }],
80+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
8181
},
8282
{
8383
code: 'xdescribe.each([1, 2, 3])("%s", (a, b) => {});',
84-
errors: [{ messageId: 'disabledSuite', column: 1, line: 1 }],
84+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
8585
},
8686
{
8787
code: 'describe[`skip`]("foo", function () {})',
88-
errors: [{ messageId: 'disabledSuite', column: 1, line: 1 }],
88+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
8989
},
9090
{
9191
code: 'describe["skip"]("foo", function () {})',
92-
errors: [{ messageId: 'disabledSuite', column: 1, line: 1 }],
92+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
9393
},
9494
{
9595
code: 'it.skip("foo", function () {})',
96-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
96+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
9797
},
9898
{
9999
code: 'it["skip"]("foo", function () {})',
100-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
100+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
101101
},
102102
{
103103
code: 'test.skip("foo", function () {})',
104-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
104+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
105105
},
106106
{
107107
code: 'it.skip.each``("foo", function () {})',
108-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
108+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
109109
},
110110
{
111111
code: 'test.skip.each``("foo", function () {})',
112-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
112+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
113113
},
114114
{
115115
code: 'it.skip.each([])("foo", function () {})',
116-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
116+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
117117
},
118118
{
119119
code: 'test.skip.each([])("foo", function () {})',
120-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
120+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
121121
},
122122
{
123123
code: 'test["skip"]("foo", function () {})',
124-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
124+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
125125
},
126126
{
127127
code: 'xdescribe("foo", function () {})',
128-
errors: [{ messageId: 'disabledSuite', column: 1, line: 1 }],
128+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
129129
},
130130
{
131131
code: 'xit("foo", function () {})',
132-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
132+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
133133
},
134134
{
135135
code: 'xtest("foo", function () {})',
136-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
136+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
137137
},
138138
{
139139
code: 'xit.each``("foo", function () {})',
140-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
140+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
141141
},
142142
{
143143
code: 'xtest.each``("foo", function () {})',
144-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
144+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
145145
},
146146
{
147147
code: 'xit.each([])("foo", function () {})',
148-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
148+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
149149
},
150150
{
151151
code: 'xtest.each([])("foo", function () {})',
152-
errors: [{ messageId: 'disabledTest', column: 1, line: 1 }],
152+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
153153
},
154154
{
155155
code: 'it("has title but no callback")',
@@ -161,15 +161,15 @@ ruleTester.run('no-disabled-tests', rule, {
161161
},
162162
{
163163
code: 'it("contains a call to pending", function () { pending() })',
164-
errors: [{ messageId: 'pendingTest', column: 48, line: 1 }],
164+
errors: [{ messageId: 'skippedTest', column: 48, line: 1 }],
165165
},
166166
{
167167
code: 'pending();',
168-
errors: [{ messageId: 'pending', column: 1, line: 1 }],
168+
errors: [{ messageId: 'skippedTest', column: 1, line: 1 }],
169169
},
170170
{
171171
code: 'describe("contains a call to pending", function () { pending() })',
172-
errors: [{ messageId: 'pendingSuite', column: 54, line: 1 }],
172+
errors: [{ messageId: 'skippedTest', column: 54, line: 1 }],
173173
},
174174
{
175175
code: dedent`

src/rules/no-disabled-tests.ts

Lines changed: 3 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,13 @@ export default createRule({
1414
},
1515
messages: {
1616
missingFunction: 'Test is missing function argument',
17-
pending: 'Call to pending()',
18-
pendingSuite: 'Call to pending() within test suite',
19-
pendingTest: 'Call to pending() within test',
20-
disabledSuite: 'Disabled test suite',
21-
disabledTest: 'Disabled test',
17+
skippedTest: 'Tests should not be skipped',
2218
},
2319
schema: [],
2420
type: 'suggestion',
2521
},
2622
defaultOptions: [],
2723
create(context) {
28-
let suiteDepth = 0;
29-
let testDepth = 0;
30-
3124
return {
3225
CallExpression(node) {
3326
const jestFnCall = parseJestFnCall(node, context);
@@ -36,13 +29,7 @@ export default createRule({
3629
return;
3730
}
3831

39-
if (jestFnCall.type === 'describe') {
40-
suiteDepth++;
41-
}
42-
4332
if (jestFnCall.type === 'test') {
44-
testDepth++;
45-
4633
if (
4734
node.arguments.length < 2 &&
4835
jestFnCall.members.every(s => getAccessorValue(s) !== 'todo')
@@ -57,39 +44,17 @@ export default createRule({
5744
jestFnCall.members.some(s => getAccessorValue(s) === 'skip')
5845
) {
5946
context.report({
60-
messageId:
61-
jestFnCall.type === 'describe' ? 'disabledSuite' : 'disabledTest',
47+
messageId: 'skippedTest',
6248
node,
6349
});
6450
}
6551
},
66-
'CallExpression:exit'(node) {
67-
const jestFnCall = parseJestFnCall(node, context);
68-
69-
if (!jestFnCall) {
70-
return;
71-
}
72-
73-
if (jestFnCall.type === 'describe') {
74-
suiteDepth--;
75-
}
76-
77-
if (jestFnCall.type === 'test') {
78-
testDepth--;
79-
}
80-
},
8152
'CallExpression[callee.name="pending"]'(node) {
8253
if (resolveScope(getScope(context, node), 'pending')) {
8354
return;
8455
}
8556

86-
if (testDepth > 0) {
87-
context.report({ messageId: 'pendingTest', node });
88-
} else if (suiteDepth > 0) {
89-
context.report({ messageId: 'pendingSuite', node });
90-
} else {
91-
context.report({ messageId: 'pending', node });
92-
}
57+
context.report({ messageId: 'skippedTest', node });
9358
},
9459
};
9560
},

0 commit comments

Comments
 (0)