mockgoose
Version:
Mockgoose is an in memory database mock to allow for testing of applications that rely on Mongoose.
53 lines (46 loc) • 1.42 kB
text/typescript
const Debug: any = require('debug');
import {each as asyncEach} from 'async';
let httpsProxyAgent = require('https-proxy-agent');
export class MockgooseHelper {
debug: any;
constructor(public mongoose: any, public mockgoose: any) {
this.debug = Debug('MockgooseHelper');
}
setDbVersion(version: string) {{
this.mockgoose.mongodHelper.mongoBin.mongoDBPrebuilt.mongoDBDownload.options.version = version;
}}
setProxy(proxy: string) {
this.mockgoose.mongodHelper.mongoBin.mongoDBPrebuilt.mongoDBDownload.options.http = {
agent: new httpsProxyAgent(proxy)
};
}
reset(): Promise<void> {
return new Promise<void>((resolve, reject) => {
asyncEach(this.mongoose.connections, (connection: any, callback: Function) => {
// check if it is mockgoose connection
if (!/mockgoose-temp-db-/.test(connection.name)) {
return callback();
}
if ( connection.readyState !== 1 ) {
return callback();
}
connection.dropDatabase((err: any) => {
callback();
}, (e: any) => {
this.debug(`@reset err dropping database ${e}`);
callback();
});
}, (err) => {
if ( err ) {
this.debug(`@reset err ${err}`);
reject();
} else {
resolve();
}
})
});
};
isMocked(): boolean {
return this.mongoose.mocked;
}
}