test(editor): cover forced child object creation

This commit is contained in:
ayuan9957 2026-06-23 17:53:47 +08:00
parent 453abfbf46
commit 025157a8bf

View File

@ -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<MetaCore::MetaCoreId>{*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");