// Test setup - global mock for PrismaService and RedisService
// This avoids needing a real database or Redis instance for E2E tests

import * as jwt from 'jsonwebtoken';

// Set test environment variables
process.env.JWT_SECRET = 'test-jwt-secret-key';
process.env.JWT_ACCESS_EXPIRES = '15m';
process.env.JWT_REFRESH_EXPIRES = '30d';
process.env.API_PORT = '3010';
process.env.API_PREFIX = 'api/v1';
process.env.DATABASE_URL = 'postgresql://fake:fake@localhost:5432/fake';
process.env.REDIS_URL = 'redis://localhost:6379';

// Helper: generate a valid JWT token for tests
export function generateTestToken(userId: string, email: string): string {
  return jwt.sign({ userId, email }, process.env.JWT_SECRET!, {
    expiresIn: '15m',
  });
}

// Helper: generate a refresh token
export function generateRefreshToken(userId: string, email: string): string {
  return jwt.sign({ userId, email, type: 'refresh' }, process.env.JWT_SECRET!, {
    expiresIn: '30d',
  });
}