source: frontend/node_modules/eslint-plugin-jest/lib/rules/prefer-todo.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: 2.0 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
12function isEmptyFunction(node) {
13 if (!(0, _utils.isFunction)(node)) {
14 return false;
15 }
16
17 return node.body.type === _experimentalUtils.AST_NODE_TYPES.BlockStatement && !node.body.body.length;
18}
19
20function createTodoFixer(node, fixer) {
21 const testName = (0, _utils.getNodeName)(node).split('.').shift();
22 return fixer.replaceText(node.callee, `${testName}.todo`);
23}
24
25const isTargetedTestCase = node => (0, _utils.isTestCaseCall)(node) && [_utils.TestCaseName.it, _utils.TestCaseName.test, 'it.skip', 'test.skip'].includes((0, _utils.getNodeName)(node));
26
27var _default = (0, _utils.createRule)({
28 name: __filename,
29 meta: {
30 docs: {
31 category: 'Best Practices',
32 description: 'Suggest using `test.todo`',
33 recommended: false
34 },
35 messages: {
36 emptyTest: 'Prefer todo test case over empty test case',
37 unimplementedTest: 'Prefer todo test case over unimplemented test case'
38 },
39 fixable: 'code',
40 schema: [],
41 type: 'layout'
42 },
43 defaultOptions: [],
44
45 create(context) {
46 return {
47 CallExpression(node) {
48 const [title, callback] = node.arguments;
49
50 if (!title || !isTargetedTestCase(node) || !(0, _utils.isStringNode)(title)) {
51 return;
52 }
53
54 if (callback && isEmptyFunction(callback)) {
55 context.report({
56 messageId: 'emptyTest',
57 node,
58 fix: fixer => [fixer.removeRange([title.range[1], callback.range[1]]), createTodoFixer(node, fixer)]
59 });
60 }
61
62 if ((0, _utils.hasOnlyOneArgument)(node)) {
63 context.report({
64 messageId: 'unimplementedTest',
65 node,
66 fix: fixer => [createTodoFixer(node, fixer)]
67 });
68 }
69 }
70
71 };
72 }
73
74});
75
76exports.default = _default;
Note: See TracBrowser for help on using the repository browser.