diff --git a/lib/portfinder.js b/lib/portfinder.js index e692947..e6fbbba 100644 --- a/lib/portfinder.js +++ b/lib/portfinder.js @@ -124,7 +124,7 @@ exports.setBasePath = function (path) { }; internals.getPort = function (options, callback) { - options.port = Number(options.port) || Number(exports.basePort); + options.port = Number(options.port) || Number(options.startPort) || Number(exports.basePort); options.host = options.host || null; options.stopPort = Number(options.stopPort) || Number(exports.highestPort); diff --git a/test/port-finder.test.js b/test/port-finder.test.js index b463780..48a61c3 100644 --- a/test/port-finder.test.js +++ b/test/port-finder.test.js @@ -10,7 +10,8 @@ const portfinder = require('../lib/portfinder'), helper = require('./helper'); -portfinder.basePort = 32768; +const basePort = 32768; +portfinder.basePort = basePort; describe('with 5 existing servers', function () { const servers = []; @@ -152,32 +153,41 @@ describe('with no existing servers', function () { }); }); -describe.each([ - ['getPort()', false, portfinder.getPort], - ['getPort()', true, portfinder.getPort], - ['getPortPromise()', true, portfinder.getPortPromise], -])(`the %s method (promise: %p)`, function (name, isPromise, method) { - test('with startPort less than or equal to 80', function (done) { - if (isPromise) { - method({ startPort: 80 }) - .then(function (port) { - expect(port).toBeGreaterThanOrEqual(80); + +describe('with startPort provided', function () { + beforeAll(function () { + portfinder.basePort = 8000; + }); + afterAll(function () { + portfinder.basePort = basePort; + }); + describe.each([ + ['getPort()', false, portfinder.getPort], + ['getPort()', true, portfinder.getPort], + ['getPortPromise()', true, portfinder.getPortPromise], + ])(`the %s method (promise: %p)`, function (name, isPromise, method) { + test('with startPort less than or equal to 9050', function (done) { + if (isPromise) { + method({ startPort: 9050 }) + .then(function (port) { + expect(port).toBeGreaterThanOrEqual(9050); + done(); + }) + .catch(function (err) { + done(err); + }); + } else { + method({ startPort: 9050 }, function (err, port) { + if (err) { + done(err); + return; + } + expect(err).toBeNull(); + expect(port).toBeGreaterThanOrEqual(9050); done(); - }) - .catch(function (err) { - done(err); }); - } else { - method({ startPort: 80 }, function (err, port) { - if (err) { - done(err); - return; - } - expect(err).toBeNull(); - expect(port).toBeGreaterThanOrEqual(80); - done(); - }); - } + } + }); }); });