authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-03-01 23:51:07-08:00
committergravatar for jmarminge@gmail.comJulius Marminge <jmarminge@gmail.com> 2026-03-01 23:53:31-08:00
log9f068356a40ac259f7a074c2bec67d0d6bfe703a
treefb96fda58ee560fe618f056a614345b1565e666e
parentf239c90628cefc37f07ed93783a8404fe3f3f8b3

Allow non-required dev ports to exceed max in offset search

- Stop `findFirstAvailableOffset` only when a required port exceeds `MAX_PORT` - Add test covering offsets where only non-required ports are out of range

2 files changed, 18 insertions(+), 1 deletions(-)

scripts/dev-runner.mjs+7-1
...@@ -260,7 +260,13 @@ export async function findFirstAvailableOffset({...@@ -260,7 +260,13 @@ export async function findFirstAvailableOffset({
260}) {260}) {
261 for (let candidate = startOffset; ; candidate += 1) {261 for (let candidate = startOffset; ; candidate += 1) {
262 const { serverPort, webPort } = portPairForOffset(candidate);262 const { serverPort, webPort } = portPairForOffset(candidate);
263 if (serverPort > MAX_PORT || webPort > MAX_PORT) {263 const serverPortOutOfRange = serverPort > MAX_PORT;
264 const webPortOutOfRange = webPort > MAX_PORT;
265 if (
266 (requireServerPort && serverPortOutOfRange) ||
267 (requireWebPort && webPortOutOfRange) ||
268 (!requireServerPort && !requireWebPort && (serverPortOutOfRange || webPortOutOfRange))
269 ) {
264 break;270 break;
265 }271 }
266272
scripts/dev-runner.test.ts+11
...@@ -149,6 +149,17 @@ describe("findFirstAvailableOffset", () => {...@@ -149,6 +149,17 @@ describe("findFirstAvailableOffset", () => {
149149
150 expect(offset).toBe(2);150 expect(offset).toBe(2);
151 });151 });
152
153 it("allows offsets where only non-required ports exceed max", async () => {
154 const offset = await findFirstAvailableOffset({
155 startOffset: 59_803,
156 requireServerPort: true,
157 requireWebPort: false,
158 checkPortAvailability: async () => true,
159 });
160
161 expect(offset).toBe(59_803);
162 });
152});163});
153164
154describe("resolveModePortOffsets", () => {165describe("resolveModePortOffsets", () => {