/** * Debug test for page-query-must-use-builders rule */ const rule = require('./page-query-must-use-builders.js'); // Simulate the AST traversal with logging const mockContext = { getSourceCode: () => ({ ast: {} }), report: (data) => { console.log('✓ REPORT TRIGGERED:', data.messageId); } }; const visitor = rule.create(mockContext); console.log('=== Starting Debug Test ===\n'); // 1. ClassDeclaration console.log('1. ClassDeclaration: AdminDashboardPageQuery'); visitor.ClassDeclaration({ id: { name: 'AdminDashboardPageQuery' } }); // 2. MethodDefinition (execute) console.log('2. MethodDefinition: execute()'); visitor.MethodDefinition({ key: { type: 'Identifier', name: 'execute' }, parent: { type: 'ClassBody' } }); // 3. VariableDeclarator console.log('3. VariableDeclarator: const apiDto = ...'); visitor.VariableDeclarator({ init: { type: 'CallExpression' } }); // 4. ReturnStatement console.log('4. ReturnStatement: return Result.ok(apiDto)'); 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 console.log('5. MethodDefinition:exit'); visitor['MethodDefinition:exit']({ key: { type: 'Identifier', name: 'execute' } }); // 6. Program:exit console.log('6. Program:exit'); visitor['Program:exit'](); console.log('\n=== Test Complete ===');