From 7eaba8c10ddc419f35d5e68595b4eddfa44a943b Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Thu, 2 Jun 2016 00:52:19 +0200 Subject: [PATCH] Add tests to make sure no invalid function names get exported --- changelog.md | 6 ++++++ lib/commands.js | 3 +++ test/node_redis.spec.js | 11 ++++++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index f1563616f5..5f2b175e3d 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,12 @@ Changelog ========= +## v.2.6.1 - 02 Jun, 2016 + +Bugfixes + +- Fixed invalid function name being exported + ## v.2.6.0 - 01 Jun, 2016 In addition to the pre-releases the following changes exist in v.2.6.0: diff --git a/lib/commands.js b/lib/commands.js index a64773ebf6..6ca01df2c7 100644 --- a/lib/commands.js +++ b/lib/commands.js @@ -21,6 +21,9 @@ var changeFunctionName = (function () { // that provided a functionality to add new commands to the client commands.list.forEach(function (command) { + + // Some rare Redis commands use special characters in their command name + // Convert those to a underscore to prevent using invalid function names var commandName = command.replace(/(?:^([0-9])|[^a-zA-Z0-9_$])/g, '_$1'); // Do not override existing functions diff --git a/test/node_redis.spec.js b/test/node_redis.spec.js index 6c3376c7f3..8f4a53c11b 100644 --- a/test/node_redis.spec.js +++ b/test/node_redis.spec.js @@ -9,6 +9,7 @@ var helper = require('./helper'); var utils = require('../lib/utils'); var fork = require('child_process').fork; var redis = config.redis; +var client; describe('The node_redis client', function () { @@ -29,10 +30,18 @@ describe('The node_redis client', function () { }); }); + it('convert minus to underscore in Redis function names', function (done) { + var names = Object.keys(redis.RedisClient.prototype); + client = redis.createClient(); + for (var i = 0; i < names.length; i++) { + assert(/^([a-zA-Z_][a-zA-Z_0-9]*)?$/.test(client[names[i]].name)); + } + client.quit(done); + }); + helper.allTests(function (parser, ip, args) { describe('using ' + parser + ' and ' + ip, function () { - var client; afterEach(function () { client.end(true);