✨ Características: - 45 ejercicios universitarios (Basic → Advanced) - Renderizado LaTeX profesional - IA generativa (Z.ai/DashScope) - Docker 9 servicios - Tests 123/123 pasando - Seguridad enterprise (JWT, XSS, Rate limiting) 🐳 Infraestructura: - Next.js 14 + Node.js 20 - PostgreSQL 15 + Redis 7 - Docker Compose completo - Nginx + SSL ready 📚 Documentación: - 5 informes técnicos completos - README profesional - Scripts de deployment automatizados Estado: Producción lista ✅
58 lines
1.1 KiB
TypeScript
58 lines
1.1 KiB
TypeScript
/**
|
|
* Vitest Test Setup
|
|
*
|
|
* Creates mock objects for testing
|
|
*/
|
|
|
|
import { vi } from 'vitest';
|
|
|
|
// Mock environment variables
|
|
vi.stubEnv('JWT_SECRET', 'test-jwt-secret-for-unit-tests');
|
|
vi.stubEnv('NODE_ENV', 'test');
|
|
|
|
// ============================================
|
|
// MOCK PRISMA
|
|
// ============================================
|
|
|
|
export const mockPrisma = {
|
|
user: {
|
|
findUnique: vi.fn(),
|
|
create: vi.fn(),
|
|
update: vi.fn(),
|
|
findMany: vi.fn(),
|
|
},
|
|
exercise: {
|
|
findUnique: vi.fn(),
|
|
findMany: vi.fn(),
|
|
findFirst: vi.fn(),
|
|
count: vi.fn(),
|
|
create: vi.fn(),
|
|
update: vi.fn(),
|
|
},
|
|
exerciseAttempt: {
|
|
create: vi.fn(),
|
|
findMany: vi.fn(),
|
|
findFirst: vi.fn(),
|
|
count: vi.fn(),
|
|
aggregate: vi.fn(),
|
|
},
|
|
progress: {
|
|
findUnique: vi.fn(),
|
|
findMany: vi.fn(),
|
|
create: vi.fn(),
|
|
update: vi.fn(),
|
|
upsert: vi.fn(),
|
|
},
|
|
ranking: {
|
|
findUnique: vi.fn(),
|
|
findMany: vi.fn(),
|
|
create: vi.fn(),
|
|
update: vi.fn(),
|
|
upsert: vi.fn(),
|
|
},
|
|
module: {
|
|
findUnique: vi.fn(),
|
|
findMany: vi.fn(),
|
|
},
|
|
$transaction: vi.fn((callback) => callback(mockPrisma)),
|
|
}; |