You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
var assert = require("assert");
|
|
var config = require("../lib/config");
|
|
var helper = require("../helper");
|
|
var redis = config.redis;
|
|
|
|
describe("The 'watch' method", function () {
|
|
|
|
helper.allTests(function(parser, ip, args) {
|
|
|
|
var watched = 'foobar';
|
|
|
|
describe("using " + parser + " and " + ip, function () {
|
|
var client;
|
|
|
|
beforeEach(function (done) {
|
|
client = redis.createClient.apply(redis.createClient, args);
|
|
client.once("ready", function () {
|
|
client.flushdb(done);
|
|
});
|
|
});
|
|
|
|
afterEach(function () {
|
|
client.end();
|
|
});
|
|
|
|
it('does not execute transaction if watched key was modified prior to execution', function (done) {
|
|
client.WATCH(watched);
|
|
client.incr(watched);
|
|
var multi = client.multi();
|
|
multi.incr(watched);
|
|
multi.exec(helper.isNull(done));
|
|
});
|
|
|
|
it('successfully modifies other keys independently of transaction', function (done) {
|
|
client.set("unwatched", 200);
|
|
|
|
client.set(watched, 0);
|
|
client.watch(watched);
|
|
client.incr(watched);
|
|
|
|
client.multi().incr(watched).exec(function (err, replies) {
|
|
assert.strictEqual(replies, null, "Aborted transaction multi-bulk reply should be null.");
|
|
|
|
client.get("unwatched", function (err, reply) {
|
|
assert.equal(reply, 200, "Expected 200, got " + reply);
|
|
return done(err);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|