@@ -201,41 +201,33 @@ describe('dropUndefinedKeys()', () => {
201
201
} ) ;
202
202
203
203
test ( 'should not throw on objects with circular reference' , ( ) => {
204
- const dog : any = {
204
+ const chicken : any = {
205
205
food : undefined ,
206
206
} ;
207
207
208
- const human = {
209
- brain : undefined ,
210
- pets : dog ,
208
+ const egg = {
209
+ edges : undefined ,
210
+ contains : chicken ,
211
211
} ;
212
212
213
- const rat = {
214
- scares : human ,
215
- weight : '4kg' ,
216
- } ;
217
-
218
- dog . chases = rat ;
213
+ chicken . lays = egg ;
219
214
220
- const result = dropUndefinedKeys ( human ) ;
215
+ const droppedChicken = dropUndefinedKeys ( chicken ) ;
221
216
222
217
// Removes undefined keys
223
- expect ( Object . keys ( result ) ) . toEqual ( [ 'pets' ] ) ;
224
- expect ( Object . keys ( result . pets ) ) . toEqual ( [ 'chases' ] ) ;
225
- expect ( Object . keys ( result . pets . chases ) ) . toEqual ( [ 'scares' , 'weight' ] ) ;
218
+ expect ( Object . keys ( droppedChicken ) ) . toEqual ( [ 'lays' ] ) ;
219
+ expect ( Object . keys ( droppedChicken . lays ) ) . toEqual ( [ 'contains' ] ) ;
226
220
227
221
// Returns new object
228
- expect ( human === result ) . toBe ( false ) ;
229
- expect ( dog === result . pets ) . toBe ( false ) ;
230
- expect ( rat === result . pets . chases ) . toBe ( false ) ;
222
+ expect ( chicken === droppedChicken ) . toBe ( false ) ;
223
+ expect ( chicken . lays === droppedChicken . lays ) . toBe ( false ) ;
231
224
232
225
// Returns new references within objects
233
- expect ( human === result . pets . chases . scares ) . toBe ( false ) ;
234
- expect ( dog === result . pets . chases . scares . pets ) . toBe ( false ) ;
235
- expect ( rat === result . pets . chases . scares . pets . chases ) . toBe ( false ) ;
226
+ expect ( chicken === droppedChicken . lays . contains ) . toBe ( false ) ;
227
+ expect ( egg === droppedChicken . lays . contains . lays ) . toBe ( false ) ;
236
228
237
229
// Keeps circular reference
238
- expect ( result . pets . chases . scares === result ) . toBe ( true ) ;
230
+ expect ( droppedChicken . lays . contains === droppedChicken ) . toBe ( true ) ;
239
231
} ) ;
240
232
241
233
test ( 'arrays with circular reference' , ( ) => {
0 commit comments