@@ -13,14 +13,16 @@ describe('VirtualTableLaout utils', () => {
13
13
{ key : 3 , height : 40 } ,
14
14
{ key : 4 , height : 40 } ,
15
15
{ key : 5 , height : 40 } ,
16
+ { key : 6 , height : 40 } ,
16
17
] ;
17
18
18
19
expect ( getVisibleRows ( rows , 0 , 50 , row => row . height ) )
19
20
. toEqual ( [
20
21
{ type : 'visible' , height : 40 , row : rows [ 0 ] } ,
21
- { type : 'overscan ' , height : 40 , row : rows [ 1 ] } ,
22
+ { type : 'visible ' , height : 40 , row : rows [ 1 ] } ,
22
23
{ type : 'overscan' , height : 40 , row : rows [ 2 ] } ,
23
24
{ type : 'overscan' , height : 40 , row : rows [ 3 ] } ,
25
+ { type : 'overscan' , height : 40 , row : rows [ 4 ] } ,
24
26
{ type : 'stub' , height : 80 , key : 'ending' } ,
25
27
] ) ;
26
28
} ) ;
@@ -33,15 +35,17 @@ describe('VirtualTableLaout utils', () => {
33
35
{ key : 3 , height : 40 } ,
34
36
{ key : 4 , height : 40 } ,
35
37
{ key : 5 , height : 40 } ,
38
+ { key : 6 , height : 40 } ,
36
39
] ;
37
40
38
- expect ( getVisibleRows ( rows , 190 , 50 , row => row . height ) )
41
+ expect ( getVisibleRows ( rows , 230 , 50 , row => row . height ) )
39
42
. toEqual ( [
40
43
{ type : 'stub' , height : 80 , key : 'starting' } ,
41
44
{ type : 'overscan' , height : 40 , row : rows [ 2 ] } ,
42
45
{ type : 'overscan' , height : 40 , row : rows [ 3 ] } ,
43
46
{ type : 'overscan' , height : 40 , row : rows [ 4 ] } ,
44
47
{ type : 'visible' , height : 40 , row : rows [ 5 ] } ,
48
+ { type : 'visible' , height : 40 , row : rows [ 6 ] } ,
45
49
] ) ;
46
50
} ) ;
47
51
@@ -71,6 +75,35 @@ describe('VirtualTableLaout utils', () => {
71
75
{ type : 'stub' , height : 40 , key : 'ending' } ,
72
76
] ) ;
73
77
} ) ;
78
+
79
+ it ( 'should return visible rows in center with one big row' , ( ) => {
80
+ const rows = [
81
+ { key : 0 , height : 40 } ,
82
+ { key : 1 , height : 400 } ,
83
+ { key : 2 , height : 40 } ,
84
+ ] ;
85
+
86
+ expect ( getVisibleRows ( rows , 170 , 20 , row => row . height ) )
87
+ . toEqual ( [
88
+ { type : 'overscan' , height : 40 , row : rows [ 0 ] } ,
89
+ { type : 'visible' , height : 400 , row : rows [ 1 ] } ,
90
+ { type : 'overscan' , height : 40 , row : rows [ 2 ] } ,
91
+ ] ) ;
92
+
93
+ expect ( getVisibleRows ( rows , 30 , 20 , row => row . height ) )
94
+ . toEqual ( [
95
+ { type : 'visible' , height : 40 , row : rows [ 0 ] } ,
96
+ { type : 'visible' , height : 400 , row : rows [ 1 ] } ,
97
+ { type : 'overscan' , height : 40 , row : rows [ 2 ] } ,
98
+ ] ) ;
99
+
100
+ expect ( getVisibleRows ( rows , 430 , 20 , row => row . height ) )
101
+ . toEqual ( [
102
+ { type : 'overscan' , height : 40 , row : rows [ 0 ] } ,
103
+ { type : 'visible' , height : 400 , row : rows [ 1 ] } ,
104
+ { type : 'visible' , height : 40 , row : rows [ 2 ] } ,
105
+ ] ) ;
106
+ } ) ;
74
107
} ) ;
75
108
76
109
describe ( '#firstVisibleRowOffset' , ( ) => {
0 commit comments