Skip to content

Commit

Permalink
improving port parsing for defaults
Browse files Browse the repository at this point in the history
  • Loading branch information
vitaly-t committed Jul 5, 2019
1 parent c2bdcbb commit 473bfe8
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 11 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "connection-string",
"version": "2.4.1",
"version": "2.4.2",
"description": "Advanced URL Connection String parser.",
"main": "src/index.js",
"typings": "src/index.d.ts",
Expand Down
6 changes: 3 additions & 3 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -251,9 +251,9 @@
}
}
}
var port = parseInt(dh.port);
if (port > 0 && port < 65536) {
obj.port = port;
var p = dh.port;
if (typeof p === 'number' && p > 0 && p < 65536) {
obj.port = p;
}
if (obj.name || obj.port) {
Object.defineProperty(obj, 'toString', {
Expand Down
17 changes: 10 additions & 7 deletions test/mainSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -478,10 +478,11 @@ describe('setDefaults', () => {
expect(parse('').setDefaults({protocol: 'abc'})).toEqual({protocol: 'abc'});
});
it('must set the default hostname and port', () => {
expect(parse('').setDefaults({hosts: [{name: '::', type: 'IPv6'}]})).toEqual({
expect(parse('').setDefaults({hosts: [{name: '::', type: 'IPv6', port: 1}]})).toEqual({
hosts: [{
name: '::',
type: 'IPv6'
type: 'IPv6',
port: 1
}]
});
expect(parse('my-host').setDefaults({hosts: [{name: '::', type: 'bla-bla'}]})).toEqual({
Expand All @@ -492,10 +493,11 @@ describe('setDefaults', () => {
name: '::'
}]
});
expect(parse('my-host').setDefaults({hosts: [{name: 'my-host'}]})).toEqual({
expect(parse('my-host').setDefaults({hosts: [{name: 'my-host', port: 0}]})).toEqual({
hosts: [{
name: 'my-host',
type: 'domain'
// note how invalid port is simply skipped here
}]
});
expect(parse('my-host').setDefaults({hosts: [{name: 'my-host', port: 222}]})).toEqual({
Expand All @@ -519,10 +521,11 @@ describe('setDefaults', () => {
expect(parse('').setDefaults({hosts: [{port: 123}]})).toEqual({hosts: [{port: 123}]});
});
it('must ignore invalid ports', () => {
expect(parse('').setDefaults({port: '123'})).toEqual({});
expect(parse('').setDefaults({port: 'a'})).toEqual({});
expect(parse('').setDefaults({port: -1})).toEqual({});
expect(parse('').setDefaults({port: '0'})).toEqual({});
expect(parse('').setDefaults({hosts: [{port: '123'}]})).toEqual({});
expect(parse('').setDefaults({hosts: [{port: 'a'}]})).toEqual({});
expect(parse('').setDefaults({hosts: [{port: -1}]})).toEqual({});
expect(parse('').setDefaults({hosts: [{port: '0'}]})).toEqual({});
expect(parse('').setDefaults({hosts: [{port: 0}]})).toEqual({});
});
it('must set the default user', () => {
expect(parse('').setDefaults({user: 'abc'})).toEqual({user: 'abc'});
Expand Down

0 comments on commit 473bfe8

Please sign in to comment.