Skip to content

Commit 9681e17

Browse files
committed
chore: use redis-mock for tests
Some issues with library, trying to resolve.
1 parent fae677f commit 9681e17

7 files changed

+42
-18
lines changed

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@
3636
"chai-as-promised": "^7.1.1",
3737
"eslint": "^5.15.1",
3838
"mocha": "^6.0.2",
39-
"nyc": "^13.3.0"
39+
"nyc": "^13.3.0",
40+
"redis-mock": "^0.43.0"
4041
},
4142
"dependencies": {
4243
"redis": "^2.8.0"

src/promisifyRedis.js

+18-12
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
const {RedisClient} = require('redis');
22

3-
Object.entries(RedisClient.prototype).filter(v => typeof v[1] === 'function').forEach(([key, func]) => {
4-
if (RedisClient.prototype['p' + key]) return;
5-
6-
RedisClient.prototype['p' + key] = function(...args) {
7-
return new Promise((resolve, reject) => {
8-
func.call(this, ...args, (err, res) => {
9-
/* istanbul ignore next */
10-
if (err) reject(err);
11-
else resolve(res);
3+
function promisifyRedisClient(proto) {
4+
Object.entries(proto).filter(v => typeof v[1] === 'function').forEach(([key, func]) => {
5+
if (proto['p' + key]) return;
6+
7+
proto['p' + key] = function(...args) {
8+
return new Promise((resolve, reject) => {
9+
func.call(this, ...args, (err, res) => {
10+
/* istanbul ignore next */
11+
if (err) reject(err);
12+
else resolve(res);
13+
});
1214
});
13-
});
14-
};
15-
});
15+
};
16+
});
17+
}
18+
19+
promisifyRedisClient(RedisClient.prototype);
20+
21+
module.exports = promisifyRedisClient;

test/ChildWrapper.test.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
const {expect, use} = require('chai');
22
const chaiAsPromised = require('chai-as-promised');
3-
const redis = require('redis');
3+
const redis = require('redis-mock');
44
const Redite = require('../');
5+
const promisifyRedisClient = require('../src/promisifyRedis');
56
const {
67
promisify,
78
DB,
@@ -12,6 +13,7 @@ const {
1213
} = require('./lib/consts');
1314

1415
use(chaiAsPromised);
16+
promisifyRedisClient(redis.RedisClient.prototype);
1517

1618
const client = redis.createClient({db: DB});
1719
const wrapper = new Redite({client});
@@ -172,9 +174,12 @@ describe('ChildWrapper', () => {
172174
});
173175
});
174176

175-
it('should edit an item in a list without overriding any parts of it', async () => {
177+
it.only('should edit an item in a list without overriding any parts of it', async () => {
178+
console.log('1');
176179
await wrapper.test[0].foo.bar.set(TestHash);
180+
console.log('2');
177181
await wrapper.test[0].foo.TestHash.set(TestVal);
182+
console.log('3');
178183
await expect(wrapper.test[0]).to.become({
179184
foo: {
180185
bar: TestHash,

test/Redite.test.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@
22

33
const {expect, use} = require('chai');
44
const chaiAsPromised = require('chai-as-promised');
5-
const redis = require('redis');
5+
const redis = require('redis-mock');
66
const Redite = require('../');
7+
const promisifyRedisClient = require('../src/promisifyRedis');
78
const {
89
promisify,
910
DB
1011
} = require('./lib/consts');
1112

1213
use(chaiAsPromised);
14+
promisifyRedisClient(redis.RedisClient.prototype);
1315

1416
const client = redis.createClient({db: DB});
1517
const wrapper = new Redite({client});

test/arrayMethods.test.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
const {expect, use} = require('chai');
22
const chaiAsPromised = require('chai-as-promised');
3-
const redis = require('redis');
3+
const redis = require('redis-mock');
44
const Redite = require('../');
5+
const promisifyRedisClient = require('../src/promisifyRedis');
56
const {
67
promisify,
78
DB,
@@ -15,6 +16,7 @@ const {
1516
} = require('./lib/consts');
1617

1718
use(chaiAsPromised);
19+
promisifyRedisClient(redis.RedisClient.prototype);
1820

1921
const client = redis.createClient({db: DB});
2022
const wrapper = new Redite({client});

test/other.test.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
const {expect, use} = require('chai');
44
const chaiAsPromised = require('chai-as-promised');
55
const redis = require('redis');
6+
const redisMock = require('redis-mock');
7+
const promisifyRedisClient = require('../src/promisifyRedis');
68
const {inspect: {custom}} = require('util');
79
const {fork} = require('child_process');
810
const Redite = require('../');
@@ -13,8 +15,9 @@ const {
1315
} = require('./lib/consts');
1416

1517
use(chaiAsPromised);
18+
promisifyRedisClient(redisMock.RedisClient.prototype);
1619

17-
const client = redis.createClient({db: DB});
20+
const client = redisMock.createClient({db: DB});
1821
const wrapper = new Redite({
1922
client,
2023
customInspection: true,

yarn.lock

+5
Original file line numberDiff line numberDiff line change
@@ -1972,6 +1972,11 @@ redis-commands@^1.2.0:
19721972
resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.4.0.tgz#52f9cf99153efcce56a8f86af986bd04e988602f"
19731973
integrity sha512-cu8EF+MtkwI4DLIT0x9P8qNTLFhQD4jLfxLR0cCNkeGzs87FN6879JOJwNQR/1zD7aSYNbU0hgsV9zGY71Itvw==
19741974

1975+
redis-mock@^0.43.0:
1976+
version "0.43.0"
1977+
resolved "https://registry.yarnpkg.com/redis-mock/-/redis-mock-0.43.0.tgz#e05bef36b75f7332d41c13828d63baf7b47bced1"
1978+
integrity sha512-ayNlCxbeaVp16U5HU220C24lFk7TEzW8hL4RE5SXv/GeKq+P4ek1QqKKbu0K2QkGRdO2bvHE2ymJ/pbBLqyUww==
1979+
19751980
redis-parser@^2.6.0:
19761981
version "2.6.0"
19771982
resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b"

0 commit comments

Comments
 (0)