vitest-mongodb
Version:
Run your tests using Vitest and MongoDB in Memory server.
28 lines (25 loc) • 1.01 kB
JavaScript
import { MongoMemoryServer, MongoMemoryReplSet } from 'mongodb-memory-server';
import debugInit from 'debug';
const debug = debugInit(`vitest-jest:${process.env.VITEST_WORKER_ID ?? 0}`);
async function setup(options) {
const type = options?.type ?? "default";
const serverOptions = options?.serverOptions;
debug("Starting setup with options:", { type, serverOptions });
debug("Starting mongo memory server");
if (type !== "replSet") {
globalThis.__MONGO_DB__ = await MongoMemoryServer.create(serverOptions);
globalThis.__MONGO_URI__ = globalThis.__MONGO_DB__.getUri();
} else {
globalThis.__MONGO_DB__ = await MongoMemoryReplSet.create(serverOptions);
globalThis.__MONGO_URI__ = globalThis.__MONGO_DB__.getUri();
}
debug("Mongo URI:", globalThis.__MONGO_URI__);
}
async function teardown() {
debug("Starting teardown");
if (globalThis.__MONGO_DB__) {
debug("Stopping mongo memory server");
await globalThis.__MONGO_DB__.stop();
}
}
export { setup, teardown };