You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-07 13:22:56 +03:00
fixes #218 by expanding last argument array only for sadd command
Also adds a test that uses SADD in caps. Nicely enough, this makes multi_bench.js run just a tiny bit faster :) Signed-off-by: DTrejo <david.trejo@voxer.com>
This commit is contained in:
11
index.js
11
index.js
@@ -676,12 +676,11 @@ RedisClient.prototype.send_command = function (command, args, callback) {
|
|||||||
throw new Error("send_command: second argument must be an array");
|
throw new Error("send_command: second argument must be an array");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the last argument is an array, expand it out. This allows commands like this:
|
// if the last argument is an array and command is sadd, expand it out:
|
||||||
// client.command(arg1, [arg2, arg3, arg4], cb);
|
// client.sadd(arg1, [arg2, arg3, arg4], cb);
|
||||||
// and converts to:
|
// converts to:
|
||||||
// client.command(arg1, arg2, arg3, arg4, cb);
|
// client.sadd(arg1, arg2, arg3, arg4, cb);
|
||||||
// which is convenient for some things like sadd
|
if ((command === 'sadd' || command === 'SADD') && args.length > 0 && Array.isArray(args[args.length - 1])) {
|
||||||
if (args.length > 0 && Array.isArray(args[args.length - 1])) {
|
|
||||||
args = args.slice(0, -1).concat(args[args.length - 1]);
|
args = args.slice(0, -1).concat(args[args.length - 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
9
test.js
9
test.js
@@ -905,7 +905,7 @@ tests.SADD = function () {
|
|||||||
var name = "SADD";
|
var name = "SADD";
|
||||||
|
|
||||||
client.del('set0');
|
client.del('set0');
|
||||||
client.sadd('set0', 'member0', require_number(1, name));
|
client.SADD('set0', 'member0', require_number(1, name));
|
||||||
client.sadd('set0', 'member0', last(name, require_number(0, name)));
|
client.sadd('set0', 'member0', last(name, require_number(0, name)));
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -919,6 +919,13 @@ tests.SADD2 = function () {
|
|||||||
assert.strictEqual(res[0], "member0");
|
assert.strictEqual(res[0], "member0");
|
||||||
assert.strictEqual(res[1], "member1");
|
assert.strictEqual(res[1], "member1");
|
||||||
assert.strictEqual(res[2], "member2");
|
assert.strictEqual(res[2], "member2");
|
||||||
|
});
|
||||||
|
client.SADD("set1", ["member0", "member1", "member2"], require_number(3, name));
|
||||||
|
client.smembers("set1", function (err, res) {
|
||||||
|
assert.strictEqual(res.length, 3);
|
||||||
|
assert.strictEqual(res[0], "member0");
|
||||||
|
assert.strictEqual(res[1], "member1");
|
||||||
|
assert.strictEqual(res[2], "member2");
|
||||||
next(name);
|
next(name);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user