Save and create hangs when using Mockgoose

I am trying to use Mockgoose for my tests. Whenever I call .save or .create on a model, the promise is not allowed. I can use .find and .findOne without any problems. I'm not sure if I misconfigured or misunderstood how Mockgoose is supposed to be used.

My tests are configured as:

test / mockgoose.js

 const mongoose = require('mongoose'); const { Mockgoose } = require('mockgoose'); const mockgoose = new Mockgoose(mongoose); mockgoose.helper.setDbVersion('3.2.1'); mongoose.Promise = global.Promise; module.exports = { mockgoose, mongoose }; 

model.test.js

 const { mongoose, mockgoose } = require('../test/mockgoose'); let Model = require('../model.js'); let conn; describe('something', function() { before(() => { return mockgoose.prepareStorage().then(() => { mongoose.connect('mongodb://127.0.0.1:27017/testingDB'); return new Promise(resolve => { mongoose.connection.once('connected', () => { conn = mongoose.connection; Model = Model(conn); // we pass the connection into every model because we have several connections resolve(); }); }); }); }); after(() => { mongoose.disconnect(); }); it('should save', function() { const modelInstance = new Model({'name': 'model name'}); /* modelInstance looks correct, I have plugins adding additional fields and those are being added correctly at this point */ return modelInstance.save().then(newModel => { /* console.log is never hit and mocha timeouts if I console.log modelInstance.save() I can see it is a pending promise. */ console.log(newModel); assert.equal(newModel.additionalField, 'a', 'field is added '); }); }); }); 
+5
source share

Source: https://habr.com/ru/post/1269269/


All Articles