lib/rules/describe-with-filename.js (46 lines of code) (raw):

'use strict'; module.exports = { meta: { docs: { category: 'Stylistic Issues', description: 'Ensure the top-level `describe` block has `__filename` as description', githubIssue: 'https://github.com/mozilla/addons-frontend/issues/2928', recommended: true, }, messages: { invalidDescription: 'Use `__filename` in the description of the top-level `describe` block.', }, fixable: 'code', schema: [], }, create: (context) => { const SOURCE_CODE = context.sourceCode ?? context.getSourceCode(); return { CallExpression: (node) => { const scope = SOURCE_CODE.getScope ? SOURCE_CODE.getScope(node) : context.getScope(); if (!['global', 'module'].includes(scope.type)) { return; } const name = node.callee.name; const args = node.arguments; if ( name === 'describe' && args.length && args[0].name !== '__filename' ) { context.report({ node, messageId: 'invalidDescription', fix: (fixer) => { return fixer.replaceText(args[0], '__filename'); }, }); } }, }; }, };