no-skipped-tests
Ast Rule: function call
no-skipped-tests
// See https://doc.codiga.io/docs/rosie/ast/javascript/rosie-ast-javascript-functioncall/
function getFunctionName(node) {
if (node.astType === "member") {
return node.name.value;
}
if (node.astType === "string") {
return node.value;
}
return "";
}
function visit(node, filename, code) {
// only run inside spec files
if (!filename.includes(".spec.") && !filename.includes(".test.")) return;
// Check this is a function call and the function name is a simple string
if (
node.functionName &&
node.functionName.astType === "member" &&
getFunctionName(node.functionName) === "skip" &&
(
getFunctionName(node.functionName.parent) === "test" ||
getFunctionName(node.functionName.parent) === "describe"
)
) {
const error = buildError(
node.functionName.start.line,
node.functionName.start.col,
node.functionName.end.line,
node.functionName.end.col,
"Unexpected use of the `.skip()` annotation.",
"INFORMATIONAL",
"BEST_PRACTICE"
);
const editRemove = buildEditRemove(
node.functionName.name.start.line,
node.functionName.name.start.col - 1,
node.functionName.name.end.line,
node.functionName.name.end.col,
);
const fix = buildFix("Remove the `.skip()` annotation.", [editRemove]);
addError(error.addFix(fix));
}
}
test.spec.js
Expected test result: has error
Examples of incorrect code for this rule
test.spec.js
Expected test result: no error
Examples of correct code for this rule