@@ -3,7 +3,7 @@ import mongoose from 'mongoose';
33import { GenericContainer } from 'testcontainers' ;
44import type { StartedTestContainer } from 'testcontainers' ;
55import {
6- createMongooseQueue ,
6+ MongooseQueue ,
77 createQueueModel ,
88 MongooseDatabaseAdapter ,
99 QueueJobSchema
@@ -148,23 +148,24 @@ describe('Mongoose Adapter', () => {
148148 } ) ;
149149 } ) ;
150150
151- describe ( 'createMongooseQueue ' , ( ) => {
151+ describe ( 'MongooseQueue ' , ( ) => {
152152 it ( 'should create a queue with default model' , ( ) => {
153- const queue = createMongooseQueue ( 'test-queue' ) ;
153+ const model = createQueueModel ( ) ;
154+ const queue = new MongooseQueue ( { model, name : 'test-queue' } ) ;
154155 expect ( queue ) . toBeDefined ( ) ;
155156 expect ( queue . name ) . toBe ( 'test-queue' ) ;
156157 } ) ;
157158
158159 it ( 'should create a queue with custom model' , ( ) => {
159- const queue = createMongooseQueue ( 'test-queue' , testModel ) ;
160+ const queue = new MongooseQueue ( { model : testModel , name : 'test-queue' } ) ;
160161 expect ( queue ) . toBeDefined ( ) ;
161162 expect ( queue . name ) . toBe ( 'test-queue' ) ;
162163 } ) ;
163164
164165 it ( 'should push and retrieve jobs' , async ( ) => {
165- const queue = createMongooseQueue < {
166+ const queue = new MongooseQueue < {
166167 'test-job' : { message : string } ;
167- } > ( 'test-queue' , testModel ) ;
168+ } > ( { model : testModel , name : 'test-queue' } ) ;
168169
169170 let processedMessage = '' ;
170171 queue . setHandlers ( {
@@ -183,9 +184,9 @@ describe('Mongoose Adapter', () => {
183184 } ) ;
184185
185186 it ( 'should handle job priorities' , async ( ) => {
186- const queue = createMongooseQueue < {
187+ const queue = new MongooseQueue < {
187188 'priority-job' : { priority : number } ;
188- } > ( 'test-queue' , testModel ) ;
189+ } > ( { model : testModel , name : 'test-queue' } ) ;
189190
190191 // Push jobs with different priorities
191192 await queue . addJob ( 'priority-job' , { payload : { priority : 1 } , priority : 1 } ) ;
@@ -200,9 +201,9 @@ describe('Mongoose Adapter', () => {
200201 } ) ;
201202
202203 it ( 'should handle delayed jobs' , async ( ) => {
203- const queue = createMongooseQueue < {
204+ const queue = new MongooseQueue < {
204205 'delayed-job' : { when : string } ;
205- } > ( 'test-queue' , testModel ) ;
206+ } > ( { model : testModel , name : 'test-queue' } ) ;
206207
207208 // Push a delayed job
208209 await queue . addJob ( 'delayed-job' , { payload : { when : 'future' } , delaySeconds : 2 } ) ;
@@ -221,10 +222,10 @@ describe('Mongoose Adapter', () => {
221222
222223
223224 it ( 'should handle job failures and retries through the queue system' , async ( ) => {
224- const queue = createMongooseQueue < {
225+ const queue = new MongooseQueue < {
225226 'failing-job' : { attemptNumber : number } ;
226227 'success-job' : { data : string } ;
227- } > ( 'test-queue' , testModel ) ;
228+ } > ( { model : testModel , name : 'test-queue' } ) ;
228229
229230 let attempts : number [ ] = [ ] ;
230231 let successfulJobs : string [ ] = [ ] ;
@@ -274,10 +275,10 @@ describe('Mongoose Adapter', () => {
274275 } ) ;
275276
276277 it ( 'should handle TTR timeout and job recovery in real processing' , async ( ) => {
277- const queue = createMongooseQueue < {
278+ const queue = new MongooseQueue < {
278279 'long-job' : { duration : number } ;
279280 'quick-job' : { data : string } ;
280- } > ( 'test-queue' , testModel ) ;
281+ } > ( { model : testModel , name : 'test-queue' } ) ;
281282
282283 let jobExecutions : string [ ] = [ ] ;
283284
@@ -349,7 +350,7 @@ describe('Mongoose Adapter', () => {
349350
350351 describe ( 'Integration with Mongoose features' , ( ) => {
351352 it ( 'should work with Mongoose queries' , async ( ) => {
352- const queue = createMongooseQueue ( 'test-queue' , testModel ) ;
353+ const queue = new MongooseQueue ( { model : testModel , name : 'test-queue' } ) ;
353354
354355 await queue . addJob ( 'test-job' , { payload : { data : 'test1' } } ) ;
355356 await queue . addJob ( 'test-job' , { payload : { data : 'test2' } } ) ;
@@ -364,7 +365,7 @@ describe('Mongoose Adapter', () => {
364365 } ) ;
365366
366367 it ( 'should maintain Mongoose document structure' , async ( ) => {
367- const queue = createMongooseQueue ( 'test-queue' , testModel ) ;
368+ const queue = new MongooseQueue ( { model : testModel , name : 'test-queue' } ) ;
368369
369370 const jobId = await queue . addJob ( 'test-job' , { payload : { test : true } } ) ;
370371
0 commit comments