@@ -13060,8 +13060,8 @@ describe('document', function() {
13060
13060
x . metadata = { } ;
13061
13061
await x . save ( ) ;
13062
13062
13063
- const { metadata } = await Model . findById ( m . _id ) . orFail ( ) ;
13064
- assert . strictEqual ( metadata , null ) ;
13063
+ const { metadata } = await Model . findById ( m . _id ) . lean ( ) . orFail ( ) ;
13064
+ assert . strictEqual ( metadata , undefined ) ;
13065
13065
} ) ;
13066
13066
13067
13067
it ( 'saves when setting subdocument to empty object (gh-14420) (gh-13782)' , async function ( ) {
@@ -13085,7 +13085,7 @@ describe('document', function() {
13085
13085
await doc . save ( ) ;
13086
13086
13087
13087
const savedDoc = await MainModel . findById ( doc . id ) . orFail ( ) ;
13088
- assert . strictEqual ( savedDoc . sub , null ) ;
13088
+ assert . strictEqual ( savedDoc . sub , undefined ) ;
13089
13089
} ) ;
13090
13090
13091
13091
it ( 'validate supports validateAllPaths' , async function ( ) {
@@ -13205,6 +13205,37 @@ describe('document', function() {
13205
13205
err . errors [ 'docArr.0.subprop' ] . message
13206
13206
) ;
13207
13207
} ) ;
13208
+
13209
+ it ( 'minimize unsets property rather than setting to null (gh-14445)' , async function ( ) {
13210
+ const SubSchema = new mongoose . Schema ( {
13211
+ name : { type : String }
13212
+ } , { _id : false } ) ;
13213
+
13214
+ const MainSchema = new mongoose . Schema ( {
13215
+ name : String ,
13216
+ sub : {
13217
+ type : SubSchema ,
13218
+ default : { }
13219
+ }
13220
+ } ) ;
13221
+
13222
+ const Test = db . model ( 'Test' , MainSchema ) ;
13223
+ const doc = new Test ( { name : 'foo' } ) ;
13224
+ await doc . save ( ) ;
13225
+
13226
+ const savedDocFirst = await Test . findById ( doc . id ) . orFail ( ) ;
13227
+ assert . deepStrictEqual ( savedDocFirst . toObject ( { minimize : false } ) . sub , { } ) ;
13228
+
13229
+ savedDocFirst . name = 'bar' ;
13230
+ await savedDocFirst . save ( ) ;
13231
+
13232
+ const lean = await Test . findById ( doc . id ) . lean ( ) . orFail ( ) ;
13233
+ assert . strictEqual ( lean . sub , undefined ) ;
13234
+
13235
+ const savedDocSecond = await Test . findById ( doc . id ) . orFail ( ) ;
13236
+ assert . deepStrictEqual ( savedDocSecond . toObject ( { minimize : false } ) . sub , { } ) ;
13237
+
13238
+ } ) ;
13208
13239
} ) ;
13209
13240
13210
13241
describe ( 'Check if instance function that is supplied in schema option is availabe' , function ( ) {
0 commit comments