Skip to content

Commit 38e1887

Browse files
committed
Fixed failing redis worker tests
1 parent e5ea9cb commit 38e1887

File tree

1 file changed

+76
-92
lines changed

1 file changed

+76
-92
lines changed

internal-packages/redis-worker/src/worker.test.ts

+76-92
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,21 @@ describe("Worker", () => {
3636
logger: new Logger("test", "log"),
3737
}).start();
3838

39-
try {
40-
// Enqueue 10 items
41-
for (let i = 0; i < 10; i++) {
42-
await worker.enqueue({
43-
id: `item-${i}`,
44-
job: "testJob",
45-
payload: { value: i },
46-
visibilityTimeoutMs: 5000,
47-
});
48-
}
39+
// Enqueue 10 items
40+
for (let i = 0; i < 10; i++) {
41+
await worker.enqueue({
42+
id: `item-${i}`,
43+
job: "testJob",
44+
payload: { value: i },
45+
visibilityTimeoutMs: 5000,
46+
});
47+
}
4948

50-
// Wait for items to be processed
51-
await new Promise((resolve) => setTimeout(resolve, 2000));
49+
// Wait for items to be processed
50+
await new Promise((resolve) => setTimeout(resolve, 2000));
5251

53-
expect(processedItems.length).toBe(10);
54-
expect(new Set(processedItems).size).toBe(10); // Ensure all items were processed uniquely
55-
} finally {
56-
worker.stop();
57-
}
52+
expect(processedItems.length).toBe(10);
53+
expect(new Set(processedItems).size).toBe(10); // Ensure all items were processed uniquely
5854
});
5955

6056
redisTest(
@@ -97,25 +93,21 @@ describe("Worker", () => {
9793
logger: new Logger("test", "error"),
9894
}).start();
9995

100-
try {
101-
// Enqueue 10 items
102-
for (let i = 0; i < 10; i++) {
103-
await worker.enqueue({
104-
id: `item-${i}`,
105-
job: "testJob",
106-
payload: { value: i },
107-
visibilityTimeoutMs: 5000,
108-
});
109-
}
96+
// Enqueue 10 items
97+
for (let i = 0; i < 10; i++) {
98+
await worker.enqueue({
99+
id: `item-${i}`,
100+
job: "testJob",
101+
payload: { value: i },
102+
visibilityTimeoutMs: 5000,
103+
});
104+
}
110105

111-
// Wait for items to be processed
112-
await new Promise((resolve) => setTimeout(resolve, 500));
106+
// Wait for items to be processed
107+
await new Promise((resolve) => setTimeout(resolve, 500));
113108

114-
expect(processedItems.length).toBe(10);
115-
expect(new Set(processedItems).size).toBe(10); // Ensure all items were processed uniquely
116-
} finally {
117-
worker.stop();
118-
}
109+
expect(processedItems.length).toBe(10);
110+
expect(new Set(processedItems).size).toBe(10); // Ensure all items were processed uniquely
119111
}
120112
);
121113

@@ -156,33 +148,29 @@ describe("Worker", () => {
156148
logger: new Logger("test", "error"),
157149
}).start();
158150

159-
try {
160-
// Enqueue the item that will permanently fail
161-
await worker.enqueue({
162-
id: failedItemId,
163-
job: "testJob",
164-
payload: { value: 999 },
165-
});
166-
167-
// Enqueue a normal item
168-
await worker.enqueue({
169-
id: "normal-item",
170-
job: "testJob",
171-
payload: { value: 1 },
172-
});
173-
174-
// Wait for items to be processed and retried
175-
await new Promise((resolve) => setTimeout(resolve, 1000));
176-
177-
// Check that the normal item was processed
178-
expect(processedItems).toEqual([1]);
179-
180-
// Check that the failed item is in the DLQ
181-
const dlqSize = await worker.queue.sizeOfDeadLetterQueue();
182-
expect(dlqSize).toBe(1);
183-
} finally {
184-
worker.stop();
185-
}
151+
// Enqueue the item that will permanently fail
152+
await worker.enqueue({
153+
id: failedItemId,
154+
job: "testJob",
155+
payload: { value: 999 },
156+
});
157+
158+
// Enqueue a normal item
159+
await worker.enqueue({
160+
id: "normal-item",
161+
job: "testJob",
162+
payload: { value: 1 },
163+
});
164+
165+
// Wait for items to be processed and retried
166+
await new Promise((resolve) => setTimeout(resolve, 1000));
167+
168+
// Check that the normal item was processed
169+
expect(processedItems).toEqual([1]);
170+
171+
// Check that the failed item is in the DLQ
172+
const dlqSize = await worker.queue.sizeOfDeadLetterQueue();
173+
expect(dlqSize).toBe(1);
186174
}
187175
);
188176

@@ -225,45 +213,41 @@ describe("Worker", () => {
225213
logger: new Logger("test", "error"),
226214
}).start();
227215

228-
try {
229-
// Enqueue the item that will fail 3 times
230-
await worker.enqueue({
231-
id: failedItemId,
232-
job: "testJob",
233-
payload: { value: 999 },
234-
});
216+
// Enqueue the item that will fail 3 times
217+
await worker.enqueue({
218+
id: failedItemId,
219+
job: "testJob",
220+
payload: { value: 999 },
221+
});
235222

236-
// Wait for the item to be processed and moved to DLQ
237-
await new Promise((resolve) => setTimeout(resolve, 1000));
223+
// Wait for the item to be processed and moved to DLQ
224+
await new Promise((resolve) => setTimeout(resolve, 1000));
238225

239-
// Check that the item is in the DLQ
240-
let dlqSize = await worker.queue.sizeOfDeadLetterQueue();
241-
expect(dlqSize).toBe(1);
226+
// Check that the item is in the DLQ
227+
let dlqSize = await worker.queue.sizeOfDeadLetterQueue();
228+
expect(dlqSize).toBe(1);
242229

243-
// Create a Redis client to publish the redrive message
244-
const redisClient = createRedisClient({
245-
host: redisContainer.getHost(),
246-
port: redisContainer.getPort(),
247-
password: redisContainer.getPassword(),
248-
});
230+
// Create a Redis client to publish the redrive message
231+
const redisClient = createRedisClient({
232+
host: redisContainer.getHost(),
233+
port: redisContainer.getPort(),
234+
password: redisContainer.getPassword(),
235+
});
249236

250-
// Publish redrive message
251-
await redisClient.publish("test-worker:redrive", JSON.stringify({ id: failedItemId }));
237+
// Publish redrive message
238+
await redisClient.publish("test-worker:redrive", JSON.stringify({ id: failedItemId }));
252239

253-
// Wait for the item to be redrived and processed
254-
await new Promise((resolve) => setTimeout(resolve, 1000));
240+
// Wait for the item to be redrived and processed
241+
await new Promise((resolve) => setTimeout(resolve, 1000));
255242

256-
// Check that the item was processed successfully
257-
expect(processedItems).toEqual([999]);
243+
// Check that the item was processed successfully
244+
expect(processedItems).toEqual([999]);
258245

259-
// Check that the DLQ is now empty
260-
dlqSize = await worker.queue.sizeOfDeadLetterQueue();
261-
expect(dlqSize).toBe(0);
246+
// Check that the DLQ is now empty
247+
dlqSize = await worker.queue.sizeOfDeadLetterQueue();
248+
expect(dlqSize).toBe(0);
262249

263-
await redisClient.quit();
264-
} finally {
265-
worker.stop();
266-
}
250+
await redisClient.quit();
267251
}
268252
);
269253
});

0 commit comments

Comments
 (0)