From 3ccd5a83db440bfcece707bbd6f21ac3bd86047d Mon Sep 17 00:00:00 2001 From: Abenet Tamiru Date: Thu, 16 Nov 2023 10:03:28 +0100 Subject: [PATCH] feat(bullmq): skip initialization on missing config --- packages/third-parties/bullmq/jest.config.js | 2 +- .../bullmq/src/BullMQModule.spec.ts | 24 +++++++++++++++++-- .../third-parties/bullmq/src/BullMQModule.ts | 4 ++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/packages/third-parties/bullmq/jest.config.js b/packages/third-parties/bullmq/jest.config.js index e06da2d396d..24dcca87ccd 100644 --- a/packages/third-parties/bullmq/jest.config.js +++ b/packages/third-parties/bullmq/jest.config.js @@ -2,7 +2,7 @@ module.exports = { ...require("@tsed/jest-config"), coverageThreshold: { global: { - branches: 81.81, + branches: 82.85, functions: 100, lines: 100, statements: 100 diff --git a/packages/third-parties/bullmq/src/BullMQModule.spec.ts b/packages/third-parties/bullmq/src/BullMQModule.spec.ts index 1dc50ee8983..d5c966d4641 100644 --- a/packages/third-parties/bullmq/src/BullMQModule.spec.ts +++ b/packages/third-parties/bullmq/src/BullMQModule.spec.ts @@ -1,7 +1,7 @@ -import {PlatformTest} from "@tsed/common"; +import {InjectorService, PlatformTest} from "@tsed/common"; import {catchAsyncError} from "@tsed/core"; import {Queue, Worker} from "bullmq"; -import {instance, mock, verify, when} from "ts-mockito"; +import {anyString, anything, instance, mock, verify, when} from "ts-mockito"; import "./BullMQModule"; import {BullMQModule} from "./BullMQModule"; @@ -182,3 +182,23 @@ describe("module", () => { }); }); }); + +it('skips initialization when no config is provided', async () => { + const injector = mock(InjectorService) + const dispatcher = mock(JobDispatcher); + await PlatformTest.create({ + imports: [ + { + token: InjectorService, + use: instance(injector), + }, + { + token: JobDispatcher, + use: instance(dispatcher) + } + ] + }) + + verify(injector.add(anyString(), anything())).never(); + verify(dispatcher.dispatch(anything())).never() +}); diff --git a/packages/third-parties/bullmq/src/BullMQModule.ts b/packages/third-parties/bullmq/src/BullMQModule.ts index 9244e21855e..e91af8e66b4 100644 --- a/packages/third-parties/bullmq/src/BullMQModule.ts +++ b/packages/third-parties/bullmq/src/BullMQModule.ts @@ -15,6 +15,10 @@ export class BullMQModule implements BeforeInit { constructor(private readonly injector: InjectorService, private readonly dispatcher: JobDispatcher) {} $beforeInit() { + if (!this.bullmq) { + return; + } + this.buildWorkers(); this.buildQueues();