@@ -61,44 +61,67 @@ describe('redis', function() {
61
61
} ) ;
62
62
63
63
it ( 'updates the list of recent uploads once upload is successful' , function ( ) {
64
- var recentUploads = [ ] ;
64
+ var redis = new Redis ( { } , new FakeRedis ( FakeClient . extend ( {
65
+ get : function ( key ) {
66
+ return Promise . resolve ( null ) ;
67
+ }
68
+ } ) ) ) ;
69
+
70
+ var promise = redis . upload ( 'key' , 'value' ) ;
71
+ return assert . isFulfilled ( promise )
72
+ . then ( function ( ) {
73
+ assert . equal ( redis . _client . recentRevisions . length , 1 ) ;
74
+ assert . equal ( redis . _client . recentRevisions [ 0 ] , 'key:default' ) ;
75
+ } ) ;
76
+ } ) ;
77
+
78
+ it ( 'trims the list of recent uploads and removes the index key' , function ( ) {
79
+ var finalUploads = [ '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' , 'key:12' ] ;
65
80
66
81
var redis = new Redis ( { } , new FakeRedis ( FakeClient . extend ( {
67
82
get : function ( key ) {
68
83
return Promise . resolve ( null ) ;
69
84
} ,
70
- lpush : function ( key , tag ) {
71
- recentUploads . push ( key + tag ) ;
85
+ del : function ( key ) {
86
+ assert ( key === 'key:1' || key === 'key:2' ) ;
72
87
} ,
88
+ zrange : function ( ) {
89
+ return this . recentRevisions . slice ( 0 , 2 ) ;
90
+ }
73
91
} ) ) ) ;
74
92
75
- var promise = redis . upload ( 'key' , 'value' ) ;
93
+ redis . _client . recentRevisions = [ '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' ] ;
94
+
95
+ var promise = redis . upload ( 'key' , '12' , 'value' ) ;
76
96
return assert . isFulfilled ( promise )
77
97
. then ( function ( ) {
78
- assert . equal ( recentUploads . length , 1 ) ;
79
- assert . equal ( recentUploads [ 0 ] , 'keydefault' ) ;
98
+ assert . equal ( redis . _client . recentRevisions . length , 10 ) ;
99
+ assert . deepEqual ( redis . _client . recentRevisions , finalUploads ) ;
80
100
} ) ;
81
101
} ) ;
82
102
83
- it ( 'trims the list of recent uploads' , function ( ) {
84
- var recentUploads = [ 'a' , 'b' , 'c '] ;
103
+ it ( 'trims the list of recent uploads but leaves the active one ' , function ( ) {
104
+ var finalUploads = [ '1' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' , 'key:12 '] ;
85
105
86
106
var redis = new Redis ( { } , new FakeRedis ( FakeClient . extend ( {
87
107
get : function ( key ) {
108
+ if ( key == 'key:current' ) {
109
+ return Promise . resolve ( '1' ) ;
110
+ }
88
111
return Promise . resolve ( null ) ;
89
112
} ,
90
- lpush : function ( key , tag ) {
91
- recentUploads . push ( key + tag ) ;
92
- } ,
93
- ltrim : function ( ) {
94
- recentUploads . pop ( ) ;
113
+ zrange : function ( ) {
114
+ return this . recentRevisions . slice ( 0 , 2 ) ;
95
115
}
96
116
} ) ) ) ;
97
117
98
- var promise = redis . upload ( 'key' , 'value' ) ;
118
+ redis . _client . recentRevisions = [ '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' ] ;
119
+
120
+ var promise = redis . upload ( 'key' , '12' , 'value' ) ;
99
121
return assert . isFulfilled ( promise )
100
122
. then ( function ( ) {
101
- assert . equal ( recentUploads . length , 3 ) ;
123
+ assert . equal ( redis . _client . recentRevisions . length , 11 ) ;
124
+ assert . deepEqual ( redis . _client . recentRevisions , finalUploads ) ;
102
125
} ) ;
103
126
} ) ;
104
127
@@ -140,14 +163,14 @@ describe('redis', function() {
140
163
141
164
describe ( '#activate' , function ( ) {
142
165
it ( 'rejects if the revisionKey doesn\t exist in list of uploaded revisions' , function ( ) {
143
- var recentRevisions = [ 'a' , 'b' , 'c' ] ;
144
-
145
166
var redis = new Redis ( { } , new FakeRedis ( FakeClient . extend ( {
146
- lrange : function ( ) {
147
- return recentRevisions ;
167
+ zrevrange : function ( ) {
168
+ return this . recentRevisions ;
148
169
}
149
170
} ) ) ) ;
150
171
172
+ redis . _client . recentRevisions = [ 'a' , 'b' , 'c' ] ;
173
+
151
174
var promise = redis . activate ( 'key-prefix' , 'revision-key' ) ;
152
175
return assert . isRejected ( promise )
153
176
. then ( function ( error ) {
@@ -156,20 +179,17 @@ describe('redis', function() {
156
179
} ) ;
157
180
158
181
it ( 'resolves and sets the current revision to the revision key provided' , function ( ) {
159
- var recentRevisions = [ 'a' , 'b' , 'c' ] ;
160
182
var redisKey , redisValue ;
161
183
162
-
163
184
var redis = new Redis ( { } , new FakeRedis ( FakeClient . extend ( {
164
- lrange : function ( ) {
165
- return recentRevisions ;
166
- } ,
167
185
set : function ( key , value ) {
168
186
redisKey = key ;
169
187
redisValue = value ;
170
188
}
171
189
} ) ) ) ;
172
190
191
+ redis . _client . recentRevisions = [ 'a' , 'b' , 'c' ] ;
192
+
173
193
var promise = redis . activate ( 'key-prefix' , 'c' ) ;
174
194
return assert . isFulfilled ( promise )
175
195
. then ( function ( ) {
@@ -181,16 +201,11 @@ describe('redis', function() {
181
201
182
202
describe ( '#fetchRevisions' , function ( ) {
183
203
it ( 'lists the last existing revisions' , function ( ) {
184
- var recentRevisions = [ 'a' , 'b' , 'c' ] ;
185
-
186
204
var redis = new Redis ( { } , new FakeRedis ( FakeClient . extend ( {
187
- lrange : function ( ) {
188
- return recentRevisions ;
189
- } ,
190
- get : function ( ) {
191
- }
192
205
} ) ) ) ;
193
206
207
+ redis . _client . recentRevisions = [ 'a' , 'b' , 'c' ] ;
208
+
194
209
var promise = redis . fetchRevisions ( 'key-prefix' ) ;
195
210
return assert . isFulfilled ( promise )
196
211
. then ( function ( result ) {
@@ -213,18 +228,16 @@ describe('redis', function() {
213
228
} ) ;
214
229
215
230
it ( 'lists revisions and marks the active one' , function ( ) {
216
- var recentRevisions = [ 'a' , 'b' ] ;
217
231
var currentRevision = 'b' ;
218
232
219
233
var redis = new Redis ( { } , new FakeRedis ( FakeClient . extend ( {
220
- lrange : function ( ) {
221
- return recentRevisions ;
222
- } ,
223
234
get : function ( ) {
224
235
return currentRevision ;
225
236
}
226
237
} ) ) ) ;
227
238
239
+ redis . _client . recentRevisions = [ 'a' , 'b' ] ;
240
+
228
241
var promise = redis . fetchRevisions ( 'key-prefix' ) ;
229
242
return assert . isFulfilled ( promise )
230
243
. then ( function ( result ) {
0 commit comments