diff --git a/lib/connectors/StandaloneConnector.ts b/lib/connectors/StandaloneConnector.ts index c54c6854..37c3239b 100644 --- a/lib/connectors/StandaloneConnector.ts +++ b/lib/connectors/StandaloneConnector.ts @@ -4,7 +4,7 @@ import {CONNECTION_CLOSED_ERROR_MSG} from '../utils' import AbstractConnector, {ErrorEmitter} from './AbstractConnector' export function isIIpcConnectionOptions (value: any): value is IIpcConnectionOptions { - return value.hasOwnProperty('path') + return value.path } export interface ITcpConnectionOptions extends TcpNetConnectOpts { @@ -30,17 +30,22 @@ export default class StandaloneConnector extends AbstractConnector { path: options.path } } else { - connectionOptions = { - port: options.port, - host: options.host, - family: options.family + connectionOptions = {} + if (options.port != null) { + connectionOptions.port = options.port + } + if (options.host != null) { + connectionOptions.host = options.host + } + if (options.family != null) { + connectionOptions.family = options.family } } if (options.tls) { Object.assign(connectionOptions, options.tls) } - + process.nextTick(() => { if (!this.connecting) { callback(new Error(CONNECTION_CLOSED_ERROR_MSG)) @@ -63,4 +68,4 @@ export default class StandaloneConnector extends AbstractConnector { callback(null, stream) }) } -} \ No newline at end of file +} diff --git a/test/unit/connectors/connector.js b/test/unit/connectors/connector.js index d5c107ea..404fcc76 100644 --- a/test/unit/connectors/connector.js +++ b/test/unit/connectors/connector.js @@ -10,7 +10,19 @@ describe('StandaloneConnector', function () { stub(net, 'createConnection'); var connector = new StandaloneConnector({ port: 6379, path: '/tmp' }); connector.connect(function () { - net.createConnection.calledWith({ path: '/tmp' }); + expect(net.createConnection.calledOnce).to.eql(true); + expect(net.createConnection.firstCall.args[0]).to.eql({path: '/tmp'}); + net.createConnection.restore(); + done(); + }); + }); + + it('ignore path when port is set and path is null', function (done) { + stub(net, 'createConnection'); + var connector = new StandaloneConnector({ port: 6379, path: null }); + connector.connect(function () { + expect(net.createConnection.calledOnce).to.eql(true); + expect(net.createConnection.firstCall.args[0]).to.eql({port: 6379}); net.createConnection.restore(); done(); }); @@ -18,9 +30,10 @@ describe('StandaloneConnector', function () { it('supports tls', function (done) { stub(tls, 'connect'); - var connector = new StandaloneConnector({ port: 6379, tls: 'on' }); + var connector = new StandaloneConnector({ port: 6379, tls: {ca: 'on'} }); connector.connect(function () { - tls.connect.calledWith({ port: 6379, tls: 'on' }); + expect(tls.connect.calledOnce).to.eql(true); + expect(tls.connect.firstCall.args[0]).to.eql({ port: 6379, ca: 'on' }); tls.connect.restore(); done(); });