|
|
|
|
@ -45,7 +45,7 @@ describe('RemindersService - gating por grupos en modo enforce', () => {
|
|
|
|
|
let sent: any[] = [];
|
|
|
|
|
|
|
|
|
|
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:');
|
|
|
|
|
initializeDatabase(memdb);
|
|
|
|
|
(TaskService as any).dbInstance = memdb;
|
|
|
|
|
@ -68,7 +68,7 @@ describe('RemindersService - gating por grupos en modo enforce', () => {
|
|
|
|
|
// Preferencias del usuario receptor
|
|
|
|
|
memdb.exec(`
|
|
|
|
|
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
|
|
|
|
|
reminder_freq = excluded.reminder_freq,
|
|
|
|
|
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 () => {
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
expect(sent.length).toBe(1);
|
|
|
|
|
|