@@ -6,11 +6,16 @@ describe('uiScroll Paddings cache', function () {
6
6
beforeEach ( module ( 'ui.scroll.test.datasources' ) ) ;
7
7
8
8
describe ( 'applyUpdates tests\n' , function ( ) {
9
+ var itemsCount = 20 ;
10
+ var itemHeight = 100 ;
11
+ var viewportHeight = 500 ;
12
+ var MAX = 999999 ;
13
+
9
14
var scrollSettings = {
10
- datasource : 'myMultipageDatasource ' ,
15
+ datasource : 'myResponsiveDatasource ' ,
11
16
adapter : 'adapter' ,
12
- itemHeight : 20 ,
13
- viewportHeight : 100
17
+ itemHeight : itemHeight ,
18
+ viewportHeight : viewportHeight
14
19
} ;
15
20
16
21
function getBottomPaddingHeight ( viewport ) {
@@ -25,40 +30,67 @@ describe('uiScroll Paddings cache', function () {
25
30
return parseInt ( angular . element ( topPadding ) . css ( 'height' ) , 10 ) ;
26
31
}
27
32
28
- var initialBottomHeight = 240 ;
33
+ function scrollBottom ( viewport , count = 1 ) {
34
+ for ( var i = 0 ; i < count ; i ++ ) {
35
+ viewport . scrollTop ( MAX ) ;
36
+ viewport . trigger ( 'scroll' ) ;
37
+ }
38
+ }
39
+
40
+ function scrollTop ( viewport , count = 1 ) {
41
+ for ( var i = 0 ; i < count ; i ++ ) {
42
+ viewport . scrollTop ( 0 ) ;
43
+ viewport . trigger ( 'scroll' ) ;
44
+ }
45
+ }
29
46
30
47
it ( 'should delete last row when out of buffer' , function ( ) {
48
+ var removeLastItem ;
49
+ inject ( function ( myResponsiveDatasource ) {
50
+ var datasource = myResponsiveDatasource ;
51
+ removeLastItem = function ( ) {
52
+ datasource . data . slice ( - 1 , 1 ) ;
53
+ datasource . max -- ;
54
+ } ;
55
+ } ) ;
31
56
runTest ( scrollSettings ,
32
57
function ( viewport , scope ) {
33
58
34
- viewport . scrollTop ( 1000 ) ;
35
- viewport . trigger ( 'scroll' ) ;
36
- viewport . scrollTop ( 1000 ) ;
37
- viewport . trigger ( 'scroll' ) ;
38
- viewport . scrollTop ( 0 ) ;
39
- viewport . trigger ( 'scroll' ) ;
59
+ scrollBottom ( viewport , 2 ) ;
60
+ scrollTop ( viewport ) ;
40
61
41
- expect ( getBottomPaddingHeight ( viewport ) ) . toBe ( initialBottomHeight ) ;
42
- scope . adapter . applyUpdates ( 20 , [ ] ) ;
43
- expect ( getBottomPaddingHeight ( viewport ) ) . toBe ( initialBottomHeight - scrollSettings . itemHeight ) ;
62
+ var initialBottomHeight = getBottomPaddingHeight ( viewport ) ;
63
+ removeLastItem ( ) ;
64
+ scope . adapter . applyUpdates ( itemsCount , [ ] ) ;
65
+ expect ( getBottomPaddingHeight ( viewport ) ) . toBe ( initialBottomHeight - itemHeight ) ;
44
66
67
+ scrollBottom ( viewport , 2 ) ;
68
+ expect ( viewport . scrollTop ( ) ) . toBe ( itemsCount * itemHeight - viewportHeight - itemHeight ) ;
45
69
}
46
70
) ;
47
71
} ) ;
48
72
49
- it ( 'should delete first when row out of buffer' , function ( ) {
73
+ it ( 'should delete first row when out of buffer' , function ( ) {
74
+ var removeFirstItem ;
75
+ inject ( function ( myResponsiveDatasource ) {
76
+ var datasource = myResponsiveDatasource ;
77
+ removeFirstItem = function ( ) {
78
+ datasource . data . shift ( ) ;
79
+ datasource . min ++ ;
80
+ } ;
81
+ } ) ;
50
82
runTest ( scrollSettings ,
51
83
function ( viewport , scope ) {
52
84
53
- viewport . scrollTop ( 1000 ) ;
54
- viewport . trigger ( 'scroll' ) ;
55
- viewport . scrollTop ( 1000 ) ;
56
- viewport . trigger ( 'scroll' ) ;
85
+ scrollBottom ( viewport , 2 ) ;
57
86
58
- // expect(getTopPaddingHeight(viewport)).toBe(initialBottomHeight);
59
- // scope.adapter.applyUpdates(1, []);
60
- // expect(getTopPaddingHeight(viewport)).toBe(initialBottomHeight - scrollSettings.itemHeight);
87
+ var initialTopHeight = getTopPaddingHeight ( viewport ) ;
88
+ removeFirstItem ( ) ;
89
+ scope . adapter . applyUpdates ( 1 , [ ] ) ;
90
+ expect ( getTopPaddingHeight ( viewport ) ) . toBe ( initialTopHeight - itemHeight ) ;
61
91
92
+ scrollTop ( viewport ) ;
93
+ expect ( getTopPaddingHeight ( viewport ) ) . toBe ( 0 ) ;
62
94
}
63
95
) ;
64
96
} ) ;
0 commit comments