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' }, }); if (!user) { console.log('User not found'); return; } // Simulate OLD JWT (NO platformRoles) — exactly what Ivan has if he never re-logged const oldToken = generateAccessToken({ userId: user.id, email: user.email, role: 'contador', tenantId: 'c52c2f5d-b1ae-45c6-8cc8-b11c9611618a', tokenVersion: user.tokenVersion, // NO platformRoles field }); 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 ${oldToken}`, ...headers }, timeout: 10000, }); console.log(`✅ ${name}: ${r.status}`); } catch (e: any) { console.log(`❌ ${name}: ${e.response?.status} ${JSON.stringify(e.response?.data)}`); } } console.log('=== Testing with OLD JWT (no platformRoles) ==='); await test('/tenants', '/tenants'); await test('/tenants/mine', '/tenants/mine'); await test('/admin/dashboard/despachos', '/admin/dashboard/despachos'); await test('/contribuyentes', '/contribuyentes'); await prisma.$disconnect(); } main().catch(e => { console.error(e); process.exit(1); });