tests
This commit is contained in:
parent
54f37f9521
commit
3a7254708e
19 changed files with 1560 additions and 1237 deletions
|
|
@ -4,6 +4,15 @@ import type { Job, Queue } from 'bullmq';
|
|||
import type { RedisConfig } from '../src/types';
|
||||
|
||||
describe('DeadLetterQueueHandler', () => {
|
||||
// Mock the DLQ Queue that will be created
|
||||
const mockDLQQueue = {
|
||||
name: 'test-queue-dlq',
|
||||
add: mock(() => Promise.resolve({})),
|
||||
getCompleted: mock(() => Promise.resolve([])),
|
||||
getFailed: mock(() => Promise.resolve([])),
|
||||
getWaiting: mock(() => Promise.resolve([])),
|
||||
close: mock(() => Promise.resolve()),
|
||||
} as unknown as Queue;
|
||||
const mockLogger = {
|
||||
info: mock(() => {}),
|
||||
error: mock(() => {}),
|
||||
|
|
@ -28,7 +37,18 @@ describe('DeadLetterQueueHandler', () => {
|
|||
let dlqHandler: DeadLetterQueueHandler;
|
||||
|
||||
beforeEach(() => {
|
||||
// Reset DLQ queue mocks
|
||||
mockDLQQueue.add = mock(() => Promise.resolve({}));
|
||||
mockDLQQueue.getCompleted = mock(() => Promise.resolve([]));
|
||||
mockDLQQueue.getFailed = mock(() => Promise.resolve([]));
|
||||
mockDLQQueue.getWaiting = mock(() => Promise.resolve([]));
|
||||
mockDLQQueue.close = mock(() => Promise.resolve());
|
||||
|
||||
// Create handler with mocked DLQ queue
|
||||
dlqHandler = new DeadLetterQueueHandler(mockQueue, mockRedisConfig, {}, mockLogger);
|
||||
// Override the dlq property to use our mock
|
||||
(dlqHandler as any).dlq = mockDLQQueue;
|
||||
|
||||
// Reset mocks
|
||||
mockLogger.info = mock(() => {});
|
||||
mockLogger.error = mock(() => {});
|
||||
|
|
@ -47,9 +67,11 @@ describe('DeadLetterQueueHandler', () => {
|
|||
payload: { test: true },
|
||||
},
|
||||
attemptsMade: 3,
|
||||
opts: { attempts: 3 },
|
||||
failedReason: 'Test error',
|
||||
finishedOn: Date.now(),
|
||||
processedOn: Date.now() - 5000,
|
||||
timestamp: Date.now() - 10000,
|
||||
} as Job;
|
||||
|
||||
const error = new Error('Job processing failed');
|
||||
|
|
@ -72,7 +94,10 @@ describe('DeadLetterQueueHandler', () => {
|
|||
name: 'test-job',
|
||||
queueName: 'test-queue',
|
||||
data: null,
|
||||
attemptsMade: 1,
|
||||
attemptsMade: 3,
|
||||
opts: { attempts: 3 },
|
||||
timestamp: Date.now() - 10000,
|
||||
processedOn: Date.now() - 5000,
|
||||
} as any;
|
||||
|
||||
const error = new Error('No data');
|
||||
|
|
@ -120,9 +145,9 @@ describe('DeadLetterQueueHandler', () => {
|
|||
},
|
||||
];
|
||||
|
||||
(mockQueue.getCompleted as any) = mock(() => Promise.resolve(mockJobs));
|
||||
(mockQueue.getFailed as any) = mock(() => Promise.resolve([]));
|
||||
(mockQueue.getWaiting as any) = mock(() => Promise.resolve([]));
|
||||
mockDLQQueue.getCompleted = mock(() => Promise.resolve(mockJobs));
|
||||
mockDLQQueue.getFailed = mock(() => Promise.resolve([]));
|
||||
mockDLQQueue.getWaiting = mock(() => Promise.resolve([]));
|
||||
|
||||
const stats = await dlqHandler.getStats();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue