diff --git a/index.js b/index.js index 7bd9ba17..5c7b0cb2 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,5 @@ import mongoose from 'mongoose'; +import { Mockgoose } from 'mockgoose'; import util from 'util'; // config should be imported before importing any other file @@ -15,7 +16,17 @@ mongoose.Promise = Promise; // connect to mongo db const mongoUri = `${config.mongo.host}:${config.mongo.port}`; -mongoose.connect(mongoUri, { server: { socketOptions: { keepAlive: 1 } } }); + +if (process.env.NODE_ENV === 'test') { + const mockgoose = new Mockgoose(mongoose); + + mockgoose.prepareStorage().then(() => { + mongoose.connect('mongodb://example.com/test-db'); + }); +} else { + mongoose.connect(mongoUri, { server: { socketOptions: { keepAlive: 1 } } }); +} + mongoose.connection.on('error', () => { throw new Error(`unable to connect to database: ${config.db}`); }); diff --git a/package.json b/package.json index efbac4fa..739392d4 100644 --- a/package.json +++ b/package.json @@ -17,9 +17,9 @@ "lint": "esw *.js server config --color", "lint:watch": "yarn lint -- --watch", "precommit": "yarn lint && yarn test", - "test": "cross-env NODE_ENV=test ./node_modules/.bin/mocha --ui bdd --reporter spec --colors --compilers js:babel-core/register server/tests --recursive", + "test": "cross-env NODE_ENV=test ./node_modules/.bin/mocha --timeout 12000 --ui bdd --reporter spec --colors --compilers js:babel-core/register server/tests --recursive", "test:watch": "yarn test -- --watch", - "test:coverage": "cross-env NODE_ENV=test ./node_modules/.bin/istanbul cover _mocha -- --ui bdd --reporter spec --colors --compilers js:babel-core/register server/tests --recursive", + "test:coverage": "cross-env NODE_ENV=test ./node_modules/.bin/istanbul cover _mocha -- --timeout 12000 --ui bdd --reporter spec --colors --compilers js:babel-core/register server/tests --recursive", "test:check-coverage": "yarn test:coverage && istanbul check-coverage", "report-coverage": "coveralls < ./coverage/lcov.info" }, @@ -87,6 +87,7 @@ "husky": "^0.13.1", "istanbul": "1.1.0-alpha.1", "mocha": "3.2.0", + "mockgoose": "^7.0.7", "run-sequence": "^1.1.5", "supertest": "2.0.1", "supertest-as-promised": "4.0.2", diff --git a/server/tests/user.test.js b/server/tests/user.test.js index 351f4e03..2347bb0f 100644 --- a/server/tests/user.test.js +++ b/server/tests/user.test.js @@ -1,4 +1,3 @@ -import mongoose from 'mongoose'; import request from 'supertest-as-promised'; import httpStatus from 'http-status'; import chai, { expect } from 'chai'; @@ -6,17 +5,6 @@ import app from '../../index'; chai.config.includeStack = true; -/** - * root level hooks - */ -after((done) => { - // required because https://github.com/Automattic/mongoose/issues/1251#issuecomment-65793092 - mongoose.models = {}; - mongoose.modelSchemas = {}; - mongoose.connection.close(); - done(); -}); - describe('## User APIs', () => { let user = { username: 'KK123',