Files
AnchorOS/scripts/test-middleware.js
Marco Gallegos 0f3de32899 🚀 FASE 4 COMPLETADO: Comentarios auditables + Calendario funcional + Gestión staff/recursos
 COMENTARIOS AUDITABLES IMPLEMENTADOS:
- 80+ archivos con JSDoc completo para auditoría manual
- APIs críticas con validaciones business/security/performance
- Componentes con reglas de negocio documentadas
- Funciones core con edge cases y validaciones

 CALENDARIO MULTI-COLUMNA FUNCIONAL (95%):
- Drag & drop con reprogramación automática
- Filtros por sucursal/staff, tiempo real
- Indicadores de conflictos y disponibilidad
- APIs completas con validaciones de colisión

 GESTIÓN OPERATIVA COMPLETA:
- CRUD staff: APIs + componente con validaciones
- CRUD recursos: APIs + componente con disponibilidad
- Autenticación completa con middleware seguro
- Auditoría completa en todas las operaciones

 DOCUMENTACIÓN ACTUALIZADA:
- TASKS.md: FASE 4 95% completado
- README.md: Estado actual y funcionalidades
- API.md: 40+ endpoints documentados

 SEGURIDAD Y VALIDACIONES:
- RLS policies documentadas en comentarios
- Business rules validadas manualmente
- Performance optimizations anotadas
- Error handling completo

Próximos: Nómina/POS/CRM avanzado (FASE 4 final)
2026-01-17 15:31:13 -06:00

80 lines
2.3 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* Test Middleware Authentication
* Tests if the middleware properly recognizes authenticated requests
*/
const { createClient } = require('@supabase/supabase-js');
require('dotenv').config();
const SUPABASE_URL = process.env.NEXT_PUBLIC_SUPABASE_URL;
const SUPABASE_ANON_KEY = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY;
async function testMiddleware() {
console.log('🧪 Testing Middleware Authentication...\n');
// Create authenticated client
const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY, {
auth: {
autoRefreshToken: true,
persistSession: true,
detectSessionInUrl: true
}
});
console.log('1⃣ Signing in...');
const { data: authData, error: signInError } = await supabase.auth.signInWithPassword({
email: 'marco.gallegos@anchor23.mx',
password: 'Marco123456!'
});
if (signInError) {
console.error('❌ Sign in failed:', signInError.message);
return;
}
console.log('✅ Sign in successful!');
// Test middleware by simulating the same logic
console.log('\n2⃣ Testing middleware logic...');
const middlewareSupabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY);
// This simulates what the middleware does
const { data: { session }, error: sessionError } = await middlewareSupabase.auth.getSession();
if (sessionError) {
console.error('❌ Middleware session error:', sessionError.message);
return;
}
if (!session) {
console.error('❌ Middleware: No session found');
return;
}
console.log('✅ Middleware: Session found');
console.log(` User: ${session.user.email}`);
const { data: staff, error: staffError } = await middlewareSupabase
.from('staff')
.select('role')
.eq('user_id', session.user.id)
.single();
if (staffError) {
console.error('❌ Middleware staff query error:', staffError.message);
return;
}
if (!staff || !['admin', 'manager', 'staff'].includes(staff.role)) {
console.error('❌ Middleware: Invalid role or no staff record');
return;
}
console.log('✅ Middleware: Role check passed');
console.log(` Role: ${staff.role}`);
console.log('\n🎉 Middleware test passed! Authentication should work.');
}
testMiddleware();