eslint-plugin-playwright
Version:
ESLint plugin for Playwright testing.
49 lines (48 loc) • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ast_1 = require("../utils/ast");
exports.default = {
create(context) {
return {
CallExpression(node) {
const { callee } = node;
if (((0, ast_1.isTestIdentifier)(callee) || (0, ast_1.isDescribeCall)(node)) &&
callee.type === 'MemberExpression' &&
(0, ast_1.isPropertyAccessor)(callee, 'skip')) {
const isHook = (0, ast_1.isTest)(node) || (0, ast_1.isDescribeCall)(node);
context.report({
messageId: 'noSkippedTest',
suggest: [
{
messageId: 'removeSkippedTestAnnotation',
fix: (fixer) => {
return isHook
? fixer.removeRange([
callee.property.range[0] - 1,
callee.range[1],
])
: fixer.remove(node.parent);
},
},
],
node: isHook ? callee.property : node,
});
}
},
};
},
meta: {
docs: {
category: 'Best Practices',
description: 'Prevent usage of the `.skip()` skip test annotation.',
recommended: true,
url: 'https://github.com/playwright-community/eslint-plugin-playwright/tree/main/docs/rules/no-skipped-test.md',
},
hasSuggestions: true,
messages: {
noSkippedTest: 'Unexpected use of the `.skip()` annotation.',
removeSkippedTestAnnotation: 'Remove the `.skip()` annotation.',
},
type: 'suggestion',
},
};