diff --git a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component/image.rs b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component/image.rs index f01050f4f..7149afe45 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component/image.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/html_renderer/component/image.rs @@ -124,7 +124,7 @@ fn fill_clip_path(method: &FillMethod, amount: f32) -> Option { #[cfg(test)] mod tests { - use super::{fill_clip_path, FillMethod, Radial180Origin, Radial360Origin}; + use super::{fill_clip_path, FillMethod, Radial180Origin, Radial360Origin, Radial90Origin}; #[test] fn clockwise_radial_180_and_360_start_ninety_degrees_before_origin() { @@ -160,6 +160,36 @@ mod tests { .unwrap(); assert!(radial_180.contains("from -90deg")); } + + #[test] + fn radial_90_matches_preview_for_all_origins_and_directions() { + let cases = [ + (Radial90Origin::TopLeft, 0.0), + (Radial90Origin::TopRight, 90.0), + (Radial90Origin::BottomRight, 180.0), + (Radial90Origin::BottomLeft, 270.0), + ]; + for (origin, angle) in cases { + let clockwise = fill_clip_path( + &FillMethod::Radial90 { + origin, + clockwise: true, + }, + 0.5, + ) + .unwrap(); + let counter_clockwise = fill_clip_path( + &FillMethod::Radial90 { + origin, + clockwise: false, + }, + 0.5, + ) + .unwrap(); + assert!(clockwise.contains(&format!("from {}deg", angle - 90.0))); + assert!(counter_clockwise.contains(&format!("from {}deg", angle - 45.0))); + } + } } fn conic_mask(origin: f32, clockwise: bool, amount: f32, max_sweep: f32) -> String {