Skip to content

Commit 5a891ce

Browse files
committed
centralize tests
1 parent 74c87c5 commit 5a891ce

9 files changed

Lines changed: 45 additions & 2101 deletions

File tree

tests/all-queues.test.ts

Lines changed: 45 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import { FileQueue } from "../src/drivers/file.js";
2424
import { createSQLiteQueue } from "../src/adapters/sqlite.js";
2525
import { RedisQueue } from "../src/drivers/redis.js";
2626
import { SqsQueue } from "../src/drivers/sqs.js";
27+
import { createMongooseQueue } from "../src/adapters/mongoose.js";
28+
import mongoose from "mongoose";
2729
import type { Queue } from "../src/core/queue.js";
2830
import type { JobRequestFull } from "../src/interfaces/job.ts";
2931

@@ -252,20 +254,49 @@ const drivers: Array<() => Promise<QueueDriverConfig> | QueueDriverConfig> = [
252254
},
253255
};
254256
},
255-
// TODO: Add other drivers here later
256-
// {
257-
// name: 'MongooseQueue',
258-
// beforeAll: async () => {
259-
// // Start MongoDB container
260-
// await startMongoContainer();
261-
// },
262-
// afterAll: async () => {
263-
// // Stop MongoDB container
264-
// await stopMongoContainer();
265-
// },
266-
// createQueue: async () => { ... },
267-
// cleanup: async (queue) => { ... }
268-
// }
257+
async () => {
258+
let mongoContainer: StartedTestContainer;
259+
let mongoUri: string;
260+
261+
return {
262+
name: "MongooseQueue",
263+
features: {
264+
supportsPriority: true, // MongoDB supports priority ordering
265+
supportsDelayedJobs: true, // MongoDB supports delayed jobs
266+
supportsStatus: true, // MongoDB supports status queries
267+
},
268+
beforeAll: async () => {
269+
mongoContainer = await new GenericContainer("mongo:7")
270+
.withExposedPorts(27017)
271+
.withStartupTimeout(60000)
272+
.start();
273+
274+
const mongoPort = mongoContainer.getMappedPort(27017);
275+
const mongoHost = mongoContainer.getHost();
276+
mongoUri = `mongodb://${mongoHost}:${mongoPort}/test-queue-db`;
277+
278+
// Connect mongoose
279+
await mongoose.connect(mongoUri);
280+
},
281+
afterAll: async () => {
282+
if (mongoose.connection.readyState === 1) {
283+
await mongoose.disconnect();
284+
}
285+
if (mongoContainer) {
286+
await mongoContainer.stop();
287+
}
288+
},
289+
createQueue: async () => {
290+
return createMongooseQueue<TestJobs>("test-queue");
291+
},
292+
cleanup: async () => {
293+
// Clean up MongoDB collections between tests
294+
if (mongoose.connection.readyState === 1 && mongoose.connection.db) {
295+
await mongoose.connection.db.dropDatabase();
296+
}
297+
},
298+
};
299+
},
269300
];
270301

271302
async function resolveAllConfigs(): Promise<Array<QueueDriverConfig>> {

tests/drivers/db-real.test.ts

Lines changed: 0 additions & 206 deletions
This file was deleted.

0 commit comments

Comments
 (0)