diff --git a/tests/domain/foliage-instanced-renderer.test.ts b/tests/domain/foliage-instanced-renderer.test.ts index 1ac99d9d..a62bc925 100644 --- a/tests/domain/foliage-instanced-renderer.test.ts +++ b/tests/domain/foliage-instanced-renderer.test.ts @@ -41,11 +41,14 @@ import { FoliageInstancedRenderer } from "../../src/foliage/foliage-instanced-re const TEST_TERRAIN_ID = "terrain-renderer"; const TEST_LAYER_ID = "foliage-layer-renderer"; -function createCamera(position: { x: number; y: number; z: number }) { +function createCamera( + position: { x: number; y: number; z: number }, + target: { x: number; y: number; z: number } = { x: 8, y: 0, z: 8 } +) { const camera = new PerspectiveCamera(60, 1, 0.1, 500); camera.position.set(position.x, position.y, position.z); - camera.lookAt(8, 0, 8); + camera.lookAt(target.x, target.y, target.z); camera.updateProjectionMatrix(); camera.updateMatrixWorld(true); @@ -168,6 +171,23 @@ describe("FoliageInstancedRenderer", () => { true ); + renderer.updateView( + createCamera( + { x: 8, y: 8, z: 8 }, + { + x: 10, + y: 0, + z: 8 + } + ) + ); + await Promise.resolve(); + + expect(renderer.group.children[0]).toBe(activeBatchRoot); + expect(getInstancedMeshes(renderer.group)).toEqual(instancedMeshes); + expect(loaderState.loadCalls).toHaveLength(initialLoadCallCount); + expect(rebuildCount).toBe(initialRebuildCount); + renderer.updateView(createCamera({ x: 68, y: 8, z: 8 })); await Promise.resolve();