// Test setup and configuration process.env.NODE_ENV = "test"; process.env.PORT = "0"; // Use random port for tests process.env.REDIS_URL = "redis://localhost:6379"; process.env.LOG_LEVEL = "error"; // Reduce log noise during tests process.env.PDF_OUTPUT_DIR = "test-tickets"; // Global test utilities global.testUtils = { // Generate unique test IDs generateTestId: () => `test-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`, // Wait for a specified time wait: (ms) => new Promise((resolve) => setTimeout(resolve, ms)), // Generate test event data createTestEvent: (eventId = 1, ticketCount = 100) => ({ eventId: eventId.toString(), name: `Test Event ${eventId}`, description: `Test event description ${eventId}`, totalTickets: ticketCount, soldTickets: 0, remainingTickets: ticketCount, createdAt: new Date().toISOString(), lastSoldAt: "never", }), // Generate test ticket data createTestTicket: (eventId = 1, ticketId = "test-ticket-1") => ({ ticketId, eventId: eventId.toString(), purchaseId: `test-purchase-${Date.now()}`, timestamp: new Date().toISOString(), }), }; // Mock console methods to reduce noise during tests global.console = { ...console, log: jest.fn(), info: jest.fn(), warn: jest.fn(), error: jest.fn(), }; // Increase timeout for integration tests jest.setTimeout(30000);