Skip to content

Commit

Permalink
Merge pull request #14878 from Automattic/vkarpov15/gh-14861
Browse files Browse the repository at this point in the history
fix: backport #14870 to 6.x
  • Loading branch information
vkarpov15 authored Sep 11, 2024
2 parents fe17056 + 3910527 commit abedf3c
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/document.js
Original file line number Diff line number Diff line change
Expand Up @@ -1224,7 +1224,7 @@ Document.prototype.$set = function $set(path, val, type, options) {
this.$__setValue(path, null);
cleanModifiedSubpaths(this, path);
} else {
return this.$set(val, path, constructing);
return this.$set(val, path, constructing, options);
}

const keys = getKeysInSchemaOrder(this.$__schema, val, path);
Expand Down
32 changes: 32 additions & 0 deletions test/document.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -8078,6 +8078,38 @@ describe('document', function() {
await person.save();
});

it('set() merge option with double nested', async function() {
const PersonSchema = new Schema({
info: {
address: {
city: String,
country: { type: String, default: 'UK' },
postcode: String
}
}
});

const Person = db.model('Person', PersonSchema);


const person = new Person({
info: {
address: {
country: 'United States',
city: 'New York'
}
}
});

const update = { info: { address: { postcode: '12H' } } };

person.set(update, undefined, { merge: true });

assert.equal(person.info.address.city, 'New York');
assert.equal(person.info.address.postcode, '12H');
assert.equal(person.info.address.country, 'United States');
});

it('setting single nested subdoc with timestamps (gh-8251)', async function() {
const ActivitySchema = Schema({ description: String }, { timestamps: true });
const RequestSchema = Schema({ activity: ActivitySchema });
Expand Down

0 comments on commit abedf3c

Please sign in to comment.