Skip to content

Commit 61bba36

Browse files
committed
dry stubbing of fake-redis-client
1 parent eee05fe commit 61bba36

File tree

2 files changed

+32
-58
lines changed

2 files changed

+32
-58
lines changed

tests/helpers/fake-redis-client.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,24 @@ var CoreObject = require('core-object');
22

33
module.exports = CoreObject.extend({
44
init: function (options) {
5+
this.recentRevisions = [];
56
this.options = options;
67
},
78
get: function(key) {
89
return Promise.resolve('some-other-value');
910
},
1011
set: function() { },
1112
del: function() { },
12-
zadd: function(key, score, tag) {
13+
zadd: function(key, score , tag) {
14+
this.recentRevisions.push(key + ':' + tag);
1315
},
14-
zrem: function() {
16+
zrem: function(val,revision) {
17+
var i = this.recentRevisions.indexOf(revision)
18+
this.recentRevisions.splice(i,1);
1519
},
1620
zrange: function() {
1721
},
1822
zrevrange: function() {
23+
return this.recentRevisions;
1924
}
2025
});

tests/unit/lib/redis-nodetest.js

Lines changed: 25 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -61,61 +61,47 @@ describe('redis', function() {
6161
});
6262

6363
it('updates the list of recent uploads once upload is successful', function() {
64-
var recentUploads = [];
65-
6664
var redis = new Redis({}, new FakeRedis(FakeClient.extend({
6765
get: function(key) {
6866
return Promise.resolve(null);
69-
},
70-
zadd: function(key, score , tag) {
71-
recentUploads.push(key + tag);
7267
}
7368
})));
7469

7570
var promise = redis.upload('key', 'value');
7671
return assert.isFulfilled(promise)
7772
.then(function() {
78-
assert.equal(recentUploads.length, 1);
79-
assert.equal(recentUploads[0], 'keydefault');
73+
assert.equal(redis._client.recentRevisions.length, 1);
74+
assert.equal(redis._client.recentRevisions[0], 'key:default');
8075
});
8176
});
8277

8378
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'];
79+
var finalUploads = ['3','4','5','6','7','8','9','10','11','key:12'];
8680

8781
var redis = new Redis({}, new FakeRedis(FakeClient.extend({
8882
get: function(key) {
8983
return Promise.resolve(null);
9084
},
91-
set: function(key, value) {
92-
},
93-
zadd: function(key, score, revisionKey) {
94-
recentUploads.push(revisionKey);
95-
},
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-
},
10385
del: function(key) {
10486
assert(key === 'key:1' || key === 'key:2');
87+
},
88+
zrange: function() {
89+
return this.recentRevisions.slice(0,2);
10590
}
10691
})));
10792

93+
redis._client.recentRevisions = ['1','2','3','4','5','6','7','8','9','10','11'];
94+
10895
var promise = redis.upload('key', '12', 'value');
10996
return assert.isFulfilled(promise)
11097
.then(function() {
111-
assert.equal(recentUploads.length, 10);
112-
assert.deepEqual(recentUploads, finalUploads);
98+
assert.equal(redis._client.recentRevisions.length, 10);
99+
assert.deepEqual(redis._client.recentRevisions, finalUploads);
113100
});
114101
});
115102

116103
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'];
104+
var finalUploads = ['1','3','4','5','6','7','8','9','10','11','key:12'];
119105

120106
var redis = new Redis({}, new FakeRedis(FakeClient.extend({
121107
get: function(key) {
@@ -124,27 +110,18 @@ describe('redis', function() {
124110
}
125111
return Promise.resolve(null);
126112
},
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-
},
136113
zrange: function() {
137-
return recentUploads.slice(0,2);
138-
},
139-
del: function(key) {
114+
return this.recentRevisions.slice(0,2);
140115
}
141116
})));
142117

118+
redis._client.recentRevisions = ['1','2','3','4','5','6','7','8','9','10','11'];
119+
143120
var promise = redis.upload('key', '12', 'value');
144121
return assert.isFulfilled(promise)
145122
.then(function() {
146-
assert.equal(recentUploads.length, 11);
147-
assert.deepEqual(recentUploads, finalUploads);
123+
assert.equal(redis._client.recentRevisions.length, 11);
124+
assert.deepEqual(redis._client.recentRevisions, finalUploads);
148125
});
149126
});
150127

@@ -186,14 +163,14 @@ describe('redis', function() {
186163

187164
describe('#activate', function() {
188165
it('rejects if the revisionKey doesn\t exist in list of uploaded revisions', function() {
189-
var recentRevisions = ['a', 'b', 'c'];
190-
191166
var redis = new Redis({}, new FakeRedis(FakeClient.extend({
192167
zrevrange: function() {
193-
return recentRevisions;
168+
return this.recentRevisions;
194169
}
195170
})));
196171

172+
redis._client.recentRevisions = ['a', 'b', 'c'];
173+
197174
var promise = redis.activate('key-prefix', 'revision-key');
198175
return assert.isRejected(promise)
199176
.then(function(error) {
@@ -202,20 +179,17 @@ describe('redis', function() {
202179
});
203180

204181
it('resolves and sets the current revision to the revision key provided', function() {
205-
var recentRevisions = ['a', 'b', 'c'];
206182
var redisKey, redisValue;
207183

208-
209184
var redis = new Redis({}, new FakeRedis(FakeClient.extend({
210-
zrevrange: function() {
211-
return recentRevisions;
212-
},
213185
set: function(key, value) {
214186
redisKey = key;
215187
redisValue = value;
216188
}
217189
})));
218190

191+
redis._client.recentRevisions = ['a', 'b', 'c'];
192+
219193
var promise = redis.activate('key-prefix', 'c');
220194
return assert.isFulfilled(promise)
221195
.then(function() {
@@ -227,14 +201,11 @@ describe('redis', function() {
227201

228202
describe('#fetchRevisions', function() {
229203
it('lists the last existing revisions', function() {
230-
var recentRevisions = ['a', 'b', 'c'];
231-
232204
var redis = new Redis({}, new FakeRedis(FakeClient.extend({
233-
zrevrange: function() {
234-
return recentRevisions;
235-
}
236205
})));
237206

207+
redis._client.recentRevisions = ['a', 'b', 'c'];
208+
238209
var promise = redis.fetchRevisions('key-prefix');
239210
return assert.isFulfilled(promise)
240211
.then(function(result) {
@@ -257,18 +228,16 @@ describe('redis', function() {
257228
});
258229

259230
it('lists revisions and marks the active one', function() {
260-
var recentRevisions = ['a', 'b'];
261231
var currentRevision = 'b';
262232

263233
var redis = new Redis({}, new FakeRedis(FakeClient.extend({
264-
zrevrange: function() {
265-
return recentRevisions;
266-
},
267234
get: function() {
268235
return currentRevision;
269236
}
270237
})));
271238

239+
redis._client.recentRevisions = ['a', 'b'];
240+
272241
var promise = redis.fetchRevisions('key-prefix');
273242
return assert.isFulfilled(promise)
274243
.then(function(result) {

0 commit comments

Comments
 (0)