1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-06 02:15:48 +03:00

Add jshint and fix errors accordingly (including broken tests)

This commit is contained in:
Ruben Bridgewater
2015-09-01 21:37:24 +02:00
parent f7ac0e5e32
commit 06c5f1922b
69 changed files with 290 additions and 182 deletions

1
.gitignore vendored
View File

@@ -2,3 +2,4 @@ node_modules
.tern-port .tern-port
.nyc_output .nyc_output
coverage coverage
npm-debug.log

24
.jshintrc Normal file
View File

@@ -0,0 +1,24 @@
{
"eqeqeq": true, // Prohibits the use of == and != in favor of === and !==
"noarg": true, // Prohibit use of `arguments.caller` and `arguments.callee`
"undef": true, // Require all non-global variables be declared before they are used.
"unused": "vars", // Warn unused variables, but not unused params
"strict": true, // Require `use strict` pragma in every file.
"nonbsp": true, // don't allow non utf-8 pages to break
"forin": true, // don't allow not filtert for in loops
"freeze": true, // prohibit overwriting prototypes of native objects
"nonew": true, // prohibit use of constructors with new when not assigning to a variable
"maxdepth": 6,
"latedef": true,
"maxparams": 5,
// Environment options
"node": true, // Enable globals available when code is running inside of the NodeJS runtime environment.
"mocha": true,
"overrides": {
"examples/*.js": {
"unused": false
}
}
}

View File

