vitest-mms
Version:
mongodb-memory-server integration for vitest
30 lines (26 loc) • 644 B
JavaScript
;
var node_crypto = require('node:crypto');
var mongodb = require('mongodb');
var vitest = require('vitest');
let client;
vitest.afterAll(async () => {
if (client) {
await client.close();
}
});
const mmsTest = vitest.test.extend({
mongoClient: async ({}, use) => {
if (!client) {
const uri = vitest.inject("MONGO_URI");
client = new mongodb.MongoClient(uri);
await client.connect();
}
await use(client);
},
db: async ({ mongoClient }, use) => {
const db = mongoClient.db(node_crypto.randomUUID());
await use(db);
await db.dropDatabase();
}
});
exports.mmsTest = mmsTest;