source: frontend/node_modules/eslint-plugin-jest/lib/rules/no-disabled-tests.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 3.1 KB
Line 
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = void 0;
7
8var _utils = require("./utils");
9
10var _default = (0, _utils.createRule)({
11 name: __filename,
12 meta: {
13 docs: {
14 category: 'Best Practices',
15 description: 'Disallow disabled tests',
16 recommended: 'warn'
17 },
18 messages: {
19 missingFunction: 'Test is missing function argument',
20 skippedTestSuite: 'Skipped test suite',
21 skippedTest: 'Skipped test',
22 pending: 'Call to pending()',
23 pendingSuite: 'Call to pending() within test suite',
24 pendingTest: 'Call to pending() within test',
25 disabledSuite: 'Disabled test suite',
26 disabledTest: 'Disabled test'
27 },
28 schema: [],
29 type: 'suggestion'
30 },
31 defaultOptions: [],
32
33 create(context) {
34 let suiteDepth = 0;
35 let testDepth = 0;
36 return {
37 'CallExpression[callee.name="describe"]'() {
38 suiteDepth++;
39 },
40
41 'CallExpression[callee.name=/^(it|test)$/]'() {
42 testDepth++;
43 },
44
45 'CallExpression[callee.name=/^(it|test)$/][arguments.length<2]'(node) {
46 context.report({
47 messageId: 'missingFunction',
48 node
49 });
50 },
51
52 CallExpression(node) {
53 const functionName = (0, _utils.getNodeName)(node.callee); // prevent duplicate warnings for it.each()()
54
55 if (node.callee.type === 'CallExpression') {
56 return;
57 }
58
59 switch (functionName) {
60 case 'describe.skip.each':
61 case 'xdescribe.each':
62 case 'describe.skip':
63 context.report({
64 messageId: 'skippedTestSuite',
65 node
66 });
67 break;
68
69 case 'it.skip':
70 case 'it.concurrent.skip':
71 case 'test.skip':
72 case 'test.concurrent.skip':
73 case 'it.skip.each':
74 case 'test.skip.each':
75 case 'xit.each':
76 case 'xtest.each':
77 context.report({
78 messageId: 'skippedTest',
79 node
80 });
81 break;
82 }
83 },
84
85 'CallExpression[callee.name="pending"]'(node) {
86 if ((0, _utils.scopeHasLocalReference)(context.getScope(), 'pending')) {
87 return;
88 }
89
90 if (testDepth > 0) {
91 context.report({
92 messageId: 'pendingTest',
93 node
94 });
95 } else if (suiteDepth > 0) {
96 context.report({
97 messageId: 'pendingSuite',
98 node
99 });
100 } else {
101 context.report({
102 messageId: 'pending',
103 node
104 });
105 }
106 },
107
108 'CallExpression[callee.name="xdescribe"]'(node) {
109 context.report({
110 messageId: 'disabledSuite',
111 node
112 });
113 },
114
115 'CallExpression[callee.name=/^(xit|xtest)$/]'(node) {
116 context.report({
117 messageId: 'disabledTest',
118 node
119 });
120 },
121
122 'CallExpression[callee.name="describe"]:exit'() {
123 suiteDepth--;
124 },
125
126 'CallExpression[callee.name=/^(it|test)$/]:exit'() {
127 testDepth--;
128 }
129
130 };
131 }
132
133});
134
135exports.default = _default;
Note: See TracBrowser for help on using the repository browser.