Skip to content

Commit 32eedbe

Browse files
author
Ben Buckman
committed
separate redis test utils from test.js, share new test/utils.js with test and test_sentinel, move both into test subdir
1 parent 4d4da6f commit 32eedbe

File tree

4 files changed

+95
-94
lines changed

4 files changed

+95
-94
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"author": "Matt Ranney <[email protected]>",
66
"main": "./index.js",
77
"scripts": {
8-
"test": "node ./test.js"
8+
"test": "node ./test/test.js"
99
},
1010
"devDependencies": {
1111
"metrics": ">=0.1.5"

test.js renamed to test/test.js

Lines changed: 19 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -2,91 +2,44 @@
22
var PORT = 6379;
33
var HOST = '127.0.0.1';
44

5-
var redis = require("./index"),
5+
var redis = require("../index"),
66
client = redis.createClient(PORT, HOST),
77
client2 = redis.createClient(PORT, HOST),
88
client3 = redis.createClient(PORT, HOST),
99
bclient = redis.createClient(PORT, HOST, { return_buffers: true }),
1010
assert = require("assert"),
1111
crypto = require("crypto"),
12-
util = require("./lib/util"),
12+
util = require("../lib/util"),
1313
test_db_num = 15, // this DB will be flushed and used for testing
1414
tests = {},
1515
connected = false,
1616
ended = false,
17-
next, cur_start, run_next_test, all_tests, all_start, test_count;
17+
cur_start, run_next_test, all_tests, all_start, test_count;
1818

1919
// Set this to truthy to see the wire protocol and other debugging info
2020
redis.debug_mode = process.argv[2];
2121

22-
function buffers_to_strings(arr) {
23-
return arr.map(function (val) {
24-
return val.toString();
25-
});
26-
}
27-
28-
function require_number(expected, label) {
29-
return function (err, results) {
30-
assert.strictEqual(null, err, label + " expected " + expected + ", got error: " + err);
31-
assert.strictEqual(expected, results, label + " " + expected + " !== " + results);
32-
assert.strictEqual(typeof results, "number", label);
33-
return true;
34-
};
35-
}
36-
37-
function require_number_any(label) {
38-
return function (err, results) {
39-
assert.strictEqual(null, err, label + " expected any number, got error: " + err);
40-
assert.strictEqual(typeof results, "number", label + " " + results + " is not a number");
41-
return true;
42-
};
43-
}
44-
45-
function require_number_pos(label) {
46-
return function (err, results) {
47-
assert.strictEqual(null, err, label + " expected positive number, got error: " + err);
48-
assert.strictEqual(true, (results > 0), label + " " + results + " is not a positive number");
49-
return true;
50-
};
51-
}
52-
53-
function require_string(str, label) {
54-
return function (err, results) {
55-
assert.strictEqual(null, err, label + " expected string '" + str + "', got error: " + err);
56-
assert.equal(str, results, label + " " + str + " does not match " + results);
57-
return true;
58-
};
59-
}
60-
61-
function require_null(label) {
62-
return function (err, results) {
63-
assert.strictEqual(null, err, label + " expected null, got error: " + err);
64-
assert.strictEqual(null, results, label + ": " + results + " is not null");
65-
return true;
66-
};
67-
}
68-
69-
function require_error(label) {
70-
return function (err, results) {
71-
assert.notEqual(err, null, label + " err is null, but an error is expected here.");
72-
return true;
73-
};
74-
}
75-
76-
function is_empty_array(obj) {
77-
return Array.isArray(obj) && obj.length === 0;
78-
}
22+
// separated test helpers
23+
var testUtils = require('./utils'),
24+
buffers_to_strings = testUtils.buffers_to_strings,
25+
require_number = testUtils.require_number,
26+
require_number_any = testUtils.require_number_any,
27+
require_number_pos = testUtils.require_number_pos,
28+
require_string = testUtils.require_string,
29+
require_null = testUtils.require_null,
30+
require_error = testUtils.require_error,
31+
is_empty_array = testUtils.is_empty_array;
32+
33+
var next = exports.next = function next(name) {
34+
console.log(" \x1b[33m" + (Date.now() - cur_start) + "\x1b[0m ms");
35+
run_next_test();
36+
};
7937

80-
function last(name, fn) {
38+
var last = exports.last = function last(name, fn) {
8139
return function (err, results) {
8240
fn(err, results);
8341
next(name);
8442
};
85-
}
86-
87-
next = function next(name) {
88-
console.log(" \x1b[33m" + (Date.now() - cur_start) + "\x1b[0m ms");
89-
run_next_test();
9043
};
9144

9245
// Tests are run in the order they are defined, so FLUSHDB should always be first.

test_sentinel.js renamed to test/test_sentinel.js

Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,36 +10,16 @@ var PORT = 8379;
1010
var assert = require('assert');
1111

1212
// equiv to require('redis')
13-
var redis = require('./index');
13+
var redis = require('../index');
1414

1515
// don't want directly, exported via index
16-
// var Sentinel = require('./lib/sentinel');
17-
18-
// helpers adapted from test.js
19-
function require_string(str, label, callback) {
20-
return function (err, results) {
21-
assert.strictEqual(null, err, label + " expected string '" + str + "', got error: " + err);
22-
assert.equal(str, results, label + " '" + str + "' does not match '" + results + "'");
23-
if (callback) callback();
24-
return true;
25-
};
26-
}
27-
function require_error(label, callback) {
28-
return function (err, results) {
29-
assert.notEqual(err, null, label + " err is null, but an error is expected here.");
30-
if (callback) callback();
31-
return true;
32-
};
33-
}
34-
function require_number(expected, label) {
35-
return function (err, results) {
36-
assert.strictEqual(null, err, label + " expected " + expected + ", got error: " + err);
37-
assert.strictEqual(expected, results, label + " " + expected + " !== " + results);
38-
assert.strictEqual(typeof results, "number", label);
39-
return true;
40-
};
41-
}
16+
// var Sentinel = require('../lib/sentinel');
4217

18+
// test helpers exported from test.js
19+
var testUtils = require('./utils'),
20+
require_string = testUtils.require_string,
21+
require_error = testUtils.require_error,
22+
require_number = testUtils.require_number;
4323

4424

4525
function MockLogger(){
@@ -88,6 +68,7 @@ describe('RedisSentinelClient', function(){
8868
}, 2000);
8969

9070
client.on('reconnected', function(){
71+
clearTimeout(timeout);
9172
done();
9273
});
9374
});
@@ -188,6 +169,7 @@ describe('RedisSentinelClient', function(){
188169
}, 2000);
189170

190171
client.on('reconnected', function(){
172+
clearTimeout(timeout);
191173
assert.equal(this.options.host, HOST);
192174
assert.equal(this.options.port, PORT);
193175
assert.equal(this.options.fakeOption, 'Z');
@@ -208,6 +190,7 @@ describe('RedisSentinelClient', function(){
208190
}, 2000);
209191

210192
client.on('reconnected', function(){
193+
clearTimeout(timeout);
211194
assert.equal(this.options.host, HOST);
212195
assert.equal(this.options.port, PORT);
213196
assert.equal(this.options.fakeOption, 'Z');

test/utils.js

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
// test runner utils, separated from mranney's test.js.
2+
3+
var assert = require('assert');
4+
5+
exports.buffers_to_strings = function buffers_to_strings(arr) {
6+
return arr.map(function (val) {
7+
return val.toString();
8+
});
9+
};
10+
11+
exports.require_number = function require_number(expected, label, callback) {
12+
return function (err, results) {
13+
assert.strictEqual(null, err, label + " expected " + expected + ", got error: " + err);
14+
assert.strictEqual(expected, results, label + " " + expected + " !== " + results);
15+
assert.strictEqual(typeof results, "number", label);
16+
if (typeof callback === 'function') callback();
17+
return true;
18+
};
19+
};
20+
21+
exports.require_number_any = function require_number_any(label) {
22+
return function (err, results) {
23+
assert.strictEqual(null, err, label + " expected any number, got error: " + err);
24+
assert.strictEqual(typeof results, "number", label + " " + results + " is not a number");
25+
return true;
26+
};
27+
};
28+
29+
exports.require_number_pos = function require_number_pos(label) {
30+
return function (err, results) {
31+
assert.strictEqual(null, err, label + " expected positive number, got error: " + err);
32+
assert.strictEqual(true, (results > 0), label + " " + results + " is not a positive number");
33+
return true;
34+
};
35+
};
36+
37+
exports.require_string = function require_string(str, label, callback) {
38+
return function (err, results) {
39+
assert.strictEqual(null, err, label + " expected string '" + str + "', got error: " + err);
40+
assert.equal(str, results, label + " " + str + " does not match " + results);
41+
if (typeof callback === 'function') callback();
42+
return true;
43+
};
44+
};
45+
46+
exports.require_null = function require_null(label, callback) {
47+
return function (err, results) {
48+
assert.strictEqual(null, err, label + " expected null, got error: " + err);
49+
assert.strictEqual(null, results, label + ": " + results + " is not null");
50+
if (typeof callback === 'function') callback();
51+
return true;
52+
};
53+
};
54+
55+
exports.require_error = function require_error(label, callback) {
56+
return function (err, results) {
57+
assert.notEqual(err, null, label + " err is null, but an error is expected here.");
58+
if (typeof callback === 'function') callback();
59+
return true;
60+
};
61+
};
62+
63+
exports.is_empty_array = function is_empty_array(obj) {
64+
return Array.isArray(obj) && obj.length === 0;
65+
};

0 commit comments

Comments
 (0)