@@ -1,8 +1,7 @@
'use strict'; 'use strict';
var client = require('../index').createClient() var client = require('../index').createClient();
, client2 = require('../index').createClient() var client2 = require('../index').createClient();
, assert = require('assert');
client.once('subscribe', function (channel, count) { client.once('subscribe', function (channel, count) {
client.unsubscribe('x'); client.unsubscribe('x');

View File

@@ -3,8 +3,8 @@
var freemem = require('os').freemem; var freemem = require('os').freemem;
var profiler = require('v8-profiler'); var profiler = require('v8-profiler');
var codec = require('../codec'); var codec = require('../codec');
var sent = 0; var sent = 0;
var exec;
var pub = require('redis').createClient(null, null, { var pub = require('redis').createClient(null, null, {
//command_queue_high_water: 5, //command_queue_high_water: 5,

View File

@@ -6,12 +6,11 @@ var codec = require('../codec');
var id = Math.random(); var id = Math.random();
var recv = 0; var recv = 0;
var sub = require('redis').createClient() require('redis').createClient()
.on('ready', function() { .on('ready', function() {
this.subscribe('timeline'); this.subscribe('timeline');
}) })
.on('message', function(channel, message) { .on('message', function(channel, message) {
var self = this;
if (message) { if (message) {
message = codec.decode(message); message = codec.decode(message);
++recv; ++recv;

View File

@@ -6,6 +6,8 @@ var codec = require('../codec');
var sent = 0; var sent = 0;
var exec;
var pub = require('redis').createClient(null, null, { var pub = require('redis').createClient(null, null, {
//command_queue_high_water: 5, //command_queue_high_water: 5,
//command_queue_low_water: 1 //command_queue_low_water: 1

View File

@@ -7,7 +7,8 @@ var id = Math.random();
var recv = 0; var recv = 0;
var cmd = require('redis').createClient(); var cmd = require('redis').createClient();
var sub = require('redis').createClient()
require('redis').createClient()
.on('ready', function() { .on('ready', function() {
this.emit('timeline'); this.emit('timeline');
}) })

View File

@@ -16,6 +16,40 @@ var codec = {
var obj, l; var obj, l;
function run(obj, codec) {
var t1 = Date.now();
var n = 10000;
for (var i = 0; i < n; ++i) {
codec.decode(l = codec.encode(obj));
}
var t2 = Date.now();
//console.log('DONE', n*1000/(t2-t1), 'codecs/sec, length=', l.length);
return [n*1000/(t2-t1), l.length];
}
function series(obj, cname, n) {
var rate = 0;
var len = 0;
for (var i = 0; i < n; ++i) {
var r = run(obj, codec[cname]);
rate += r[0];
len += r[1];
}
rate /= n;
len /= n;
console.log(cname + ' ' + rate + ' ' + len);
return [rate, len];
}
function forObj(obj) {
var r = {
JSON: series(obj, 'JSON', 20),
msgpack: series(obj, 'msgpack', 20),
bison: series(obj, 'bison', 20)
};
return r;
}
var s = '0'; var s = '0';
for (var i = 0; i < 12; ++i) s += s; for (var i = 0; i < 12; ++i) s += s;
@@ -50,37 +84,3 @@ obj = {
rand: [] rand: []
}; };
forObj(obj); forObj(obj);
function run(obj, codec) {
var t1 = Date.now();
var n = 10000;
for (var i = 0; i < n; ++i) {
codec.decode(l = codec.encode(obj));
}
var t2 = Date.now();
//console.log('DONE', n*1000/(t2-t1), 'codecs/sec, length=', l.length);
return [n*1000/(t2-t1), l.length];
}
function series(obj, cname, n) {
var rate = 0;
var len = 0;
for (var i = 0; i < n; ++i) {
var r = run(obj, codec[cname]);
rate += r[0];
len += r[1];
}
rate /= n;
len /= n;
console.log(cname + ' ' + rate + ' ' + len);
return [rate, len];
}
function forObj(obj) {
var r = {
JSON: series(obj, 'JSON', 20),
msgpack: series(obj, 'msgpack', 20),
bison: series(obj, 'bison', 20)
};
return r;
}

View File

@@ -42,8 +42,6 @@ server.listen(6479);
var redis = require('./'); var redis = require('./');
var port = 6479;
var client = redis.createClient(6479, 'localhost'); var client = redis.createClient(6479, 'localhost');
function iter() { function iter() {

View File

@@ -2,9 +2,9 @@
'use strict'; 'use strict';
var colors = require('colors'), /* jshint -W079: Ignore redefinitions (before & after) */
fs = require('fs'),
_ = require('underscore'), var fs = require('fs'),
metrics = require('metrics'), metrics = require('metrics'),
// `node diff_multi_bench_output.js before.txt after.txt` // `node diff_multi_bench_output.js before.txt after.txt`
@@ -30,6 +30,28 @@ console.log('Comparing before,', before.green, '(', before_lines.length,
var total_ops = new metrics.Histogram.createUniformHistogram(); var total_ops = new metrics.Histogram.createUniformHistogram();
function is_whitespace(s) {
return !!s.trim();
}
function parseInt10(s) {
return parseInt(s, 10);
}
// green if greater than 0, red otherwise
function humanize_diff(num, unit) {
unit = unit || "";
if (num > 0) {
return ('+' + num + unit).green;
}
return ('' + num + unit).red;
}
function command_name(words) {
var line = words.join(' ');
return line.substr(0, line.indexOf(','));
}
before_lines.forEach(function(b, i) { before_lines.forEach(function(b, i) {
var a = after_lines[i]; var a = after_lines[i];
if (!a || !b || !b.trim() || !a.trim()) { if (!a || !b || !b.trim() || !a.trim()) {
@@ -60,33 +82,11 @@ before_lines.forEach(function(b, i) {
pct = humanize_diff(pct, '%'); pct = humanize_diff(pct, '%');
console.log( console.log(
// name of test // name of test
command_name(a_words) === command_name(b_words) command_name(a_words) === command_name(b_words) ?
? command_name(a_words) + ':' command_name(a_words) + ':' :
: '404:', '404:',
// results of test // results of test
ops.join(' -> '), 'ops/sec (∆', delta, pct, ')'); ops.join(' -> '), 'ops/sec (∆', delta, pct, ')');
}); });
console.log('Mean difference in ops/sec:', humanize_diff(total_ops.mean().toPrecision(6))); console.log('Mean difference in ops/sec:', humanize_diff(total_ops.mean().toPrecision(6)));
function is_whitespace(s) {
return !!s.trim();
}
function parseInt10(s) {
return parseInt(s, 10);
}
// green if greater than 0, red otherwise
function humanize_diff(num, unit) {
unit = unit || "";
if (num > 0) {
return ('+' + num + unit).green;
}
return ('' + num + unit).red;
}
function command_name(words) {
var line = words.join(' ');
return line.substr(0, line.indexOf(','));
}

View File

@@ -27,5 +27,5 @@ function done() {
setTimeout(function () { setTimeout(function () {
console.log("Taking snapshot."); console.log("Taking snapshot.");
var snap = profiler.takeSnapshot(); profiler.takeSnapshot();
}, 5000); }, 5000);

View File

@@ -1,7 +1,5 @@
'use strict'; 'use strict';
/*global Buffer require exports console setTimeout */
var net = require("net"), var net = require("net"),
URL = require("url"), URL = require("url"),
util = require("util"), util = require("util"),
@@ -616,7 +614,7 @@ RedisClient.prototype.return_reply = function (reply) {
type = reply[0].toString(); type = reply[0].toString();
} }
if (this.pub_sub_mode && (type == 'message' || type == 'pmessage')) { if (this.pub_sub_mode && (type === 'message' || type === 'pmessage')) {
debug("received pubsub message"); debug("received pubsub message");
} }
else { else {
@@ -1172,30 +1170,6 @@ RedisClient.prototype.eval = RedisClient.prototype.EVAL = function () {
}); });
}; };
exports.createClient = function(port_arg, host_arg, options) {
if (typeof port_arg === 'object' || port_arg === undefined) {
options = port_arg || options;
return createClient_tcp(default_port, default_host, options);
}
if (typeof port_arg === 'number' || typeof port_arg === 'string' && /^\d+$/.test(port_arg)) {
return createClient_tcp(port_arg, host_arg, options);
}
if (typeof port_arg === 'string') {
options = host_arg || {};
var parsed = URL.parse(port_arg, true, true);
if (parsed.hostname) {
if (parsed.auth) {
options.auth_pass = parsed.auth.split(':')[1];
}
return createClient_tcp(parsed.port, parsed.hostname, options);
}
return createClient_unix(port_arg, options);
}
throw new Error('unknown type of connection in createClient()');
};
var createClient_unix = function(path, options){ var createClient_unix = function(path, options){
var cnxOptions = { var cnxOptions = {
path: path path: path
@@ -1224,6 +1198,30 @@ var createClient_tcp = function (port_arg, host_arg, options) {
return redis_client; return redis_client;
}; };
exports.createClient = function(port_arg, host_arg, options) {
if (typeof port_arg === 'object' || port_arg === undefined) {
options = port_arg || options;
return createClient_tcp(default_port, default_host, options);
}
if (typeof port_arg === 'number' || typeof port_arg === 'string' && /^\d+$/.test(port_arg)) {
return createClient_tcp(port_arg, host_arg, options);
}
if (typeof port_arg === 'string') {
options = host_arg || {};
var parsed = URL.parse(port_arg, true, true);
if (parsed.hostname) {
if (parsed.auth) {
options.auth_pass = parsed.auth.split(':')[1];
}
return createClient_tcp(parsed.port, parsed.hostname, options);
}
return createClient_unix(port_arg, options);
}
throw new Error('unknown type of connection in createClient()');
};
exports.print = function (err, reply) { exports.print = function (err, reply) {
if (err) { if (err) {
console.log("Error: " + err); console.log("Error: " + err);

View File

@@ -11,13 +11,15 @@
"main": "./index.js", "main": "./index.js",
"scripts": { "scripts": {
"coverage": "nyc report --reporter=text-lcov | coveralls", "coverage": "nyc report --reporter=text-lcov | coveralls",
"test": "nyc ./node_modules/.bin/_mocha ./test/*.js ./test/commands/*.js ./test/parser/*.js --timeout=8000" "test": "nyc ./node_modules/.bin/_mocha ./test/*.js ./test/commands/*.js ./test/parser/*.js --timeout=8000",
"jshint": "./node_modules/.bin/jshint *.js **/*.js **/**/*.js --exclude=node_modules/**/*"
}, },
"devDependencies": { "devDependencies": {
"async": "^1.3.0", "async": "^1.3.0",
"colors": "~0.6.0-1", "colors": "~0.6.0-1",
"coveralls": "^2.11.2", "coveralls": "^2.11.2",
"hiredis": "^0.4.1", "hiredis": "^0.4.1",
"jshint": "^2.8.0",
"metrics": ">=0.1.5", "metrics": ">=0.1.5",
"mocha": "^2.2.5", "mocha": "^2.2.5",
"nyc": "^3.0.0", "nyc": "^3.0.0",

View File

@@ -1,7 +1,8 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("./lib/config"); var config = require("./lib/config");
var helper = require('./helper') var helper = require('./helper');
var path = require('path');
var redis = config.redis; var redis = config.redis;
describe("client authentication", function () { describe("client authentication", function () {

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,4 +1,5 @@
var async = require('async'); 'use strict';
var assert = require('assert'); var assert = require('assert');
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require('../helper'); var helper = require('../helper');

View File

@@ -1,4 +1,5 @@
var assert = require("assert"); 'use strict';
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
var redis = config.redis; var redis = config.redis;

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var crypto = require("crypto"); var crypto = require("crypto");

View File

@@ -1,4 +1,5 @@
var assert = require("assert"); 'use strict';
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
var redis = config.redis; var redis = config.redis;

View File

@@ -1,4 +1,5 @@
var assert = require("assert"); 'use strict';
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
var redis = config.redis; var redis = config.redis;

View File

@@ -1,3 +1,5 @@
'use strict';
var async = require('async'); var async = require('async');
var assert = require('assert'); var assert = require('assert');
var config = require("../lib/config"); var config = require("../lib/config");

View File

@@ -1,4 +1,5 @@
var async = require('async'); 'use strict';
var assert = require('assert'); var assert = require('assert');
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require('../helper'); var helper = require('../helper');

View File

@@ -1,4 +1,5 @@
var async = require('async'); 'use strict';
var assert = require('assert'); var assert = require('assert');
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require('../helper'); var helper = require('../helper');

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,4 +1,5 @@
var assert = require("assert"); 'use strict';
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
var redis = config.redis; var redis = config.redis;

View File

@@ -1,4 +1,5 @@
var assert = require("assert"); 'use strict';
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
var redis = config.redis; var redis = config.redis;

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
@@ -58,7 +60,7 @@ describe("The 'hmset' method", function () {
client.HMSET(hash, 99, 'banana', 'test', 25); client.HMSET(hash, 99, 'banana', 'test', 25);
client.HGETALL(hash, function (err, obj) { client.HGETALL(hash, function (err, obj) {
assert.equal(obj['99'], 'banana'); assert.equal(obj['99'], 'banana');
assert.equal(obj['test'], '25'); assert.equal(obj.test, '25');
return done(err); return done(err);
}); });
}); });
@@ -67,7 +69,7 @@ describe("The 'hmset' method", function () {
client.HMSET([hash, 99, 'banana', 'test', 25]); client.HMSET([hash, 99, 'banana', 'test', 25]);
client.HGETALL(hash, function (err, obj) { client.HGETALL(hash, function (err, obj) {
assert.equal(obj['99'], 'banana'); assert.equal(obj['99'], 'banana');
assert.equal(obj['test'], '25'); assert.equal(obj.test, '25');
return done(err); return done(err);
}); });
}); });
@@ -76,7 +78,7 @@ describe("The 'hmset' method", function () {
client.HMSET([hash, 99, 'banana', 'test', 25], helper.isString('OK')); client.HMSET([hash, 99, 'banana', 'test', 25], helper.isString('OK'));
client.HGETALL(hash, function (err, obj) { client.HGETALL(hash, function (err, obj) {
assert.equal(obj['99'], 'banana'); assert.equal(obj['99'], 'banana');
assert.equal(obj['test'], '25'); assert.equal(obj.test, '25');
return done(err); return done(err);
}); });
}); });
@@ -87,7 +89,7 @@ describe("The 'hmset' method", function () {
assert.equal(obj['0123456789'], 'abcdefghij'); assert.equal(obj['0123456789'], 'abcdefghij');
assert.equal(obj['some manner of key'], 'a type of value'); assert.equal(obj['some manner of key'], 'a type of value');
return done(err); return done(err);
}) });
}); });
afterEach(function () { afterEach(function () {

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,9 +1,9 @@
var async = require('async'); 'use strict';
var assert = require('assert'); var assert = require('assert');
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require('../helper'); var helper = require('../helper');
var redis = config.redis; var redis = config.redis;
var uuid = require('uuid');
describe("The 'incr' method", function () { describe("The 'incr' method", function () {

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var crypto = require("crypto"); var crypto = require("crypto");

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,4 +1,5 @@
var async = require('async'); 'use strict';
var assert = require('assert'); var assert = require('assert');
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require('../helper'); var helper = require('../helper');

View File

@@ -1,4 +1,5 @@
var assert = require("assert"); 'use strict';
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
var redis = config.redis; var redis = config.redis;

View File

@@ -1,4 +1,5 @@
var async = require('async'); 'use strict';
var assert = require('assert'); var assert = require('assert');
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require('../helper'); var helper = require('../helper');
@@ -58,7 +59,7 @@ describe("The 'multi' method", function () {
}); });
it('roles back a transaction when one command in a sequence of commands fails', function (done) { it('roles back a transaction when one command in a sequence of commands fails', function (done) {
var name = "MULTI_1", multi1, multi2; var multi1, multi2;
// Provoke an error at queue time // Provoke an error at queue time
multi1 = client.multi(); multi1 = client.multi();
@@ -91,7 +92,7 @@ describe("The 'multi' method", function () {
// I'm unclear as to the difference between this test in the test above, // I'm unclear as to the difference between this test in the test above,
// perhaps @mranney can clarify? // perhaps @mranney can clarify?
it('roles back a transaction when an error was provoked at queue time', function (done) { it('roles back a transaction when an error was provoked at queue time', function (done) {
multi1 = client.multi(); var multi1 = client.multi();
multi1.mset("multifoo_8", "10", "multibar_8", "20", helper.isString("OK")); multi1.mset("multifoo_8", "10", "multibar_8", "20", helper.isString("OK"));
multi1.set("foo2", helper.isError()); multi1.set("foo2", helper.isError());
multi1.set("foo3", helper.isError()); multi1.set("foo3", helper.isError());
@@ -108,7 +109,7 @@ describe("The 'multi' method", function () {
} }
// Confirm that the previous command, while containing an error, still worked. // Confirm that the previous command, while containing an error, still worked.
multi2 = client.multi(); var multi2 = client.multi();
multi2.incr("multibar_8", helper.isNumber(multibar_expected)); multi2.incr("multibar_8", helper.isNumber(multibar_expected));
multi2.incr("multifoo_8", helper.isNumber(multifoo_expected)); multi2.incr("multifoo_8", helper.isNumber(multifoo_expected));
multi2.exec(function (err, replies) { multi2.exec(function (err, replies) {

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,4 +1,5 @@
var assert = require("assert"); 'use strict';
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
var redis = config.redis; var redis = config.redis;

View File

@@ -1,4 +1,5 @@
var assert = require("assert"); 'use strict';
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
var redis = config.redis; var redis = config.redis;

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,4 +1,5 @@
var assert = require("assert"); 'use strict';
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
var redis = config.redis; var redis = config.redis;

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var crypto = require("crypto"); var crypto = require("crypto");

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,4 +1,5 @@
var async = require('async'); 'use strict';
var assert = require('assert'); var assert = require('assert');
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require('../helper'); var helper = require('../helper');

View File

@@ -1,4 +1,5 @@
var async = require('async'); 'use strict';
var assert = require('assert'); var assert = require('assert');
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require('../helper'); var helper = require('../helper');

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,4 +1,5 @@
var assert = require("assert"); 'use strict';
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
var redis = config.redis; var redis = config.redis;

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,4 +1,5 @@
var assert = require("assert"); 'use strict';
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
var redis = config.redis; var redis = config.redis;

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,4 +1,5 @@
var assert = require("assert"); 'use strict';
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
var redis = config.redis; var redis = config.redis;

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");

View File

@@ -1,4 +1,5 @@
var assert = require("assert"); 'use strict';
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
var redis = config.redis; var redis = config.redis;

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("../lib/config"); var config = require("../lib/config");
var helper = require("../helper"); var helper = require("../helper");
@@ -33,7 +35,7 @@ describe("The 'watch' method", function () {
it('does not execute transaction if watched key was modified prior to execution', function (done) { it('does not execute transaction if watched key was modified prior to execution', function (done) {
client.watch(watched); client.watch(watched);
client.incr(watched); client.incr(watched);
multi = client.multi(); var multi = client.multi();
multi.incr(watched); multi.incr(watched);
multi.exec(helper.isNull(done)); multi.exec(helper.isNull(done));
}) })
@@ -45,17 +47,15 @@ describe("The 'watch' method", function () {
client.watch(watched); client.watch(watched);
client.incr(watched); client.incr(watched);
var multi = client.multi() client.multi().incr(watched).exec(function (err, replies) {
.incr(watched) assert.strictEqual(replies, null, "Aborted transaction multi-bulk reply should be null.");
.exec(function (err, replies) {
assert.strictEqual(replies, null, "Aborted transaction multi-bulk reply should be null.");
client.get("unwatched", function (err, reply) { client.get("unwatched", function (err, reply) {
assert.equal(reply, 200, "Expected 200, got " + reply); assert.equal(reply, 200, "Expected 200, got " + reply);
return done(err) return done(err);
}); });
}); });
}) });
}); });
}); });
}); });

View File

@@ -1,9 +1,18 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var path = require('path'); var path = require('path');
var config = require("./lib/config"); var config = require("./lib/config");
var RedisProcess = require("./lib/redis-process"); var RedisProcess = require("./lib/redis-process");
var rp; var rp;
function startRedis (conf, done) {
RedisProcess.start(function (err, _rp) {
rp = _rp;
return done(err);
}, path.resolve(__dirname, conf));
}
// don't start redis every time we // don't start redis every time we
// include this helper file! // include this helper file!
if (!process.env.REDIS_TESTS_STARTED) { if (!process.env.REDIS_TESTS_STARTED) {
@@ -108,11 +117,4 @@ module.exports = {
process.removeListener('uncaughtException', mochaListener); process.removeListener('uncaughtException', mochaListener);
return mochaListener; return mochaListener;
} }
} };
function startRedis (conf, done) {
RedisProcess.start(function (err, _rp) {
rp = _rp;
return done(err);
}, path.resolve(__dirname, conf));
}

View File

@@ -1,3 +1,5 @@
'use strict';
// helpers for configuring a redis client in // helpers for configuring a redis client in
// its various modes, ipV6, ipV4, socket. // its various modes, ipV6, ipV4, socket.
var redis = require('../../index'); var redis = require('../../index');

View File

@@ -1,3 +1,5 @@
'use strict';
// helper to start and stop the redis process. // helper to start and stop the redis process.
var cp = require('child_process'); var cp = require('child_process');
var config = require('./config'); var config = require('./config');
@@ -5,6 +7,26 @@ var fs = require('fs');
var path = require('path'); var path = require('path');
var tcpPortUsed = require('tcp-port-used'); var tcpPortUsed = require('tcp-port-used');
// wait for redis to be listening in
// all three modes (ipv4, ipv6, socket).
function waitForRedis (available, cb) {
var ipV4 = false;
var id = setInterval(function () {
tcpPortUsed.check(config.PORT, '127.0.0.1')
.then(function (_ipV4) {
ipV4 = _ipV4;
return tcpPortUsed.check(config.PORT, '::1');
})
.then(function (ipV6) {
if (ipV6 === available && ipV4 === available &&
fs.existsSync('/tmp/redis.sock') === available) {
clearInterval(id);
return cb();
}
});
}, 100);
}
module.exports = { module.exports = {
start: function (done, conf) { start: function (done, conf) {
// spawn redis with our testing configuration. // spawn redis with our testing configuration.
@@ -18,9 +40,9 @@ module.exports = {
console.error('failed to starting redis with exit code "' + code + '" ' + console.error('failed to starting redis with exit code "' + code + '" ' +
'stop any other redis processes currently running (' + 'stop any other redis processes currently running (' +
'hint: lsof -i :6379)'); 'hint: lsof -i :6379)');
process.exit(code) process.exit(code);
} }
}) });
// wait for redis to become available, by // wait for redis to become available, by
// checking the port we bind on. // checking the port we bind on.
@@ -44,23 +66,3 @@ module.exports = {
}); });
} }
}; };
// wait for redis to be listening in
// all three modes (ipv4, ipv6, socket).
function waitForRedis (available, cb) {
var ipV4 = false;
var id = setInterval(function () {
tcpPortUsed.check(config.PORT, '127.0.0.1')
.then(function (_ipV4) {
ipV4 = _ipV4;
return tcpPortUsed.check(config.PORT, '::1');
})
.then(function (ipV6) {
if (ipV6 === available && ipV4 === available &&
fs.existsSync('/tmp/redis.sock') === available) {
clearInterval(id);
return cb();
}
});
}, 100);
}

View File

@@ -1,3 +1,5 @@
'use strict';
var async = require("async"); var async = require("async");
var assert = require("assert"); var assert = require("assert");
var config = require("./lib/config"); var config = require("./lib/config");
@@ -249,7 +251,7 @@ describe("The node_redis client", function () {
try { try {
domain = require('domain').create(); domain = require('domain').create();
} catch (err) { } catch (err) {
console.log("Skipping " + name + " because this version of node doesn't have domains."); console.log("Skipping test because this version of node doesn't have domains.");
return done(); return done();
} }
@@ -257,7 +259,7 @@ describe("The node_redis client", function () {
domain.run(function () { domain.run(function () {
client.set('domain', 'value', function (err, res) { client.set('domain', 'value', function (err, res) {
assert.ok(process.domain); assert.ok(process.domain);
var notFound = res.not.existing.thing; // ohhh nooooo throw new Error('ohhhh noooo');
}); });
}); });
@@ -316,7 +318,7 @@ describe("The node_redis client", function () {
}); });
client2.on("message", function (channel, data) { client2.on("message", function (channel, data) {
if (channel == name) { if (channel === name) {
assert.equal(data, "some message"); assert.equal(data, "some message");
throw Error('forced exception'); throw Error('forced exception');
} }
@@ -736,7 +738,7 @@ describe("The node_redis client", function () {
}); });
assert.throws(function () { assert.throws(function () {
cli.set('foo', 'bar'); client.set('foo', 'bar');
}); });
assert.doesNotThrow(function () { assert.doesNotThrow(function () {

View File

@@ -1,4 +1,4 @@
/* global describe, it */ 'use strict';
var assert = require('assert'); var assert = require('assert');
var Parser = require("../../lib/parser/javascript").Parser; var Parser = require("../../lib/parser/javascript").Parser;

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var config = require("./lib/config"); var config = require("./lib/config");
var helper = require("./helper"); var helper = require("./helper");
@@ -10,10 +12,9 @@ describe("publish/subscribe", function () {
describe("using " + parser + " and " + ip, function () { describe("using " + parser + " and " + ip, function () {
var pub = null; var pub = null;
var sub = null; var sub = null;
var channel = "test channel" var channel = "test channel";
var channel2 = "test channel 2" var channel2 = "test channel 2";
var message = "test message" var message = "test message";
var hash = "test hash";
beforeEach(function (done) { beforeEach(function (done) {
var pubConnected; var pubConnected;
@@ -166,7 +167,7 @@ describe("publish/subscribe", function () {
}); });
describe('unsubscribe', function () { describe('unsubscribe', function () {
it('fires an unsubscribe event', function () { it('fires an unsubscribe event', function (done) {
sub.on("subscribe", function (chnl, count) { sub.on("subscribe", function (chnl, count) {
sub.unsubscribe(channel) sub.unsubscribe(channel)
}); });

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require("assert"); var assert = require("assert");
var Queue = require('../lib/queue'); var Queue = require('../lib/queue');