@@ -3731,6 +3731,11 @@ describe('document', function() {
3731
3731
3732
3732
assert . deepEqual (
3733
3733
kitty . modifiedPaths ( ) ,
3734
+ [ 'surnames' ]
3735
+ ) ;
3736
+
3737
+ assert . deepEqual (
3738
+ kitty . modifiedPaths ( { includeChildren : true } ) ,
3734
3739
[ 'surnames' , 'surnames.docarray' ]
3735
3740
) ;
3736
3741
} ) ;
@@ -12355,6 +12360,29 @@ describe('document', function() {
12355
12360
const nestedProjectionDoc = await User . findOne ( { } , { name : 1 , 'sub.propertyA' : 1 , 'sub.propertyB' : 1 } ) ;
12356
12361
assert . strictEqual ( nestedProjectionDoc . sub . propertyA , 'A' ) ;
12357
12362
} ) ;
12363
+
12364
+ it ( 'avoids adding nested paths to markModified() output if adding a new field (gh-14024)' , async function ( ) {
12365
+ const eventSchema = new Schema ( {
12366
+ name : { type : String } ,
12367
+ __stateBeforeSuspension : {
12368
+ field1 : { type : String } ,
12369
+ field2 : { type : String } ,
12370
+ jsonField : {
12371
+ name : { type : String } ,
12372
+ name1 : { type : String }
12373
+ }
12374
+ }
12375
+ } ) ;
12376
+ const Event = db . model ( 'Event' , eventSchema ) ;
12377
+ const eventObj = new Event ( { name : 'event object' , __stateBeforeSuspension : { field1 : 'test' , jsonField : { name : 'test3' } } } ) ;
12378
+ await eventObj . save ( ) ;
12379
+ const newObject = { field1 : 'test' , jsonField : { name : 'test3' , name1 : 'test4' } } ;
12380
+ eventObj . set ( '__stateBeforeSuspension' , newObject ) ;
12381
+ assert . deepEqual (
12382
+ eventObj . modifiedPaths ( ) ,
12383
+ [ '__stateBeforeSuspension' , '__stateBeforeSuspension.jsonField' ]
12384
+ ) ;
12385
+ } ) ;
12358
12386
} ) ;
12359
12387
12360
12388
describe ( 'Check if instance function that is supplied in schema option is availabe' , function ( ) {
0 commit comments