| author | |
| committer | |
| log | 9f068356a40ac259f7a074c2bec67d0d6bfe703a |
| tree | fb96fda58ee560fe618f056a614345b1565e666e |
| parent | f239c90628cefc37f07ed93783a8404fe3f3f8b3 |
- Stop `findFirstAvailableOffset` only when a required port exceeds `MAX_PORT`
- Add test covering offsets where only non-required ports are out of range2 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 | } |
| 266 | 272 |
scripts/dev-runner.test.ts+11| ... | @@ -149,6 +149,17 @@ describe("findFirstAvailableOffset", () => { | ... | @@ -149,6 +149,17 @@ describe("findFirstAvailableOffset", () => { |
| 149 | 149 | ||
| 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 | }); |
| 153 | 164 | ||
| 154 | describe("resolveModePortOffsets", () => { | 165 | describe("resolveModePortOffsets", () => { |