File tree 2 files changed +10
-6
lines changed
packages/gatsby/src/schema/infer
2 files changed +10
-6
lines changed Original file line number Diff line number Diff line change @@ -1148,9 +1148,10 @@ describe(`Type change detection`, () => {
1148
1148
expect ( haveEqualFields ( metadata , initialMetadata ) ) . toEqual ( false )
1149
1149
metadata . dirty = false
1150
1150
1151
+ // Deleting is expected to restore initial metadata state
1151
1152
metadata = deleteOne ( { relatedNode___NODE : `added` } , metadata )
1152
1153
expect ( metadata . dirty ) . toEqual ( true )
1153
- expect ( haveEqualFields ( metadata , initialMetadata ) ) . toEqual ( false )
1154
+ expect ( haveEqualFields ( metadata , initialMetadata ) ) . toEqual ( true )
1154
1155
} )
1155
1156
1156
1157
it ( `does not detect when the same node added to the relatedNode field` , ( ) => {
@@ -1165,9 +1166,10 @@ describe(`Type change detection`, () => {
1165
1166
expect ( haveEqualFields ( metadata , initialMetadata ) ) . toEqual ( false )
1166
1167
metadata . dirty = false
1167
1168
1169
+ // Deleting is expected to restore initial metadata state
1168
1170
metadata = deleteOne ( { relatedNodeList___NODE : [ `added` ] } , metadata )
1169
1171
expect ( metadata . dirty ) . toEqual ( true )
1170
- expect ( haveEqualFields ( metadata , initialMetadata ) ) . toEqual ( false )
1172
+ expect ( haveEqualFields ( metadata , initialMetadata ) ) . toEqual ( true )
1171
1173
} )
1172
1174
1173
1175
it ( `does not detect when the same node added to the relatedNodeList field` , ( ) => {
Original file line number Diff line number Diff line change @@ -391,10 +391,12 @@ const descriptorsAreEqual = (
391
391
descriptor ?. relatedNode ?. nodes ,
392
392
otherDescriptor ?. relatedNode ?. nodes
393
393
)
394
+ // Must be present in both descriptors or absent in both
395
+ // in order to be considered equal
394
396
return nodeIds . every (
395
397
id =>
396
- descriptor ?. relatedNode ?. nodes [ id ] &&
397
- otherDescriptor ?. relatedNode ?. nodes [ id ]
398
+ Boolean ( descriptor ?. relatedNode ?. nodes [ id ] ) ===
399
+ Boolean ( otherDescriptor ?. relatedNode ?. nodes [ id ] )
398
400
)
399
401
}
400
402
case `relatedNodeList` : {
@@ -404,8 +406,8 @@ const descriptorsAreEqual = (
404
406
)
405
407
return nodeIds . every (
406
408
id =>
407
- descriptor ?. relatedNodeList ?. nodes [ id ] &&
408
- otherDescriptor ?. relatedNodeList ?. nodes [ id ]
409
+ Boolean ( descriptor ?. relatedNodeList ?. nodes [ id ] ) ===
410
+ Boolean ( otherDescriptor ?. relatedNodeList ?. nodes [ id ] )
409
411
)
410
412
}
411
413
default :
You can’t perform that action at this time.
0 commit comments