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;