0.0.4 • Published 4 years ago

mockable-mongo v0.0.4

Weekly downloads
7
License
ISC
Repository
github
Last release
4 years ago

mockable-mongo

A library for mocking a MongoDb Instance in memory.

npm i -D mockable-mongo

Testing Mocha

Starts up a mongodb instance in a promise based approach allowing the call to be awaited. User can specify the name of the database the full connection string will be returned

import MockMongo from 'mockable-mongo'
import Mongoose from 'mongoose'

describe('Testing with Mocha', () => {
    
    describe('Mongoose Connection', () => {
        const MONGO_SERVER = new MockMongo()
        
        mongoose.set("useNewUrlParser", true);
        mongoose.set("useFindAndModify", false);
        mongoose.set("useCreateIndex", true);
        mongoose.set("useUnifiedTopology", true);

        before(async done => {
            const CONNECTION_STRING = await MONGO_SERVER.start('myDb')
            await mongoose.connect(CONNECTION_STRING)
            done()
        })
        
        after(async done => {
            await mongoose.disconnect()
            await MONGO_SERVER.stop()
            done()
        })
    })
})

Testing with Ava

With ava be sure to spin up and teardown the db in each file as all tests are run in isolated worker environments

import ava from 'ava'
import MockMongo from 'mockable-mongo'
import Mongoose from 'mongoose'

const MONGO_SERVER = new MockMongo()

ava.before('Setup DB', async t => {
    mongoose.set("useNewUrlParser", true);
    mongoose.set("useFindAndModify", false);
    mongoose.set("useCreateIndex", true);
    mongoose.set("useUnifiedTopology", true);
    const CONNECTION_STRING = await MONGO_SERVER.start('myDb')
    await mongoose.connect(CONNECTION_STRING)
});

//#region SUT TESTS
//#endregion

ava.after("Teardown", async t => {
    await mongoose.disconnect()
    await MONGO_SERVER.stop()
})