60f9bbfa5397012b3ca230e93570dde25e425392
import { vi } from 'vitest'
const mockQueue = () => ({
add: vi.fn().mockResolvedValue({}),
addBulk: vi.fn().mockResolvedValue([]),
getRepeatableJobs: vi.fn().mockResolvedValue([]),
removeRepeatableByKey: vi.fn().mockResolvedValue(undefined),
})
// Mock the barrel export used by controllers and most services
vi.mock('@app/lib/queue', () => ({
bootWorkers: vi.fn(),
closeAllWorkers: vi.fn(),
closeAllQueues: vi.fn(),
scheduleInsights: vi.fn(),
getQueue: vi.fn(() => mockQueue()),
MailJobName: {
WelcomeEmail: 'mail:welcome',
PasswordReset: 'mail:password-reset',
ActivateAccountEmail: 'mail:activate-account',
},
}))
// syncMedicineReminderJobs imports getQueue directly from QueueRegistry
vi.mock('@app/lib/queue/QueueRegistry', () => ({
// avatar.ts constructs multer-s3 at import time and requires S3_BUCKET env var
vi.mock('@app/services/avatar', () => ({
default: { single: vi.fn(() => (_req: any, _res: any, next: any) => next()) },