import { PrismaClient } from '@prisma/client'; import { generateAccessToken } from '../src/auth/tokens'; import axios from 'axios'; async function main() { const prisma = new PrismaClient(); const user = await prisma.user.findUnique({ where: { email: 'ivan@horuxfin.com' }, include: { platformRoles: true } }); if (!user) { console.log('User not found'); return; } const token = generateAccessToken({ userId: user.id, email: user.email, role: 'contador', tenantId: 'c52c2f5d-b1ae-45c6-8cc8-b11c9611618a', platformRoles: user.platformRoles.map(r => r.role as any), tokenVersion: user.tokenVersion, }); const baseURL = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:4000/api'; async function test(name: string, url: string, headers?: any) { try { const r = await axios.get(`${baseURL}${url}`, { headers: { Authorization: `Bearer ${token}`, ...headers }, timeout: 10000, }); console.log(`${name}: ${r.status} OK`); } catch (e: any) { console.log(`${name}: ${e.response?.status} ${JSON.stringify(e.response?.data)}`); } } console.log('=== Simulating Ivan switching to Husberto ==='); // This is what fires when Ivan selects Husberto in the dropdown await test('contribuyentes-stats (Husberto)', '/despachos/contribuyentes-stats?año=2026&mes=5', { 'X-View-Tenant': 'd75bf020-2008-4881-ab96-77467bf9e1fd' }); // Also test other endpoints that may fire on the page await test('contribuyentes (Husberto)', '/contribuyentes', { 'X-View-Tenant': 'd75bf020-2008-4881-ab96-77467bf9e1fd' }); await test('admin/dashboard/despachos', '/admin/dashboard/despachos'); console.log(''); console.log('=== Simulating Ivan switching to AUZA ==='); await test('contribuyentes-stats (AUZA)', '/despachos/contribuyentes-stats?año=2026&mes=5', { 'X-View-Tenant': '81116985-03cd-4843-97ba-05e8be9917c6' }); await test('contribuyentes (AUZA)', '/contribuyentes', { 'X-View-Tenant': '81116985-03cd-4843-97ba-05e8be9917c6' }); await prisma.$disconnect(); } main().catch(e => { console.error(e); process.exit(1); });