You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
More tests for MULTI and nested multi-bulk replies.
This commit is contained in:
151
test.js
151
test.js
@@ -89,23 +89,59 @@ tests.HSET = function () {
|
||||
client.HSET(key, field2, value2, require_number(0, name));
|
||||
};
|
||||
|
||||
tests.BLPOP = function () {
|
||||
var name = "BLPOP";
|
||||
|
||||
client.rpush("blocking list", "initial value", function (err, res) {
|
||||
client2.BLPOP("blocking list", 0, function (err, res) {
|
||||
assert.strictEqual("blocking list", res[0].toString());
|
||||
assert.strictEqual("initial value", res[1].toString());
|
||||
});
|
||||
client2.BLPOP("blocking list", 0, function (err, res) {
|
||||
assert.strictEqual("blocking list", res[0].toString());
|
||||
assert.strictEqual("wait for this value", res[1].toString());
|
||||
next(name);
|
||||
});
|
||||
tests.MULTI_1 = function () {
|
||||
var name = "MULTI_1";
|
||||
|
||||
// Provoke an error at queue time
|
||||
client.multi([
|
||||
["mset", ["multifoo", "10", "multibar", "20"], require_string("OK", name)],
|
||||
["set", ["foo2"], require_error(name)],
|
||||
["incr", ["multifoo"], require_number(11, name)],
|
||||
["incr", ["multibar"], require_number(21, name)]
|
||||
]);
|
||||
|
||||
// Confirm that the previous command, while containing an error, still worked.
|
||||
client.multi([
|
||||
["incr", ["multibar"], require_number(22, name)],
|
||||
["incr", ["multifoo"], last(name, require_number(12, name))]
|
||||
]);
|
||||
};
|
||||
|
||||
tests.MULTI_2 = function () {
|
||||
var name = "MULTI_2";
|
||||
|
||||
// test nested multi-bulk replies
|
||||
client.multi([
|
||||
["mget", ["multifoo", "multibar"], function (err, res) {
|
||||
assert.strictEqual(2, res.length, name);
|
||||
assert.strictEqual("12", res[0].toString(), name);
|
||||
assert.strictEqual("22", res[1].toString(), name);
|
||||
}],
|
||||
["set", ["foo2"], require_error(name)],
|
||||
["incr", ["multifoo"], require_number(13, name)],
|
||||
["incr", ["multibar"], require_number(23, name)]
|
||||
], function (replies) {
|
||||
next(name);
|
||||
});
|
||||
};
|
||||
|
||||
tests.MULTI_3 = function () {
|
||||
var name = "MULTI_3";
|
||||
|
||||
client.sadd("some set", "mem 1");
|
||||
client.sadd("some set", "mem 2");
|
||||
client.sadd("some set", "mem 3");
|
||||
client.sadd("some set", "mem 4");
|
||||
|
||||
// test nested multi-bulk replies with nulls.
|
||||
client.multi([
|
||||
["smembers", ["some set"]],
|
||||
["del", ["some set"]],
|
||||
["smembers", ["some set"]],
|
||||
], function (replies) {
|
||||
assert.strictEqual(replies[2][0], null, name);
|
||||
next(name);
|
||||
});
|
||||
setTimeout(function () {
|
||||
client.rpush("blocking list", "wait for this value");
|
||||
}, 500);
|
||||
};
|
||||
|
||||
tests.HMGET = function () {
|
||||
@@ -250,24 +286,6 @@ tests.DBSIZE = function () {
|
||||
client.DBSIZE([], last(name, require_number_pos("DBSIZE")));
|
||||
};
|
||||
|
||||
tests.EXPIRE = function () {
|
||||
var name = "EXPIRE";
|
||||
client.set(['expiry key', 'bar'], require_string("OK", name));
|
||||
client.EXPIRE(["expiry key", "1"], require_number_pos(name));
|
||||
setTimeout(function () {
|
||||
client.exists(["expiry key"], last(name, require_number(0, name)));
|
||||
}, 2000);
|
||||
};
|
||||
|
||||
tests.TTL = function () {
|
||||
var name = "TTL";
|
||||
client.set(["ttl key", "ttl val"], require_string("OK", name));
|
||||
client.expire(["ttl key", "100"], require_number_pos(name));
|
||||
setTimeout(function () {
|
||||
client.TTL(["ttl key"], last(name, require_number_pos(0, name)));
|
||||
}, 500);
|
||||
};
|
||||
|
||||
tests.GET = function () {
|
||||
var name = "GET";
|
||||
client.set(["get key", "get val"], require_string("OK", name));
|
||||
@@ -337,34 +355,6 @@ tests.MSETNX = function () {
|
||||
client.exists(["mset4"], last(name, require_number(1, name)));
|
||||
};
|
||||
|
||||
tests.MULTI = function () {
|
||||
var name = "MULTI";
|
||||
client.multi([
|
||||
["mset", ["multifoo", "10", "multibar", "20"], require_string("OK", name)],
|
||||
["set", ["foo2"], require_error(name)],
|
||||
["incr", ["multifoo"], require_number(11, name)],
|
||||
["incr", ["multibar"], require_number(21, name)]
|
||||
]);
|
||||
|
||||
client.multi([
|
||||
["incr", ["multibar"], require_number(22, name)],
|
||||
["incr", ["multifoo"], require_number(12, name)]
|
||||
]);
|
||||
|
||||
client.multi([
|
||||
["mget", ["multifoo", "multibar"], function (err, res) {
|
||||
assert.strictEqual(2, res.length, name);
|
||||
assert.strictEqual("12", res[0].toString(), name);
|
||||
assert.strictEqual("22", res[1].toString(), name);
|
||||
}],
|
||||
["set", ["foo2"], require_error(name)],
|
||||
["incr", ["multifoo"], require_number(13, name)],
|
||||
["incr", ["multibar"], require_number(23, name)]
|
||||
], function (reply) {
|
||||
next(name);
|
||||
});
|
||||
};
|
||||
|
||||
tests.HGETALL = function () {
|
||||
var name = "HGETALL";
|
||||
client.hmset(["hosts", "mjr", "1", "another", "23", "home", "1234"], require_string("OK", name));
|
||||
@@ -388,6 +378,43 @@ tests.HGETALL_NULL = function () {
|
||||
});
|
||||
};
|
||||
|
||||
tests.BLPOP = function () {
|
||||
var name = "BLPOP";
|
||||
|
||||
client.rpush("blocking list", "initial value", function (err, res) {
|
||||
client2.BLPOP("blocking list", 0, function (err, res) {
|
||||
assert.strictEqual("blocking list", res[0].toString());
|
||||
assert.strictEqual("initial value", res[1].toString());
|
||||
});
|
||||
client2.BLPOP("blocking list", 0, function (err, res) {
|
||||
assert.strictEqual("blocking list", res[0].toString());
|
||||
assert.strictEqual("wait for this value", res[1].toString());
|
||||
next(name);
|
||||
});
|
||||
});
|
||||
setTimeout(function () {
|
||||
client.rpush("blocking list", "wait for this value");
|
||||
}, 500);
|
||||
};
|
||||
|
||||
tests.EXPIRE = function () {
|
||||
var name = "EXPIRE";
|
||||
client.set(['expiry key', 'bar'], require_string("OK", name));
|
||||
client.EXPIRE(["expiry key", "1"], require_number_pos(name));
|
||||
setTimeout(function () {
|
||||
client.exists(["expiry key"], last(name, require_number(0, name)));
|
||||
}, 2000);
|
||||
};
|
||||
|
||||
tests.TTL = function () {
|
||||
var name = "TTL";
|
||||
client.set(["ttl key", "ttl val"], require_string("OK", name));
|
||||
client.expire(["ttl key", "100"], require_number_pos(name));
|
||||
setTimeout(function () {
|
||||
client.TTL(["ttl key"], last(name, require_number_pos(0, name)));
|
||||
}, 500);
|
||||
};
|
||||
|
||||
|
||||
var all_tests = Object.keys(tests),
|
||||
all_start = new Date(), cur_start, test_count = 0;
|
||||
|
Reference in New Issue
Block a user