eletrotupi / tcc/ api/tests/setup.tsf8e7845db0b429e46eeca7baf6e29fe1444d0492
1.0 KB | 33 lines Raw
1
import { vi } from 'vitest'
2

3
const mockQueue = () => ({
4
  add: vi.fn().mockResolvedValue({}),
5
  addBulk: vi.fn().mockResolvedValue([]),
6
  getRepeatableJobs: vi.fn().mockResolvedValue([]),
7
  removeRepeatableByKey: vi.fn().mockResolvedValue(undefined),
8
})
9

10
// Mock the barrel export used by controllers and most services
11
vi.mock('@app/lib/queue', () => ({
12
  bootWorkers: vi.fn(),
13
  closeAllWorkers: vi.fn(),
14
  closeAllQueues: vi.fn(),
15
  scheduleInsights: vi.fn(),
16
  getQueue: vi.fn(() => mockQueue()),
17
  MailJobName: {
18
    WelcomeEmail: 'mail:welcome',
19
    PasswordReset: 'mail:password-reset',
20
    ActivateAccountEmail: 'mail:activate-account',
21
  },
22
}))
23

24
// syncMedicineReminderJobs imports getQueue directly from QueueRegistry
25
vi.mock('@app/lib/queue/QueueRegistry', () => ({
26
  getQueue: vi.fn(() => mockQueue()),
27
  closeAllQueues: vi.fn(),
28
}))
29

30
// avatar.ts constructs multer-s3 at import time and requires S3_BUCKET env var
31
vi.mock('@app/services/avatar', () => ({
32
  default: { single: vi.fn(() => (_req: any, _res: any, next: any) => next()) },
33
}))