From 2398073c2ae3d130ea19f0d8539b759ecc60fd8d Mon Sep 17 00:00:00 2001 From: Hafez Date: Thu, 2 Jul 2020 05:01:21 +0200 Subject: [PATCH] test: repro #9183 --- test/model.test.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/test/model.test.js b/test/model.test.js index 9d674f158c5..55504f3ad3a 100644 --- a/test/model.test.js +++ b/test/model.test.js @@ -6839,4 +6839,36 @@ describe('Model', function() { ); }); }); + + describe('defaultNewOnFindAndUpdate', function() { + const originalValue = mongoose.get('defaultNewOnFindAndUpdate'); + beforeEach(() => { + mongoose.set('defaultNewOnFindAndUpdate', true); + }); + + afterEach(() => { + mongoose.set('defaultNewOnFindAndUpdate', originalValue); + }); + + it('Setting `defaultNewOnFindAndUpdate` works (gh-9183)', function() { + return co(function*() { + const userSchema = new Schema({ + name: { type: String } + }); + + const User = db.model('User', userSchema); + + const createdUser = yield User.create({ name: 'Hafez' }); + + const user1 = yield User.findOneAndUpdate({ _id: createdUser._id }, { name: 'Hafez1' }); + assert.equal(user1.name, 'Hafez1'); + + const user2 = yield User.findByIdAndUpdate(createdUser._id, { name: 'Hafez2' }); + assert.equal(user2.name, 'Hafez2'); + + const user3 = yield User.findOneAndReplace({ _id: createdUser._id }, { name: 'Hafez3' }); + assert.equal(user3.name, 'Hafez3'); + }); + }); + }); });