@@ -410,9 +410,13 @@ describe('renderer', () => {
410
410
411
411
it ( 'can swap 4 array primitives' , async ( ) => {
412
412
const a = new THREE . Group ( )
413
+ a . name = 'a'
413
414
const b = new THREE . Group ( )
415
+ b . name = 'b'
414
416
const c = new THREE . Group ( )
417
+ c . name = 'c'
415
418
const d = new THREE . Group ( )
419
+ d . name = 'd'
416
420
417
421
const Test = ( { array } : { array : THREE . Group [ ] } ) => (
418
422
< >
@@ -426,15 +430,15 @@ describe('renderer', () => {
426
430
const store = await act ( async ( ) => root . render ( < Test array = { array } /> ) )
427
431
const { scene } = store . getState ( )
428
432
429
- expect ( scene . children ) . toStrictEqual ( array )
433
+ expect ( scene . children . map ( ( o ) => o . name ) ) . toStrictEqual ( array . map ( ( o ) => o . name ) )
430
434
431
435
const reversedArray = [ d , c , b , a ]
432
436
await act ( async ( ) => root . render ( < Test array = { reversedArray } /> ) )
433
- expect ( scene . children ) . toStrictEqual ( reversedArray )
437
+ expect ( scene . children . map ( ( o ) => o . name ) ) . toStrictEqual ( reversedArray . map ( ( o ) => o . name ) )
434
438
435
439
const mixedArray = [ b , a , d , c ]
436
440
await act ( async ( ) => root . render ( < Test array = { mixedArray } /> ) )
437
- expect ( scene . children ) . toStrictEqual ( mixedArray )
441
+ expect ( scene . children . map ( ( o ) => o . name ) ) . toStrictEqual ( mixedArray . map ( ( o ) => o . name ) )
438
442
} )
439
443
440
444
// TODO: fix this case, also see:
@@ -443,9 +447,13 @@ describe('renderer', () => {
443
447
// https://github.com/pmndrs/react-three-fiber/issues/3143
444
448
it . skip ( 'can swap 4 array primitives via attach' , async ( ) => {
445
449
const a = new THREE . Group ( )
450
+ a . name = 'a'
446
451
const b = new THREE . Group ( )
452
+ b . name = 'b'
447
453
const c = new THREE . Group ( )
454
+ c . name = 'c'
448
455
const d = new THREE . Group ( )
456
+ d . name = 'c'
449
457
const array = [ a , b , c , d ]
450
458
451
459
const Test = ( { array } : { array : THREE . Group [ ] } ) => (
@@ -457,33 +465,20 @@ describe('renderer', () => {
457
465
)
458
466
459
467
const store = await act ( async ( ) => root . render ( < Test array = { array } /> ) )
460
- const state = store . getState ( )
468
+ const { scene } = store . getState ( )
461
469
462
- expect ( state . scene . children . length ) . toBe ( 0 )
463
- expect ( state . scene . userData . objects [ 0 ] ) . toBe ( a )
464
- expect ( state . scene . userData . objects [ 1 ] ) . toBe ( b )
465
- expect ( state . scene . userData . objects [ 2 ] ) . toBe ( c )
466
- expect ( state . scene . userData . objects [ 3 ] ) . toBe ( d )
470
+ expect ( scene . children . length ) . toBe ( 0 )
471
+ expect ( scene . userData . objects . map ( ( o : THREE . Object3D ) => o . name ) ) . toStrictEqual ( array . map ( ( o ) => o . name ) )
467
472
468
473
const reversedArray = [ ...array . reverse ( ) ]
469
-
470
474
await act ( async ( ) => root . render ( < Test array = { reversedArray } /> ) )
471
-
472
- expect ( state . scene . children . length ) . toBe ( 0 )
473
- expect ( state . scene . userData . objects [ 0 ] ) . toBe ( d )
474
- expect ( state . scene . userData . objects [ 1 ] ) . toBe ( c )
475
- expect ( state . scene . userData . objects [ 2 ] ) . toBe ( b )
476
- expect ( state . scene . userData . objects [ 3 ] ) . toBe ( a )
475
+ expect ( scene . children . length ) . toBe ( 0 )
476
+ expect ( scene . userData . objects . map ( ( o : THREE . Object3D ) => o . name ) ) . toStrictEqual ( reversedArray . map ( ( o ) => o . name ) )
477
477
478
478
const mixedArray = [ b , a , d , c ]
479
-
480
479
await act ( async ( ) => root . render ( < Test array = { mixedArray } /> ) )
481
-
482
- expect ( state . scene . children . length ) . toBe ( 0 )
483
- expect ( state . scene . userData . objects [ 0 ] ) . toBe ( b )
484
- expect ( state . scene . userData . objects [ 1 ] ) . toBe ( a )
485
- expect ( state . scene . userData . objects [ 2 ] ) . toBe ( d )
486
- expect ( state . scene . userData . objects [ 3 ] ) . toBe ( c )
480
+ expect ( scene . children . length ) . toBe ( 0 )
481
+ expect ( scene . userData . objects . map ( ( o : THREE . Object3D ) => o . name ) ) . toStrictEqual ( mixedArray . map ( ( o ) => o . name ) )
487
482
} )
488
483
489
484
it ( 'should gracefully handle text' , async ( ) => {
0 commit comments