@@ -32,10 +32,6 @@ describe('redis', function() {
3232 } ,
3333 set : function ( key , value ) {
3434 fileUploaded = true ;
35- } ,
36- zadd : function ( key , score , tag ) {
37- } ,
38- zremrangebyrank : function ( ) {
3935 }
4036 } ) ) ) ;
4137
@@ -54,10 +50,6 @@ describe('redis', function() {
5450 } , new FakeRedis ( FakeClient . extend ( {
5551 set : function ( key , value ) {
5652 fileUploaded = true ;
57- } ,
58- zadd : function ( key , score , tag ) {
59- } ,
60- zremrangebyrank : function ( ) {
6153 }
6254 } ) ) ) ;
6355
@@ -77,8 +69,6 @@ describe('redis', function() {
7769 } ,
7870 zadd : function ( key , score , tag ) {
7971 recentUploads . push ( key + tag ) ;
80- } ,
81- zremrangebyrank : function ( ) {
8272 }
8373 } ) ) ) ;
8474
@@ -90,25 +80,71 @@ describe('redis', function() {
9080 } ) ;
9181 } ) ;
9282
93- it ( 'trims the list of recent uploads' , function ( ) {
94- var recentUploads = [ 'a' , 'b' , 'c' ] ;
83+ it ( 'trims the list of recent uploads and removes the index key' , function ( ) {
84+ var recentUploads = [ '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' ] ;
85+ var finalUploads = [ '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' , '12' ] ;
9586
9687 var redis = new Redis ( { } , new FakeRedis ( FakeClient . extend ( {
9788 get : function ( key ) {
9889 return Promise . resolve ( null ) ;
9990 } ,
100- zadd : function ( key , tag ) {
101- recentUploads . push ( key + tag ) ;
91+ set : function ( key , value ) {
92+ } ,
93+ zadd : function ( key , score , revisionKey ) {
94+ recentUploads . push ( revisionKey ) ;
10295 } ,
103- zremrangebyrank : function ( ) {
104- recentUploads . pop ( ) ;
96+ zrem : function ( val , revision ) {
97+ var i = recentUploads . indexOf ( revision )
98+ recentUploads . splice ( i , 1 ) ;
99+ } ,
100+ zrange : function ( ) {
101+ return recentUploads . slice ( 0 , 2 ) ;
102+ } ,
103+ del : function ( key ) {
104+ assert ( key === 'key:1' || key === 'key:2' ) ;
105105 }
106106 } ) ) ) ;
107107
108- var promise = redis . upload ( 'key' , 'value' ) ;
108+ var promise = redis . upload ( 'key' , '12' , 'value' ) ;
109+ return assert . isFulfilled ( promise )
110+ . then ( function ( ) {
111+ assert . equal ( recentUploads . length , 10 ) ;
112+ assert . deepEqual ( recentUploads , finalUploads ) ;
113+ } ) ;
114+ } ) ;
115+
116+ it ( 'trims the list of recent uploads but leaves the active one' , function ( ) {
117+ var recentUploads = [ '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' ] ;
118+ var finalUploads = [ '1' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' , '12' ] ;
119+
120+ var redis = new Redis ( { } , new FakeRedis ( FakeClient . extend ( {
121+ get : function ( key ) {
122+ if ( key == 'key:current' ) {
123+ return Promise . resolve ( '1' ) ;
124+ }
125+ return Promise . resolve ( null ) ;
126+ } ,
127+ set : function ( key , value ) {
128+ } ,
129+ zadd : function ( key , score , revisionKey ) {
130+ recentUploads . push ( revisionKey ) ;
131+ } ,
132+ zrem : function ( val , revision ) {
133+ var i = recentUploads . indexOf ( revision )
134+ recentUploads . splice ( i , 1 ) ;
135+ } ,
136+ zrange : function ( ) {
137+ return recentUploads . slice ( 0 , 2 ) ;
138+ } ,
139+ del : function ( key ) {
140+ }
141+ } ) ) ) ;
142+
143+ var promise = redis . upload ( 'key' , '12' , 'value' ) ;
109144 return assert . isFulfilled ( promise )
110145 . then ( function ( ) {
111- assert . equal ( recentUploads . length , 3 ) ;
146+ assert . equal ( recentUploads . length , 11 ) ;
147+ assert . deepEqual ( recentUploads , finalUploads ) ;
112148 } ) ;
113149 } ) ;
114150
@@ -196,8 +232,6 @@ describe('redis', function() {
196232 var redis = new Redis ( { } , new FakeRedis ( FakeClient . extend ( {
197233 zrevrange : function ( ) {
198234 return recentRevisions ;
199- } ,
200- get : function ( ) {
201235 }
202236 } ) ) ) ;
203237
0 commit comments