Skip to content

Commit 65274a6

Browse files
committed
if startPort is provided by user, actually use it
fixes #173
1 parent dccf68d commit 65274a6

File tree

2 files changed

+38
-26
lines changed

2 files changed

+38
-26
lines changed

lib/portfinder.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ exports.setBasePath = function (path) {
124124
};
125125

126126
internals.getPort = function (options, callback) {
127-
options.port = Number(options.port) || Number(exports.basePort);
127+
options.port = Number(options.port) || Number(options.startPort) || Number(exports.basePort);
128128
options.host = options.host || null;
129129
options.stopPort = Number(options.stopPort) || Number(exports.highestPort);
130130

test/port-finder.test.js

Lines changed: 37 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
const portfinder = require('../lib/portfinder'),
1111
helper = require('./helper');
1212

13-
portfinder.basePort = 32768;
13+
const basePort = 32768;
14+
portfinder.basePort = basePort;
1415

1516
describe('with 5 existing servers', function () {
1617
const servers = [];
@@ -152,32 +153,43 @@ describe('with no existing servers', function () {
152153
});
153154
});
154155

155-
describe.each([
156-
['getPort()', false, portfinder.getPort],
157-
['getPort()', true, portfinder.getPort],
158-
['getPortPromise()', true, portfinder.getPortPromise],
159-
])(`the %s method (promise: %p)`, function (name, isPromise, method) {
160-
test('with startPort less than or equal to 80', function (done) {
161-
if (isPromise) {
162-
method({ startPort: 80 })
163-
.then(function (port) {
164-
expect(port).toBeGreaterThanOrEqual(80);
156+
157+
describe('with startPort provided', function () {
158+
beforeEach(function (done) {
159+
portfinder.basePort = 8000;
160+
done();
161+
});
162+
afterEach(function (done) {
163+
portfinder.basePort = basePort;
164+
done();
165+
});
166+
describe.each([
167+
['getPort()', false, portfinder.getPort],
168+
['getPort()', true, portfinder.getPort],
169+
['getPortPromise()', true, portfinder.getPortPromise],
170+
])(`the %s method (promise: %p)`, function (name, isPromise, method) {
171+
test('with startPort less than or equal to 9050', function (done) {
172+
if (isPromise) {
173+
method({ startPort: 9050 })
174+
.then(function (port) {
175+
expect(port).toBeGreaterThanOrEqual(9050);
176+
done();
177+
})
178+
.catch(function (err) {
179+
done(err);
180+
});
181+
} else {
182+
method({ startPort: 9050 }, function (err, port) {
183+
if (err) {
184+
done(err);
185+
return;
186+
}
187+
expect(err).toBeNull();
188+
expect(port).toBeGreaterThanOrEqual(9050);
165189
done();
166-
})
167-
.catch(function (err) {
168-
done(err);
169190
});
170-
} else {
171-
method({ startPort: 80 }, function (err, port) {
172-
if (err) {
173-
done(err);
174-
return;
175-
}
176-
expect(err).toBeNull();
177-
expect(port).toBeGreaterThanOrEqual(80);
178-
done();
179-
});
180-
}
191+
}
192+
});
181193
});
182194
});
183195

0 commit comments

Comments
 (0)