Skip to content

Commit d40a99e

Browse files
committedAug 2, 2018
fix: port is ignored when path set to null
Close #668
1 parent 5eb4198 commit d40a99e

File tree

2 files changed

+28
-10
lines changed

2 files changed

+28
-10
lines changed
 

‎lib/connectors/StandaloneConnector.ts

+12-7
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {CONNECTION_CLOSED_ERROR_MSG} from '../utils'
44
import AbstractConnector, {ErrorEmitter} from './AbstractConnector'
55

66
export function isIIpcConnectionOptions (value: any): value is IIpcConnectionOptions {
7-
return value.hasOwnProperty('path')
7+
return value.path
88
}
99

1010
export interface ITcpConnectionOptions extends TcpNetConnectOpts {
@@ -30,17 +30,22 @@ export default class StandaloneConnector extends AbstractConnector {
3030
path: options.path
3131
}
3232
} else {
33-
connectionOptions = {
34-
port: options.port,
35-
host: options.host,
36-
family: options.family
33+
connectionOptions = {}
34+
if (options.port != null) {
35+
connectionOptions.port = options.port
36+
}
37+
if (options.host != null) {
38+
connectionOptions.host = options.host
39+
}
40+
if (options.family != null) {
41+
connectionOptions.family = options.family
3742
}
3843
}
3944

4045
if (options.tls) {
4146
Object.assign(connectionOptions, options.tls)
4247
}
43-
48+
4449
process.nextTick(() => {
4550
if (!this.connecting) {
4651
callback(new Error(CONNECTION_CLOSED_ERROR_MSG))
@@ -63,4 +68,4 @@ export default class StandaloneConnector extends AbstractConnector {
6368
callback(null, stream)
6469
})
6570
}
66-
}
71+
}

‎test/unit/connectors/connector.js

+16-3
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,30 @@ describe('StandaloneConnector', function () {
1010
stub(net, 'createConnection');
1111
var connector = new StandaloneConnector({ port: 6379, path: '/tmp' });
1212
connector.connect(function () {
13-
net.createConnection.calledWith({ path: '/tmp' });
13+
expect(net.createConnection.calledOnce).to.eql(true);
14+
expect(net.createConnection.firstCall.args[0]).to.eql({path: '/tmp'});
15+
net.createConnection.restore();
16+
done();
17+
});
18+
});
19+
20+
it('ignore path when port is set and path is null', function (done) {
21+
stub(net, 'createConnection');
22+
var connector = new StandaloneConnector({ port: 6379, path: null });
23+
connector.connect(function () {
24+
expect(net.createConnection.calledOnce).to.eql(true);
25+
expect(net.createConnection.firstCall.args[0]).to.eql({port: 6379});
1426
net.createConnection.restore();
1527
done();
1628
});
1729
});
1830

1931
it('supports tls', function (done) {
2032
stub(tls, 'connect');
21-
var connector = new StandaloneConnector({ port: 6379, tls: 'on' });
33+
var connector = new StandaloneConnector({ port: 6379, tls: {ca: 'on'} });
2234
connector.connect(function () {
23-
tls.connect.calledWith({ port: 6379, tls: 'on' });
35+
expect(tls.connect.calledOnce).to.eql(true);
36+
expect(tls.connect.firstCall.args[0]).to.eql({ port: 6379, ca: 'on' });
2437
tls.connect.restore();
2538
done();
2639
});

0 commit comments

Comments
 (0)
Please sign in to comment.