@@ -468,6 +468,7 @@ describe('AnalyticalTable', () => {
468
468
} ) ;
469
469
470
470
it ( 'tree selection & filtering' , ( ) => {
471
+ const filterSpy = cy . spy ( ) . as ( 'filter' ) ;
471
472
const TreeSelectFilterTable = ( props : PropTypes ) => {
472
473
const [ filter , setFilter ] = useState ( '' ) ;
473
474
const [ relevantPayload , setRelevantPayload ] = useState < Record < string , any > > ( { } ) ;
@@ -501,6 +502,7 @@ describe('AnalyticalTable', () => {
501
502
data = { dataTree }
502
503
globalFilterValue = { filter }
503
504
selectionMode = "Multiple"
505
+ onFilter = { filterSpy }
504
506
/>
505
507
< div data-testid = "payloadHelper" >
506
508
{ JSON . stringify ( relevantPayload ?. selectedFlatRows ?. filter ( Boolean ) . length ) }
@@ -553,6 +555,12 @@ describe('AnalyticalTable', () => {
553
555
// column filter + select
554
556
cy . findByText ( 'Name' ) . click ( ) ;
555
557
cy . get ( `[ui5-input][show-clear-icon]` ) . typeIntoUi5Input ( 'Flowers Mcfarland' , { force : true } ) ;
558
+ cy . get ( '@filter' ) . should ( 'have.callCount' , 17 ) ;
559
+ cy . get ( '@filter' ) . should ( 'have.been.calledWithMatch' , {
560
+ value : 'Flowers Mcfarland' ,
561
+ columnId : 'name' ,
562
+ filters : [ { id : 'name' , value : 'Flowers Mcfarland' } ]
563
+ } ) ;
556
564
cy . findByText ( 'Robin Moreno' ) . should ( 'not.exist' , { timeout : 100 } ) ;
557
565
cy . findByText ( 'Judith Mathews' ) . should ( 'not.exist' , { timeout : 100 } ) ;
558
566
cy . findByText ( 'Katy Bradshaw' ) . should ( 'not.exist' , { timeout : 100 } ) ;
@@ -576,6 +584,8 @@ describe('AnalyticalTable', () => {
576
584
}
577
585
}
578
586
] ;
587
+
588
+ const filterSpy = cy . spy ( ) . as ( 'filter' ) ;
579
589
const TestComp = ( { onRowSelect } : PropTypes ) => {
580
590
const [ selectedRowIds , setSelectedRowIds ] = useState ( { } ) ;
581
591
const [ selectedFlatRows , setSelectedFlatRows ] = useState ( [ ] ) ;
@@ -610,6 +620,7 @@ describe('AnalyticalTable', () => {
610
620
setAllRowsSelected ( e . detail . allRowsSelected ) ;
611
621
onRowSelect ( e ) ;
612
622
} }
623
+ onFilter = { filterSpy }
613
624
selectionMode = { AnalyticalTableSelectionMode . Multiple }
614
625
selectedRowIds = { selectedRowIds }
615
626
/>
@@ -696,6 +707,12 @@ describe('AnalyticalTable', () => {
696
707
cy . findByText ( 'Name-5' ) . click ( ) ;
697
708
cy . findByText ( 'Name' ) . click ( ) ;
698
709
cy . get ( '[ui5-li-custom]' ) . shadow ( ) . get ( '[ui5-input]' ) . typeIntoUi5Input ( '7{enter}' ) ;
710
+ cy . get ( '@filter' ) . should ( 'have.callCount' , 1 ) ;
711
+ cy . get ( '@filter' ) . should ( 'have.been.calledWithMatch' , {
712
+ value : '7' ,
713
+ columnId : 'name' ,
714
+ filters : [ { id : 'name' , value : '7' } ]
715
+ } ) ;
699
716
cy . findByTestId ( 'payload' ) . should ( 'have.text' , '["0","1","5"]' ) ;
700
717
cy . findByTestId ( 'payloadRowsById' ) . should ( 'have.text' , '{"0":true,"1":true,"5":true}' ) ;
701
718
cy . findByTestId ( 'payloadAllRowsSelected' ) . should ( 'have.text' , 'false' ) ;
@@ -708,10 +725,18 @@ describe('AnalyticalTable', () => {
708
725
709
726
cy . findByText ( 'Name' ) . click ( ) ;
710
727
cy . get ( '[ui5-li-custom]' ) . shadow ( ) . get ( '[ui5-input]' ) . typeIntoUi5Input ( '{selectall}{backspace}{enter}' ) ;
728
+ cy . get ( '@filter' ) . should ( 'have.callCount' , 2 ) ;
729
+ cy . get ( '@filter' ) . should ( 'have.been.calledWithMatch' , {
730
+ value : undefined ,
731
+ columnId : 'name' ,
732
+ filters : [ ]
733
+ } ) ;
734
+
711
735
cy . get ( '[data-row-index="0"][data-column-index="0"]' ) . click ( ) ;
712
736
cy . findByText ( 'Name-17' ) . click ( { force : true } ) ;
713
737
cy . findByText ( 'Name' ) . click ( ) ;
714
738
cy . get ( '[ui5-li-custom]' ) . shadow ( ) . get ( '[ui5-input]' ) . typeIntoUi5Input ( '7{enter}' ) ;
739
+ cy . get ( '@filter' ) . should ( 'have.callCount' , 3 ) ;
715
740
cy . findByTestId ( 'payload' ) . should (
716
741
'have.text' ,
717
742
'["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","18","19","20"]'
@@ -734,6 +759,7 @@ describe('AnalyticalTable', () => {
734
759
735
760
cy . findByText ( 'Name' ) . click ( ) ;
736
761
cy . get ( '[ui5-li-custom]' ) . shadow ( ) . get ( '[ui5-input]' ) . typeIntoUi5Input ( '{selectall}{backspace}{enter}' ) ;
762
+ cy . get ( '@filter' ) . should ( 'have.callCount' , 4 ) ;
737
763
738
764
cy . findByText ( 'Name-17' ) . click ( { force : true } ) ;
739
765
cy . findByTestId ( 'input' ) . type ( '7{enter}' ) ;
0 commit comments