|  |  | @ -45,7 +45,7 @@ describe('RemindersService - gating por grupos en modo enforce', () => { | 
			
		
	
		
		
			
				
					
					|  |  |  |   let sent: any[] = []; |  |  |  |   let sent: any[] = []; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   beforeEach(() => { |  |  |  |   beforeEach(() => { | 
			
		
	
		
		
			
				
					
					|  |  |  |     process.env = { ...envBackup, NODE_ENV: 'test', GROUP_GATING_MODE: 'enforce', TZ: 'Europe/Madrid' }; |  |  |  |     process.env = { ...envBackup, NODE_ENV: 'test', GROUP_GATING_MODE: 'enforce', TZ: 'Europe/Madrid', REMINDERS_GRACE_MINUTES: '60' }; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     memdb = new Database(':memory:'); |  |  |  |     memdb = new Database(':memory:'); | 
			
		
	
		
		
			
				
					
					|  |  |  |     initializeDatabase(memdb); |  |  |  |     initializeDatabase(memdb); | 
			
		
	
		
		
			
				
					
					|  |  |  |     (TaskService as any).dbInstance = memdb; |  |  |  |     (TaskService as any).dbInstance = memdb; | 
			
		
	
	
		
		
			
				
					|  |  | @ -68,7 +68,7 @@ describe('RemindersService - gating por grupos en modo enforce', () => { | 
			
		
	
		
		
			
				
					
					|  |  |  |     // Preferencias del usuario receptor
 |  |  |  |     // Preferencias del usuario receptor
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     memdb.exec(` |  |  |  |     memdb.exec(` | 
			
		
	
		
		
			
				
					
					|  |  |  |       INSERT INTO user_preferences (user_id, reminder_freq, reminder_time, last_reminded_on, updated_at) |  |  |  |       INSERT INTO user_preferences (user_id, reminder_freq, reminder_time, last_reminded_on, updated_at) | 
			
		
	
		
		
			
				
					
					|  |  |  |       VALUES ('34600123456', 'daily', '00:00', NULL, strftime('%Y-%m-%d %H:%M:%f','now')) |  |  |  |       VALUES ('34600123456', 'daily', '09:00', NULL, strftime('%Y-%m-%d %H:%M:%f','now')) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       ON CONFLICT(user_id) DO UPDATE SET |  |  |  |       ON CONFLICT(user_id) DO UPDATE SET | 
			
		
	
		
		
			
				
					
					|  |  |  |         reminder_freq = excluded.reminder_freq, |  |  |  |         reminder_freq = excluded.reminder_freq, | 
			
		
	
		
		
			
				
					
					|  |  |  |         reminder_time = excluded.reminder_time, |  |  |  |         reminder_time = excluded.reminder_time, | 
			
		
	
	
		
		
			
				
					|  |  | @ -103,7 +103,7 @@ describe('RemindersService - gating por grupos en modo enforce', () => { | 
			
		
	
		
		
			
				
					
					|  |  |  |   }); |  |  |  |   }); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   it('omite tareas de grupos no allowed en los recordatorios', async () => { |  |  |  |   it('omite tareas de grupos no allowed en los recordatorios', async () => { | 
			
		
	
		
		
			
				
					
					|  |  |  |     const now = new Date('2025-09-08T07:40:00.000Z'); // ≥ 08:30 Europe/Madrid en un lunes
 |  |  |  |     const now = new Date('2025-09-08T07:40:00.000Z'); // ≥ 09:00 Europe/Madrid en un lunes y dentro de la ventana
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     await RemindersService.runOnce(now); |  |  |  |     await RemindersService.runOnce(now); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     expect(sent.length).toBe(1); |  |  |  |     expect(sent.length).toBe(1); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |