@@ -75,6 +75,7 @@ import {
7575 scrollGrid ,
7676 simulateClick ,
7777 triggerMouseEvent ,
78+ triggerPointerEvent ,
7879 triggerTouchEvent ,
7980 triggerWheelEvent ,
8081} from "../test_helpers/dom_helper" ;
@@ -2261,3 +2262,41 @@ describe("Header grouping shortcuts", () => {
22612262 } ) ;
22622263 } ) ;
22632264} ) ;
2265+
2266+ describe ( "Pinch to zoom" , ( ) => {
2267+ beforeEach ( async ( ) => {
2268+ ( { parent, model, fixture } = await mountSpreadsheet ( ) ) ;
2269+ } ) ;
2270+
2271+ test ( "Can pinch to zoom in" , async ( ) => {
2272+ const grid = fixture . querySelector ( ".o-grid-overlay" ) ! ;
2273+ const moveDistance = 30 ;
2274+ triggerPointerEvent ( grid , "pointerdown" , 100 , 100 , { pointerId : 1 , bubbles : true } ) ;
2275+ triggerPointerEvent ( grid , "pointerdown" , 120 , 120 , { pointerId : 2 , bubbles : true } ) ;
2276+
2277+ // zoom in 30 px of distance
2278+ triggerPointerEvent ( grid , "pointermove" , 120 + moveDistance , 120 + moveDistance , {
2279+ pointerId : 2 ,
2280+ bubbles : true ,
2281+ } ) ;
2282+
2283+ await nextTick ( ) ;
2284+ expect ( model . getters . getViewportZoomLevel ( ) ) . toBe ( 1.58 ) ;
2285+
2286+ // go back to initial
2287+ triggerPointerEvent ( grid , "pointermove" , 120 , 120 , {
2288+ pointerId : 2 ,
2289+ bubbles : true ,
2290+ } ) ;
2291+ await nextTick ( ) ;
2292+ expect ( model . getters . getViewportZoomLevel ( ) ) . toBe ( 1 ) ;
2293+
2294+ // pinch to zoom out - closer pointers
2295+ triggerPointerEvent ( grid , "pointermove" , 120 , 120 , {
2296+ pointerId : 1 ,
2297+ bubbles : true ,
2298+ } ) ;
2299+ await nextTick ( ) ;
2300+ expect ( model . getters . getViewportZoomLevel ( ) ) . toBeLessThan ( 1 ) ;
2301+ } ) ;
2302+ } ) ;
0 commit comments