diff --git a/packages/cli/src/scaling/__tests__/scaling.service.test.ts b/packages/cli/src/scaling/__tests__/scaling.service.test.ts index d0cb03888..0a798fae3 100644 --- a/packages/cli/src/scaling/__tests__/scaling.service.test.ts +++ b/packages/cli/src/scaling/__tests__/scaling.service.test.ts @@ -190,6 +190,26 @@ describe('ScalingService', () => { expect(jobs).toHaveLength(1); expect(jobs.at(0)?.id).toBe('123'); }); + + it('should filter out `null` in Redis response', async () => { + /** + * Arrange + */ + const scalingService = new ScalingService(mock(), mock(), mock()); + await scalingService.setupQueue(); + // @ts-expect-error - Untyped but possible Redis response + queue.getJobs.mockResolvedValue([mock(), null]); + + /** + * Act + */ + const jobs = await scalingService.findJobsByStatus(['waiting']); + + /** + * Assert + */ + expect(jobs).toHaveLength(1); + }); }); describe('stopJob', () => { diff --git a/packages/cli/src/scaling/scaling.service.ts b/packages/cli/src/scaling/scaling.service.ts index 73b072af6..f26feebc5 100644 --- a/packages/cli/src/scaling/scaling.service.ts +++ b/packages/cli/src/scaling/scaling.service.ts @@ -88,7 +88,9 @@ export class ScalingService { } async findJobsByStatus(statuses: JobStatus[]) { - return await this.queue.getJobs(statuses); + const jobs = await this.queue.getJobs(statuses); + + return jobs.filter((job) => job !== null); } async stopJob(job: Job) {