no-module-exports
Ast Rule: assignment
no-module-exports
function visit(node, filename, code) {
// only run on .spec. or .test. files
if (!filename.includes(".spec.") && !filename.includes(".test.")) return;
const parent = node?.left?.parent;
const name = node?.left?.name;
if (!parent || !name || node.left.astType !== "member") return;
if (!parent?.value?.includes("module")) return;
if (!name?.value?.includes("exports")) return;
const error = buildError(
node.left.start.line,
node.left.start.col,
node.left.end.line,
node.left.end.col,
`Disallow using 'module.exports' in files containing tests`,
"WARNING",
"ERROR_PRONE"
);
addError(error);
}
no-exports.spec.js
Expected test result: no error
Not exporting from a test file
bad-export.test.js
Expected test result: has error
Exporting from a test file