@@ -4304,6 +4304,66 @@ describe('AnalyticalTable', () => {
43044304 cy . focused ( ) . should ( 'have.text' , 'Before' ) ;
43054305 } ) ;
43064306
4307+ it ( 'vertical scroll sync' , ( ) => {
4308+ cy . mount ( < AnalyticalTable columns = { columns } data = { generateMoreData ( 100 ) } /> ) ;
4309+
4310+ cy . get ( '[data-component-name="AnalyticalTableBody"]' ) . scrollTo ( 0 , 2000 ) . should ( 'have.prop' , 'scrollTop' , 2000 ) ;
4311+ cy . get ( '[data-component-name="AnalyticalTableVerticalScrollbar"]' ) . should ( 'have.prop' , 'scrollTop' , 2000 ) ;
4312+
4313+ cy . get ( '[data-component-name="AnalyticalTableVerticalScrollbar"]' )
4314+ . scrollTo ( 0 , 3000 )
4315+ . should ( 'have.prop' , 'scrollTop' , 3000 ) ;
4316+ cy . get ( '[data-component-name="AnalyticalTableBody"]' ) . should ( 'have.prop' , 'scrollTop' , 3000 ) ;
4317+
4318+ cy . get ( '[data-component-name="AnalyticalTableContainerWithScrollbar"]' ) . realMouseWheel ( { deltaY : 500 } ) ;
4319+ cy . get ( '[data-component-name="AnalyticalTableBody"]' ) . should ( 'have.prop' , 'scrollTop' , 3500 ) ;
4320+ cy . get ( '[data-component-name="AnalyticalTableVerticalScrollbar"]' ) . should ( 'have.prop' , 'scrollTop' , 3500 ) ;
4321+
4322+ cy . get ( '[data-component-name="AnalyticalTableVerticalScrollbar"]' ) . realMouseWheel ( { deltaY : - 1000 } ) ;
4323+ cy . get ( '[data-component-name="AnalyticalTableVerticalScrollbar"]' ) . should ( 'have.prop' , 'scrollTop' , 2500 ) ;
4324+ cy . get ( '[data-component-name="AnalyticalTableBody"]' ) . should ( 'have.prop' , 'scrollTop' , 2500 ) ;
4325+
4326+ const TestComp = ( ) => {
4327+ const [ _data , setData ] = useState ( [ ] ) ;
4328+ useEffect ( ( ) => {
4329+ setTimeout ( ( ) => {
4330+ setData ( generateMoreData ( 100 ) ) ;
4331+ } , 100 ) ;
4332+ } , [ ] ) ;
4333+
4334+ return (
4335+ < >
4336+ < div style = { { height : '500px' } } >
4337+ < AnalyticalTable
4338+ columns = { columns }
4339+ data = { _data }
4340+ header = { < div > Header</ div > }
4341+ visibleRowCountMode = "AutoWithEmptyRows"
4342+ />
4343+ </ div >
4344+ </ >
4345+ ) ;
4346+ } ;
4347+
4348+ cy . mount ( < TestComp /> ) ;
4349+
4350+ cy . get ( '[data-component-name="AnalyticalTableBody"]' ) . scrollTo ( 0 , 2000 ) . should ( 'have.prop' , 'scrollTop' , 2000 ) ;
4351+ cy . get ( '[data-component-name="AnalyticalTableVerticalScrollbar"]' ) . should ( 'have.prop' , 'scrollTop' , 2000 ) ;
4352+
4353+ cy . get ( '[data-component-name="AnalyticalTableVerticalScrollbar"]' )
4354+ . scrollTo ( 0 , 3000 )
4355+ . should ( 'have.prop' , 'scrollTop' , 3000 ) ;
4356+ cy . get ( '[data-component-name="AnalyticalTableBody"]' ) . should ( 'have.prop' , 'scrollTop' , 3000 ) ;
4357+
4358+ cy . get ( '[data-component-name="AnalyticalTableContainerWithScrollbar"]' ) . realMouseWheel ( { deltaY : 500 } ) ;
4359+ cy . get ( '[data-component-name="AnalyticalTableBody"]' ) . should ( 'have.prop' , 'scrollTop' , 3500 ) ;
4360+ cy . get ( '[data-component-name="AnalyticalTableVerticalScrollbar"]' ) . should ( 'have.prop' , 'scrollTop' , 3500 ) ;
4361+
4362+ cy . get ( '[data-component-name="AnalyticalTableVerticalScrollbar"]' ) . realMouseWheel ( { deltaY : - 1000 } ) ;
4363+ cy . get ( '[data-component-name="AnalyticalTableVerticalScrollbar"]' ) . should ( 'have.prop' , 'scrollTop' , 2500 ) ;
4364+ cy . get ( '[data-component-name="AnalyticalTableBody"]' ) . should ( 'have.prop' , 'scrollTop' , 2500 ) ;
4365+ } ) ;
4366+
43074367 cypressPassThroughTestsFactory ( AnalyticalTable , { data, columns } ) ;
43084368} ) ;
43094369
0 commit comments