@@ -740,6 +740,71 @@ describe('TableResizeOverlay', () => {
740740 } ) ;
741741 } ) ;
742742
743+ // ==========================================================================
744+ // Viewing Mode Guard Tests
745+ // ==========================================================================
746+
747+ describe ( 'Viewing mode restrictions' , ( ) => {
748+ it ( 'should ignore column handle drags when documentMode is viewing' , async ( ) => {
749+ const tableElement = createMockTableElement ( ) ;
750+
751+ const wrapper = mount ( TableResizeOverlay , {
752+ props : {
753+ editor : createMockEditor ( { options : { documentMode : 'viewing' } } ) ,
754+ visible : true ,
755+ tableElement,
756+ } ,
757+ } ) ;
758+
759+ await nextTick ( ) ;
760+
761+ const event = new MouseEvent ( 'mousedown' , { clientX : 100 , clientY : 50 } ) ;
762+ Object . defineProperty ( event , 'preventDefault' , { value : vi . fn ( ) } ) ;
763+ Object . defineProperty ( event , 'stopPropagation' , { value : vi . fn ( ) } ) ;
764+
765+ wrapper . vm . onHandleMouseDown ( event , 0 ) ;
766+
767+ expect ( wrapper . vm . dragState ) . toBeNull ( ) ;
768+ expect ( wrapper . emitted ( 'resize-start' ) ) . toBeUndefined ( ) ;
769+
770+ wrapper . unmount ( ) ;
771+ } ) ;
772+
773+ it ( 'should ignore row handle drags when documentMode is viewing' , async ( ) => {
774+ const tableElement = createMockTableElement ( {
775+ columns : [
776+ { i : 0 , x : 0 , w : 100 , min : 50 , r : 1 } ,
777+ { i : 1 , x : 100 , w : 150 , min : 50 , r : 1 } ,
778+ ] ,
779+ rows : [
780+ { i : 0 , y : 0 , h : 50 , min : 30 , r : 1 } ,
781+ { i : 1 , y : 50 , h : 50 , min : 30 , r : 1 } ,
782+ ] ,
783+ } ) ;
784+
785+ const wrapper = mount ( TableResizeOverlay , {
786+ props : {
787+ editor : createMockEditor ( { options : { documentMode : 'viewing' } } ) ,
788+ visible : true ,
789+ tableElement,
790+ } ,
791+ } ) ;
792+
793+ await nextTick ( ) ;
794+
795+ const event = new MouseEvent ( 'mousedown' , { clientX : 100 , clientY : 50 } ) ;
796+ Object . defineProperty ( event , 'preventDefault' , { value : vi . fn ( ) } ) ;
797+ Object . defineProperty ( event , 'stopPropagation' , { value : vi . fn ( ) } ) ;
798+
799+ wrapper . vm . onRowHandleMouseDown ( event , 0 ) ;
800+
801+ expect ( wrapper . vm . rowDragState ) . toBeNull ( ) ;
802+ expect ( wrapper . emitted ( 'resize-start' ) ) . toBeUndefined ( ) ;
803+
804+ wrapper . unmount ( ) ;
805+ } ) ;
806+ } ) ;
807+
743808 // ==========================================================================
744809 // Overlay Rect Tests
745810 // ==========================================================================
0 commit comments