diff --git a/lib/individualCommands.js b/lib/individualCommands.js index 188372eea2..572228fe78 100644 --- a/lib/individualCommands.js +++ b/lib/individualCommands.js @@ -37,14 +37,14 @@ RedisClient.prototype.select = RedisClient.prototype.SELECT = function select (d RedisClient.prototype.info = RedisClient.prototype.INFO = function info (section, callback) { var self = this; var ready = this.ready; + var args = []; if (typeof section === 'function') { callback = section; - section = 'default'; - } else if (section === undefined) { - section = 'default'; + } else if (section !== undefined) { + args = Array.isArray(section) ? section : [section]; } this.ready = ready || this.offline_queue.length === 0; // keep the execution order intakt - var tmp = this.send_command('info', [section], function (err, res) { + var tmp = this.send_command('info', args, function (err, res) { if (res) { var obj = {}; var lines = res.toString().split('\r\n'); diff --git a/test/commands/info.spec.js b/test/commands/info.spec.js index bb628a757b..ca4ec70080 100644 --- a/test/commands/info.spec.js +++ b/test/commands/info.spec.js @@ -12,14 +12,14 @@ describe("The 'info' method", function () { describe("using " + parser + " and " + ip, function () { var client; - before(function (done) { + beforeEach(function (done) { client = redis.createClient.apply(null, args); client.once("ready", function () { client.flushall(done); }); }); - after(function () { + afterEach(function () { client.end(true); }); @@ -41,9 +41,10 @@ describe("The 'info' method", function () { client.set('foo', 'bar'); client.info('keyspace'); client.select(2, function () { - assert.strictEqual(Object.keys(client.server_info).length, 3, 'Key length should be three'); - assert(typeof client.server_info.db2 === 'object', 'db2 keyspace should be an object'); + assert.strictEqual(Object.keys(client.server_info).length, 2, 'Key length should be three'); + assert.strictEqual(typeof client.server_info.db0, 'object', 'db0 keyspace should be an object'); }); + client.info(['keyspace']); client.set('foo', 'bar'); client.info('all', function (err, res) { assert(Object.keys(client.server_info).length > 3, 'Key length should be way above three'); @@ -53,6 +54,17 @@ describe("The 'info' method", function () { }); }); + it('check redis v.2.4 support', function (done) { + var end = helper.callFuncAfter(done, 2); + client.send_command = function (command, args, callback) { + assert.strictEqual(args.length, 0); + assert.strictEqual(command, 'info'); + end(); + }; + client.info(); + client.info(function () {}); + }); + it("emit error after a failure", function (done) { client.info(); client.once('error', function (err) {