Archived
1
0

feat: add getAvailablePort helper function

This commit is contained in:
Joe Previte
2021-07-27 14:22:25 -07:00
parent 42cfa4a7ca
commit 9137816e33
3 changed files with 42 additions and 5 deletions

View File

@ -1,5 +1,5 @@
import { promises as fs } from "fs"
import { tmpdir, useEnv } from "../../test/utils/helpers"
import { getAvailablePort, tmpdir, useEnv } from "../../test/utils/helpers"
/**
* This file is for testing test helpers (not core code).
@ -39,3 +39,16 @@ describe("useEnv", () => {
expect(process.env[envKey]).toEqual("test environment variable")
})
})
describe("getAvailablePort", () => {
it("should return a valid port", async () => {
const port = await getAvailablePort()
expect(port).toBeGreaterThan(0)
expect(port).toBeLessThanOrEqual(65535)
})
it("should return different ports for different calls", async () => {
const portOne = await getAvailablePort()
const portTwo = await getAvailablePort()
expect(portOne).not.toEqual(portTwo)
})
})

View File

@ -6,6 +6,7 @@ import { HttpCode } from "../../../src/common/http"
import { proxy } from "../../../src/node/proxy"
import * as httpserver from "../../utils/httpserver"
import * as integration from "../../utils/integration"
import { getAvailablePort } from "../../utils/helpers"
describe("proxy", () => {
const nhooyrDevServer = new httpserver.HttpServer()
@ -166,14 +167,16 @@ describe("proxy", () => {
// src/node/proxy.ts, you should probably add it to
// this test suite.
describe("proxy (standalone)", () => {
const PORT = 9003
const PROXY_PORT = 8003
const URL = `http://localhost:${PORT}`
const PROXY_URL = `http://localhost:${PROXY_PORT}`
let URL = ""
let PROXY_URL = ""
let testServer: http.Server
let proxyTarget: http.Server
beforeEach(async () => {
const PORT = await getAvailablePort()
const PROXY_PORT = await getAvailablePort()
URL = `http://localhost:${PORT}`
PROXY_URL = `http://localhost:${PROXY_PORT}`
// Define server and a proxy server
testServer = http.createServer((req, res) => {
proxy.web(req, res, {