diff --git a/tests/MetaCoreSmokeTests.cpp b/tests/MetaCoreSmokeTests.cpp index 11bdfc3..c96b3eb 100644 --- a/tests/MetaCoreSmokeTests.cpp +++ b/tests/MetaCoreSmokeTests.cpp @@ -368,6 +368,18 @@ void MetaCoreTestHierarchyEditingCommandsDirtyAndUndo() { MetaCoreExpect(scenePersistenceService->SaveCurrentScene(editorContext), "Hierarchy command scene should save after forced root create"); MetaCoreExpect(!scenePersistenceService->IsSceneDirty(), "Hierarchy command scene should be clean after forced root create save"); + editorContext.SelectOnly(*createdId); + const auto forcedChildId = sceneEditingService->CreateGameObject( + editorContext, + "ForcedChildObject", + false, + std::optional{*forcedRootId} + ); + MetaCoreExpect(forcedChildId.has_value(), "CreateGameObject with forced child parent should create an object"); + MetaCoreExpect(scene.FindGameObject(*forcedChildId).GetParentId() == *forcedRootId, "CreateGameObject forced child parent should ignore active selection"); + MetaCoreExpect(scenePersistenceService->SaveCurrentScene(editorContext), "Hierarchy command scene should save after forced child create"); + MetaCoreExpect(!scenePersistenceService->IsSceneDirty(), "Hierarchy command scene should be clean after forced child create save"); + MetaCoreExpect(sceneEditingService->RenameGameObject(editorContext, *createdId, "HierarchyObjectRenamed"), "RenameGameObject command should rename object"); MetaCoreExpect(scenePersistenceService->IsSceneDirty(), "RenameGameObject command should mark scene dirty"); MetaCoreExpect(editorContext.UndoCommand(), "Undo RenameGameObject should succeed");