diff --git a/crates/image_viewer/src/image_viewer.rs b/crates/image_viewer/src/image_viewer.rs index 33f286c820..0cfced3e56 100644 --- a/crates/image_viewer/src/image_viewer.rs +++ b/crates/image_viewer/src/image_viewer.rs @@ -5840,6 +5840,22 @@ mod tests { offset_h.x >= -cx.read(|cx| image_view.read(cx).pdf_scroll_handle.max_offset().x), "horizontal pan should stay within the scrollable range" ); + + // Trackpad pinch zooms around the touch point by the gesture delta. + let zoom_before_pinch = cx.read(|cx| image_view.read(cx).zoom_level); + cx.simulate_event(PinchEvent { + position: anchor, + delta: 0.5, + modifiers: Modifiers::default(), + phase: TouchPhase::Moved, + }); + cx.run_until_parked(); + + let zoom_after_pinch = cx.read(|cx| image_view.read(cx).zoom_level); + assert!( + (zoom_after_pinch - zoom_before_pinch * 1.5).abs() < 1e-3, + "pinch delta 0.5 should scale zoom by 1.5x, got {zoom_before_pinch} -> {zoom_after_pinch}" + ); } #[gpui::test]