From 8be6e99742938318604368b710d8437cec94f987 Mon Sep 17 00:00:00 2001 From: Yuvraj Kolkar Date: Sun, 22 Mar 2026 13:50:52 +0530 Subject: [PATCH 1/2] test: added new test for dispatcher Signed-off-by: Yuvraj Kolkar --- editor/src/dispatcher.rs | 56 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/editor/src/dispatcher.rs b/editor/src/dispatcher.rs index 6c312ed6a2..4cd6a3f35f 100644 --- a/editor/src/dispatcher.rs +++ b/editor/src/dispatcher.rs @@ -528,6 +528,62 @@ mod test { assert_eq!(layers_after_copy[5], shape_id); } + /// - create a new document + /// - assert it starts with zero layers + #[tokio::test] + async fn new_document_starts_empty() { + let mut editor = EditorTestUtils::create(); + editor.new_document().await; + + let layer_count = editor.active_document().metadata().all_layers().count(); + assert_eq!(layer_count, 0); + } + + /// - create rect + /// - assert one layer exists + #[tokio::test] + async fn draw_rect_adds_one_layer() { + let mut editor = EditorTestUtils::create(); + editor.new_document().await; + editor.draw_rect(0., 0., 100., 100.).await; + + let layer_count = editor.active_document().metadata().all_layers().count(); + assert_eq!(layer_count, 1); + } + + /// - create three layers + /// - delete the active selection (the ellipse, drawn last) + /// - assert two layers remain + #[tokio::test] + async fn delete_selected_layer_reduces_count() { + let mut editor = create_editor_with_three_layers().await; + assert_eq!(editor.active_document().metadata().all_layers().count(), 3); + + editor.handle_message(NodeGraphMessage::DeleteSelectedNodes { delete_children: true }).await; + + assert_eq!(editor.active_document().metadata().all_layers().count(), 2); + } + + /// - create three layers + /// - copy and paste the active selection twice + /// - assert five layers exist + #[tokio::test] + async fn paste_twice_gives_five_layers() { + let mut editor = create_editor_with_three_layers().await; + + editor.handle_message(PortfolioMessage::Copy { clipboard: Clipboard::Internal }).await; + for _ in 0..2 { + editor + .handle_message(PortfolioMessage::PasteIntoFolder { + clipboard: Clipboard::Internal, + parent: LayerNodeIdentifier::ROOT_PARENT, + insert_index: 0, + }) + .await; + } + + assert_eq!(editor.active_document().metadata().all_layers().count(), 5); + } #[tokio::test] /// This test will fail when you make changes to the underlying serialization format for a document. From f0e4a5b5c790211d55ad3780526b9f90673e4599 Mon Sep 17 00:00:00 2001 From: Yuvraj Kolkar Date: Sun, 22 Mar 2026 14:29:57 +0530 Subject: [PATCH 2/2] Update Signed-off-by: Yuvraj Kolkar --- editor/src/dispatcher.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/editor/src/dispatcher.rs b/editor/src/dispatcher.rs index 4cd6a3f35f..5c956bfa70 100644 --- a/editor/src/dispatcher.rs +++ b/editor/src/dispatcher.rs @@ -559,7 +559,7 @@ mod test { let mut editor = create_editor_with_three_layers().await; assert_eq!(editor.active_document().metadata().all_layers().count(), 3); - editor.handle_message(NodeGraphMessage::DeleteSelectedNodes { delete_children: true }).await; + editor.handle_message(DocumentMessage::DeleteSelectedLayers).await; assert_eq!(editor.active_document().metadata().all_layers().count(), 2); } @@ -582,7 +582,7 @@ mod test { .await; } - assert_eq!(editor.active_document().metadata().all_layers().count(), 5); + assert_eq!(editor.active_document().metadata().all_layers().count(), 5); } #[tokio::test]