Test that select tool GRS works with only one anchor (#2502)

* one-anchor-point-testing implementation

* merge conflict

* merge conflict

* ci cd error
This commit is contained in:
Rahat 2025-04-03 02:01:29 +05:30 committed by GitHub
parent fb17b9389c
commit 6de235f80c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -702,12 +702,14 @@ impl MessageHandler<TransformLayerMessage, TransformData<'_>> for TransformLayer
#[cfg(test)]
mod test_transform_layer {
use crate::messages::portfolio::document::graph_operation::transform_utils;
use crate::messages::{
portfolio::document::graph_operation::{transform_utils, utility_types::ModifyInputsContext},
prelude::Message,
tool::transform_layer::transform_layer_message_handler::VectorModificationType,
};
use crate::test_utils::test_prelude::*;
// Use ModifyInputsContext to locate the transform node
use crate::messages::portfolio::document::graph_operation::utility_types::ModifyInputsContext;
use crate::messages::prelude::Message;
use glam::DAffine2;
use graphene_core::vector::PointId;
use std::collections::VecDeque;
async fn get_layer_transform(editor: &mut EditorTestUtils, layer: LayerNodeIdentifier) -> Option<DAffine2> {
@ -1064,4 +1066,35 @@ mod test_transform_layer {
let angle_change = ((angle_change % 360.0) + 360.0) % 360.0;
assert!((angle_change - 90.0).abs() < 0.1, "Expected rotation of 90 degrees, got: {}", angle_change);
}
#[tokio::test]
async fn test_grs_single_anchor() {
let mut editor = EditorTestUtils::create();
editor.new_document().await;
editor.handle_message(DocumentMessage::CreateEmptyFolder).await;
let document = editor.active_document();
let layer = document.metadata().all_layers().next().unwrap();
let point_id = PointId::generate();
let modification_type = VectorModificationType::InsertPoint {
id: point_id,
position: DVec2::new(100.0, 100.0),
};
editor.handle_message(GraphOperationMessage::Vector { layer, modification_type }).await;
editor.handle_message(ToolMessage::ActivateTool { tool_type: ToolType::Select }).await;
// Testing grab operation - just checking that it doesn't crash.
editor.handle_message(TransformLayerMessage::BeginGrab).await;
editor.move_mouse(150.0, 150.0, ModifierKeys::empty(), MouseKeys::NONE).await;
editor
.handle_message(TransformLayerMessage::PointerMove {
slow_key: Key::Shift,
increments_key: Key::Control,
})
.await;
editor.handle_message(TransformLayerMessage::ApplyTransformOperation { final_transform: true }).await;
let final_transform = get_layer_transform(&mut editor, layer).await;
assert!(final_transform.is_some(), "Transform node should exist after grab operation");
}
}