Files
gridpilot.gg/apps/website/eslint-rules/test-rule-fixed.js
2026-01-13 02:38:49 +01:00

59 lines
1.2 KiB
JavaScript

/**
* Fixed test with proper parent structure
*/
const rule = require('./page-query-must-use-builders.js');
const mockContext = {
getSourceCode: () => ({ ast: {} }),
report: (data) => {
console.log('✓ REPORT:', data.messageId);
}
};
const visitor = rule.create(mockContext);
console.log('=== Fixed Test ===\n');
// 1. ClassDeclaration
const classNode = {
id: { name: 'AdminDashboardPageQuery' }
};
visitor.ClassDeclaration(classNode);
// 2. MethodDefinition (with proper parent structure)
const methodNode = {
key: { type: 'Identifier', name: 'execute' },
parent: {
type: 'ClassBody',
parent: classNode // This is what was missing!
}
};
visitor.MethodDefinition(methodNode);
// 3. VariableDeclarator
visitor.VariableDeclarator({
init: { type: 'CallExpression' }
});
// 4. ReturnStatement
visitor.ReturnStatement({
argument: {
type: 'CallExpression',
callee: {
type: 'MemberExpression',
object: { type: 'Identifier', name: 'Result' },
property: { type: 'Identifier', name: 'ok' }
},
arguments: [{ type: 'Identifier', name: 'apiDto' }]
}
});
// 5. MethodDefinition:exit
visitor['MethodDefinition:exit'](methodNode);
// 6. Program:exit
visitor['Program:exit']();
console.log('\n=== Done ===');