source: frontend/node_modules/eslint-plugin-jest/lib/rules/no-test-prefixes.js

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

Fix frontend appearance

  • Property mode set to 100644
File size: 1.8 KB
Line 
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = void 0;
7
8var _experimentalUtils = require("@typescript-eslint/experimental-utils");
9
10var _utils = require("./utils");
11
12var _default = (0, _utils.createRule)({
13 name: __filename,
14 meta: {
15 docs: {
16 category: 'Best Practices',
17 description: 'Use `.only` and `.skip` over `f` and `x`',
18 recommended: 'error'
19 },
20 messages: {
21 usePreferredName: 'Use "{{ preferredNodeName }}" instead'
22 },
23 fixable: 'code',
24 schema: [],
25 type: 'suggestion'
26 },
27 defaultOptions: [],
28
29 create(context) {
30 return {
31 CallExpression(node) {
32 const nodeName = (0, _utils.getNodeName)(node.callee);
33 if (!nodeName || !(0, _utils.isDescribeCall)(node) && !(0, _utils.isTestCaseCall)(node)) return;
34 const preferredNodeName = getPreferredNodeName(nodeName);
35 if (!preferredNodeName) return;
36 const funcNode = node.callee.type === _experimentalUtils.AST_NODE_TYPES.TaggedTemplateExpression ? node.callee.tag : node.callee.type === _experimentalUtils.AST_NODE_TYPES.CallExpression ? node.callee.callee : node.callee;
37 context.report({
38 messageId: 'usePreferredName',
39 node: node.callee,
40 data: {
41 preferredNodeName
42 },
43
44 fix(fixer) {
45 return [fixer.replaceText(funcNode, preferredNodeName)];
46 }
47
48 });
49 }
50
51 };
52 }
53
54});
55
56exports.default = _default;
57
58function getPreferredNodeName(nodeName) {
59 const firstChar = nodeName.charAt(0);
60 const suffix = nodeName.endsWith('.each') ? '.each' : '';
61
62 if (firstChar === 'f') {
63 return `${nodeName.slice(1).replace('.each', '')}.only${suffix}`;
64 }
65
66 if (firstChar === 'x') {
67 return `${nodeName.slice(1).replace('.each', '')}.skip${suffix}`;
68 }
69
70 return null;
71}
Note: See TracBrowser for help on using the repository browser.