Skip to content

Commit bd1c0ff

Browse files
authored
Add layer tree tests for folder self movement checking (#2579)
* Testing folder movement to self * changes * unnecessary code line removed
1 parent eca5d0d commit bd1c0ff

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

editor/src/messages/portfolio/document/document_message_handler.rs

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2813,7 +2813,6 @@ mod document_message_handler_tests {
28132813
parent.children(document.metadata()).position(|child| child == layer)
28142814
}
28152815

2816-
let layer_bottom = get_layer_by_bounds(&mut editor, 0.0, 0.0).await.unwrap();
28172816
let layer_middle = get_layer_by_bounds(&mut editor, 50.0, 50.0).await.unwrap();
28182817
let layer_top = get_layer_by_bounds(&mut editor, 100.0, 100.0).await.unwrap();
28192818

@@ -2832,4 +2831,32 @@ mod document_message_handler_tests {
28322831
let new_index_middle = get_layer_index(&mut editor, layer_middle).await.unwrap();
28332832
assert!(new_index_middle < initial_index_middle, "Middle layer should have moved up");
28342833
}
2834+
#[tokio::test]
2835+
async fn test_move_folder_into_itself_doesnt_crash() {
2836+
let mut editor = EditorTestUtils::create();
2837+
editor.new_document().await;
2838+
2839+
// Creating a parent folder
2840+
editor.handle_message(DocumentMessage::CreateEmptyFolder).await;
2841+
let parent_folder = editor.active_document().metadata().all_layers().next().unwrap();
2842+
2843+
// Creating a child folder inside the parent folder
2844+
editor.handle_message(NodeGraphMessage::SelectedNodesSet { nodes: vec![parent_folder.to_node()] }).await;
2845+
editor.handle_message(DocumentMessage::CreateEmptyFolder).await;
2846+
let child_folder = editor.active_document().metadata().all_layers().next().unwrap();
2847+
2848+
// Attempt to move parent folder into child folder
2849+
editor.handle_message(NodeGraphMessage::SelectedNodesSet { nodes: vec![parent_folder.to_node()] }).await;
2850+
editor
2851+
.handle_message(DocumentMessage::MoveSelectedLayersTo {
2852+
parent: child_folder,
2853+
insert_index: 0,
2854+
})
2855+
.await;
2856+
2857+
// The operation completed without crashing
2858+
// Verifying application still functions by performing another operation
2859+
editor.handle_message(DocumentMessage::CreateEmptyFolder).await;
2860+
assert!(true, "Application didn't crash after folder move operation");
2861+
}
28352862
}

0 commit comments

Comments
 (0)