diff --git a/thermion_dart/test/integration_test.dart b/thermion_dart/test/integration_test.dart index 36d2815b..1117ec0c 100644 --- a/thermion_dart/test/integration_test.dart +++ b/thermion_dart/test/integration_test.dart @@ -186,7 +186,7 @@ void main() async { test('remove geometry fires SceneUpdateEvent', () async { var viewer = await createViewer(); - var geometry = await viewer.createGeometry(GeometryHelper.cube()); + var geometry = await viewer.createGeometry(GeometryHelper.cube()); final success = Completer(); late StreamSubscription listener; @@ -201,6 +201,44 @@ void main() async { expect(await success.future, true); }); + + test('loadGlb fires SceneUpdateEvent', () async { + var viewer = await createViewer(); + + final success = Completer(); + + late StreamSubscription listener; + + final uri = "$testDir/cube.glb"; + + listener = viewer.sceneUpdated.listen((updateEvent) { + var wasSuccess = updateEvent.eventType == EventType.EntityAdded && + updateEvent.addedEntityType == EntityType.Gltf && + updateEvent.getAsGLTF().uri == uri; + success.complete(wasSuccess); + listener.cancel(); + }); + await viewer.loadGlb(uri, keepData: false); + expect(await success.future, true); + }); + + test('remove glb fires SceneUpdateEvent', () async { + var viewer = await createViewer(); + final uri = "$testDir/cube.glb"; + var entity = await viewer.loadGlb(uri, keepData: false); + + final success = Completer(); + + late StreamSubscription listener; + listener = viewer.sceneUpdated.listen((updateEvent) { + var wasSuccess = updateEvent.eventType == EventType.EntityRemoved && + updateEvent.entity == entity; + success.complete(wasSuccess); + listener.cancel(); + }); + await viewer.removeEntity(entity); + expect(await success.future, true); + }); }); group("custom geometry", () {