@nest-boot/bullmq-mikro-orm 7.0.5 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const bullmq_mikro_orm_module_1 = require("./bullmq-mikro-orm.module");
4
+ const bullmq_mikro_orm_module_definition_1 = require("./bullmq-mikro-orm.module-definition");
5
+ const job_entity_1 = require("./entities/job.entity");
6
+ describe("BullMQMikroORMModule", () => {
7
+ it("should create a dynamic module with synchronous options", () => {
8
+ const dynamicModule = bullmq_mikro_orm_module_1.BullMQMikroORMModule.forRoot({
9
+ jobEntity: job_entity_1.JobEntity,
10
+ });
11
+ expect(dynamicModule.module).toBe(bullmq_mikro_orm_module_1.BullMQMikroORMModule);
12
+ expect(dynamicModule.providers).toEqual(expect.arrayContaining([
13
+ {
14
+ provide: bullmq_mikro_orm_module_definition_1.MODULE_OPTIONS_TOKEN,
15
+ useValue: {
16
+ jobEntity: job_entity_1.JobEntity,
17
+ },
18
+ },
19
+ ]));
20
+ });
21
+ it("should create a dynamic module with asynchronous options", () => {
22
+ const useFactory = () => ({
23
+ jobEntity: job_entity_1.JobEntity,
24
+ });
25
+ const dynamicModule = bullmq_mikro_orm_module_1.BullMQMikroORMModule.forRootAsync({
26
+ useFactory,
27
+ });
28
+ expect(dynamicModule.module).toBe(bullmq_mikro_orm_module_1.BullMQMikroORMModule);
29
+ expect(dynamicModule.providers).toEqual(expect.arrayContaining([
30
+ {
31
+ inject: [],
32
+ provide: bullmq_mikro_orm_module_definition_1.MODULE_OPTIONS_TOKEN,
33
+ useFactory,
34
+ },
35
+ ]));
36
+ });
37
+ });
38
+ //# sourceMappingURL=bullmq-mikro-orm.module.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bullmq-mikro-orm.module.spec.js","sourceRoot":"","sources":["../src/bullmq-mikro-orm.module.spec.ts"],"names":[],"mappings":";;AAAA,uEAAiE;AACjE,6FAA4E;AAC5E,sDAAkD;AAElD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,aAAa,GAAG,8CAAoB,CAAC,OAAO,CAAC;YACjD,SAAS,EAAE,sBAAS;SACrB,CAAC,CAAC;QAEH,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,8CAAoB,CAAC,CAAC;QACxD,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,CACrC,MAAM,CAAC,eAAe,CAAC;YACrB;gBACE,OAAO,EAAE,yDAAoB;gBAC7B,QAAQ,EAAE;oBACR,SAAS,EAAE,sBAAS;iBACrB;aACF;SACF,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC;YACxB,SAAS,EAAE,sBAAS;SACrB,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,8CAAoB,CAAC,YAAY,CAAC;YACtD,UAAU;SACX,CAAC,CAAC;QAEH,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,8CAAoB,CAAC,CAAC;QACxD,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,CACrC,MAAM,CAAC,eAAe,CAAC;YACrB;gBACE,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,yDAAoB;gBAC7B,UAAU;aACX;SACF,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@mikro-orm/core");
4
+ const bullmq_1 = require("@nest-boot/bullmq");
5
+ const core_2 = require("@nestjs/core");
6
+ const testing_1 = require("@nestjs/testing");
7
+ const bullmq_2 = require("bullmq");
8
+ const bullmq_mikro_orm_module_definition_1 = require("./bullmq-mikro-orm.module-definition");
9
+ const bullmq_mikro_orm_service_1 = require("./bullmq-mikro-orm.service");
10
+ const job_entity_1 = require("./entities/job.entity");
11
+ const job_status_enum_1 = require("./enums/job-status.enum");
12
+ class TestWorkerHost extends bullmq_1.WorkerHost {
13
+ async process() {
14
+ await Promise.resolve();
15
+ }
16
+ }
17
+ function createJob(state, overrides = {}) {
18
+ return {
19
+ id: "42",
20
+ queueName: "email",
21
+ name: "send-email",
22
+ data: { to: "user@example.com" },
23
+ returnvalue: { accepted: true },
24
+ failedReason: undefined,
25
+ priority: 3,
26
+ progress: 50,
27
+ processedOn: Date.UTC(2026, 0, 1, 1),
28
+ finishedOn: Date.UTC(2026, 0, 1, 2),
29
+ timestamp: Date.UTC(2026, 0, 1),
30
+ getState: jest.fn().mockResolvedValue(state),
31
+ ...overrides,
32
+ };
33
+ }
34
+ async function createService(options = {}, providers = []) {
35
+ const fork = {
36
+ nativeDelete: jest.fn(),
37
+ upsert: jest.fn(),
38
+ };
39
+ const em = {
40
+ fork: jest.fn(() => fork),
41
+ };
42
+ const getProviders = jest.fn(() => providers.map((provider) => ({ instance: provider })));
43
+ const discoveryService = {
44
+ getProviders,
45
+ };
46
+ const moduleRef = await testing_1.Test.createTestingModule({
47
+ providers: [
48
+ bullmq_mikro_orm_service_1.BullMQMikroORMService,
49
+ {
50
+ provide: core_2.DiscoveryService,
51
+ useValue: discoveryService,
52
+ },
53
+ {
54
+ provide: core_1.EntityManager,
55
+ useValue: em,
56
+ },
57
+ {
58
+ provide: bullmq_mikro_orm_module_definition_1.MODULE_OPTIONS_TOKEN,
59
+ useValue: {
60
+ jobEntity: job_entity_1.JobEntity,
61
+ ...options,
62
+ },
63
+ },
64
+ ],
65
+ }).compile();
66
+ return {
67
+ discoveryService,
68
+ em,
69
+ fork,
70
+ getProviders,
71
+ service: moduleRef.get(bullmq_mikro_orm_service_1.BullMQMikroORMService),
72
+ };
73
+ }
74
+ function createQueue(name) {
75
+ const queue = Object.create(bullmq_2.Queue.prototype);
76
+ queue.name = name;
77
+ queue.on = jest.fn();
78
+ return queue;
79
+ }
80
+ function createWorkerHost(name) {
81
+ const workerHost = new TestWorkerHost();
82
+ const worker = {
83
+ name,
84
+ on: jest.fn(),
85
+ };
86
+ Object.defineProperty(workerHost, "_worker", {
87
+ configurable: true,
88
+ value: worker,
89
+ });
90
+ return workerHost;
91
+ }
92
+ describe("BullMQMikroORMService", () => {
93
+ afterEach(() => {
94
+ jest.useRealTimers();
95
+ });
96
+ describe("convertJobToEntityData", () => {
97
+ it("should convert a BullMQ job to entity data", async () => {
98
+ const { service } = await createService();
99
+ await expect(service.convertJobToEntityData(createJob("completed"), "waiting")).resolves.toMatchObject({
100
+ id: "email:42",
101
+ queueName: "email",
102
+ name: "send-email",
103
+ data: { to: "user@example.com" },
104
+ returnValue: { accepted: true },
105
+ failedReason: null,
106
+ priority: 3,
107
+ progress: 50,
108
+ status: job_status_enum_1.JobStatus.COMPLETED,
109
+ startedAt: new Date(Date.UTC(2026, 0, 1, 1)),
110
+ finishedAt: new Date(Date.UTC(2026, 0, 1, 2)),
111
+ createdAt: new Date(Date.UTC(2026, 0, 1)),
112
+ updatedAt: expect.any(Date),
113
+ });
114
+ });
115
+ it("should use the event state when BullMQ returns unknown", async () => {
116
+ const { service } = await createService({
117
+ convertJobToEntityData: () => ({
118
+ tenantId: "tenant-1",
119
+ }),
120
+ });
121
+ await expect(service.convertJobToEntityData(createJob("unknown", {
122
+ data: undefined,
123
+ id: undefined,
124
+ returnvalue: undefined,
125
+ failedReason: "failed",
126
+ processedOn: undefined,
127
+ finishedOn: undefined,
128
+ }), "failed")).resolves.toMatchObject({
129
+ id: "email:",
130
+ data: null,
131
+ returnValue: null,
132
+ failedReason: "failed",
133
+ status: job_status_enum_1.JobStatus.FAILED,
134
+ startedAt: null,
135
+ finishedAt: null,
136
+ tenantId: "tenant-1",
137
+ });
138
+ });
139
+ });
140
+ it("should upsert converted job data by id", async () => {
141
+ const { fork, service } = await createService();
142
+ const job = createJob("waiting");
143
+ await service.upsertJob(job, "waiting");
144
+ expect(fork.upsert).toHaveBeenCalledWith(job_entity_1.JobEntity, expect.objectContaining({
145
+ id: "email:42",
146
+ status: job_status_enum_1.JobStatus.WAITING,
147
+ }), {
148
+ onConflictFields: ["id"],
149
+ });
150
+ });
151
+ it("should delete history jobs older than the configured ttl", async () => {
152
+ jest.useFakeTimers();
153
+ jest.setSystemTime(new Date("2026-01-31T00:00:00.000Z"));
154
+ const { fork, service } = await createService({
155
+ jobTTL: 1000,
156
+ });
157
+ await service.cleanHistoryJobs();
158
+ expect(fork.nativeDelete).toHaveBeenCalledWith(job_entity_1.JobEntity, {
159
+ updatedAt: {
160
+ $lt: new Date("2026-01-30T23:59:59.000Z"),
161
+ },
162
+ });
163
+ });
164
+ it("should subscribe included queues and workers on application bootstrap", async () => {
165
+ const emailQueue = createQueue("email");
166
+ const ignoredQueue = createQueue("ignored");
167
+ const emailWorkerHost = createWorkerHost("email");
168
+ const ignoredWorkerHost = createWorkerHost("ignored");
169
+ const job = createJob("waiting");
170
+ const { getProviders, service } = await createService({
171
+ excludeQueues: ["ignored"],
172
+ includeQueues: ["email", "ignored"],
173
+ }, [emailQueue, ignoredQueue, emailWorkerHost, ignoredWorkerHost, {}]);
174
+ const upsertJob = jest.spyOn(service, "upsertJob").mockResolvedValue();
175
+ service.onApplicationBootstrap();
176
+ expect(getProviders).toHaveBeenCalledTimes(1);
177
+ expect(emailQueue.on).toHaveBeenCalledWith("waiting", expect.any(Function));
178
+ expect(ignoredQueue.on).not.toHaveBeenCalled();
179
+ expect(emailWorkerHost.worker.on).toHaveBeenCalledWith("active", expect.any(Function));
180
+ expect(emailWorkerHost.worker.on).toHaveBeenCalledWith("progress", expect.any(Function));
181
+ expect(emailWorkerHost.worker.on).toHaveBeenCalledWith("completed", expect.any(Function));
182
+ expect(emailWorkerHost.worker.on).toHaveBeenCalledWith("failed", expect.any(Function));
183
+ expect(ignoredWorkerHost.worker.on).not.toHaveBeenCalled();
184
+ const queueWaitingHandler = emailQueue.on.mock.calls.find(([event]) => event === "waiting")?.[1];
185
+ const workerHandlers = Object.fromEntries(emailWorkerHost.worker.on.mock.calls.map(([event, handler]) => [event, handler]));
186
+ queueWaitingHandler(job);
187
+ workerHandlers.active(job);
188
+ workerHandlers.progress(job);
189
+ workerHandlers.completed(job);
190
+ workerHandlers.failed(job);
191
+ workerHandlers.failed(undefined);
192
+ expect(upsertJob).toHaveBeenCalledWith(job, "waiting");
193
+ expect(upsertJob).toHaveBeenCalledWith(job, "active");
194
+ expect(upsertJob).toHaveBeenCalledWith(job, "completed");
195
+ expect(upsertJob).toHaveBeenCalledWith(job, "failed");
196
+ expect(upsertJob).toHaveBeenCalledTimes(5);
197
+ });
198
+ });
199
+ //# sourceMappingURL=bullmq-mikro-orm.service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bullmq-mikro-orm.service.spec.js","sourceRoot":"","sources":["../src/bullmq-mikro-orm.service.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const job_status_enum_1 = require("../enums/job-status.enum");
4
+ const job_entity_1 = require("./job.entity");
5
+ class TestJobEntity extends job_entity_1.JobEntity {
6
+ }
7
+ describe("JobEntity", () => {
8
+ it("should initialize timestamp defaults", () => {
9
+ const entity = new TestJobEntity();
10
+ expect(entity.createdAt).toBeInstanceOf(Date);
11
+ expect(entity.updatedAt).toBeInstanceOf(Date);
12
+ });
13
+ it("should expose persisted job status values", () => {
14
+ expect(job_status_enum_1.JobStatus).toEqual({
15
+ ACTIVE: "active",
16
+ COMPLETED: "completed",
17
+ DELAYED: "delayed",
18
+ FAILED: "failed",
19
+ PRIORITIZED: "prioritized",
20
+ UNKNOWN: "unknown",
21
+ WAITING: "waiting",
22
+ WAITING_CHILDREN: "waiting-children",
23
+ });
24
+ });
25
+ it("should emit decorator metadata when Opt exists at runtime", () => {
26
+ jest.isolateModules(() => {
27
+ jest.doMock("@mikro-orm/core", () => {
28
+ const actual = jest.requireActual("@mikro-orm/core");
29
+ return {
30
+ ...actual,
31
+ Opt: function Opt() {
32
+ return undefined;
33
+ },
34
+ };
35
+ });
36
+ const isolatedModule = jest.requireActual("./job.entity");
37
+ expect(isolatedModule.JobEntity).toBeDefined();
38
+ jest.dontMock("@mikro-orm/core");
39
+ });
40
+ });
41
+ });
42
+ //# sourceMappingURL=job.entity.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.entity.spec.js","sourceRoot":"","sources":["../../src/entities/job.entity.spec.ts"],"names":[],"mappings":";;AAAA,8DAAqD;AACrD,6CAAyC;AAEzC,MAAM,aAAc,SAAQ,sBAAS;CAAG;AAExC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAEnC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,2BAAS,CAAC,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,aAAa;YAC1B,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;YAClB,gBAAgB,EAAE,kBAAkB;SACrC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,GAAG,EAAE;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;gBAErD,OAAO;oBACL,GAAG,MAAM;oBACT,GAAG,EAAE,SAAS,GAAG;wBACf,OAAO,SAAS,CAAC;oBACnB,CAAC;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,cAAc,GAClB,IAAI,CAAC,aAAa,CAAgC,cAAc,CAAC,CAAC;YAEpE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const publicApi = __importStar(require("."));
37
+ const bullmq_mikro_orm_module_1 = require("./bullmq-mikro-orm.module");
38
+ const job_entity_1 = require("./entities/job.entity");
39
+ const job_status_enum_1 = require("./enums/job-status.enum");
40
+ describe("public API", () => {
41
+ it("should export the module, entity, options, and status enum", () => {
42
+ expect(publicApi.BullMQMikroORMModule).toBe(bullmq_mikro_orm_module_1.BullMQMikroORMModule);
43
+ expect(publicApi.JobEntity).toBe(job_entity_1.JobEntity);
44
+ expect(publicApi.JobStatus).toBe(job_status_enum_1.JobStatus);
45
+ });
46
+ });
47
+ //# sourceMappingURL=index.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,uEAAiE;AACjE,sDAAkD;AAClD,6DAAoD;AAEpD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,8CAAoB,CAAC,CAAC;QAClE,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,sBAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,2BAAS,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}