test(editor): cover create undo selection state

This commit is contained in:
ayuan9957 2026-06-23 21:56:00 +08:00
parent 025157a8bf
commit 99ea260af4

View File

@ -345,12 +345,16 @@ void MetaCoreTestHierarchyEditingCommandsDirtyAndUndo() {
std::optional<MetaCore::MetaCoreId>{0}
);
MetaCoreExpect(createdId.has_value(), "CreateGameObject command should create an object");
MetaCoreExpect(editorContext.GetActiveObjectId() == *createdId, "CreateGameObject command should select the created object");
MetaCoreExpect(scenePersistenceService->IsSceneDirty(), "CreateGameObject command should mark scene dirty");
MetaCoreExpect(editorContext.UndoCommand(), "Undo CreateGameObject should succeed");
MetaCoreExpect(scene.GetGameObjects().size() == baselineCount, "Undo CreateGameObject should restore object count");
MetaCoreExpect(editorContext.GetActiveObjectId() == 0, "Undo CreateGameObject should restore previous empty active selection");
MetaCoreExpect(editorContext.GetSelectedObjectIds().empty(), "Undo CreateGameObject should restore previous empty selection");
MetaCoreExpect(!scenePersistenceService->IsSceneDirty(), "Undo CreateGameObject should restore clean baseline");
MetaCoreExpect(editorContext.RedoCommand(), "Redo CreateGameObject should succeed");
MetaCoreExpect(scene.FindGameObject(*createdId), "Redo CreateGameObject should restore created object");
MetaCoreExpect(editorContext.GetActiveObjectId() == *createdId, "Redo CreateGameObject should restore created object selection");
MetaCoreExpect(scenePersistenceService->IsSceneDirty(), "Redo CreateGameObject should mark scene dirty again");
MetaCoreExpect(scenePersistenceService->SaveCurrentScene(editorContext), "Hierarchy command scene should save after create");