node-mongo-demo
node.js and mongodb demo
git clone https://9o.is/git/node-mongo-demo.git
globalSetup.js
(962B)
1 import { MongoMemoryReplSet } from 'mongodb-memory-server';
2 import * as mongoose from 'mongoose';
3 import { config } from './utils/config.js';
4
5 async function globalSetup() {
6 if (config.Memory) { // Config to decide if an mongodb-memory-server instance should be used
7 // it's needed in global space, because we don't want to create a new instance every test-suite
8 const instance = await MongoMemoryReplSet.create({
9 replSet: { count: 3 },
10 });
11 const uri = instance.getUri();
12 global.__MONGOINSTANCE = instance;
13 process.env.MONGO_URI = uri.slice(0, uri.lastIndexOf('/'));
14 } else {
15 process.env.MONGO_URI = `mongodb://${config.IP}:${config.Port}`;
16 }
17
18 // The following is to make sure the database is clean before a test suite starts
19 const conn = await mongoose.connect(`${process.env.MONGO_URI}/${config.Database}`);
20 await conn.connection.db.dropDatabase();
21 await mongoose.disconnect();
22 };
23
24 export default globalSetup;