UNPKG

1.01 kBJavaScriptView Raw
1'use strict';
2
3const { getDocsUrl, getNodeName, isTestCase, isDescribe } = require('./util');
4
5module.exports = {
6 meta: {
7 docs: {
8 url: getDocsUrl(__filename),
9 },
10 fixable: 'code',
11 },
12 create(context) {
13 return {
14 CallExpression(node) {
15 const nodeName = getNodeName(node.callee);
16
17 if (!isDescribe(node) && !isTestCase(node)) return;
18
19 const preferredNodeName = getPreferredNodeName(nodeName);
20
21 if (!preferredNodeName) return;
22
23 context.report({
24 message: 'Use "{{ preferredNodeName }}" instead',
25 node: node.callee,
26 data: { preferredNodeName },
27 fix(fixer) {
28 return [fixer.replaceText(node.callee, preferredNodeName)];
29 },
30 });
31 },
32 };
33 },
34};
35
36function getPreferredNodeName(nodeName) {
37 const firstChar = nodeName.charAt(0);
38
39 if (firstChar === 'f') {
40 return `${nodeName.slice(1)}.only`;
41 }
42
43 if (firstChar === 'x') {
44 return `${nodeName.slice(1)}.skip`;
45 }
46}