2021-01-14 22:55:19 +07:00
|
|
|
import * as express from "express"
|
|
|
|
import * as httpserver from "./httpserver"
|
|
|
|
import * as integration from "./integration"
|
2021-01-14 22:54:34 +07:00
|
|
|
|
|
|
|
describe("proxy", () => {
|
|
|
|
let codeServer: httpserver.HttpServer | undefined
|
2021-01-14 22:55:19 +07:00
|
|
|
const nhooyrDevServer = new httpserver.HttpServer()
|
2021-01-14 22:54:34 +07:00
|
|
|
let proxyPath: string
|
|
|
|
|
2021-01-21 06:37:49 +07:00
|
|
|
beforeAll(async () => {
|
2021-01-14 22:54:34 +07:00
|
|
|
const e = express.default()
|
|
|
|
await nhooyrDevServer.listen(e)
|
|
|
|
e.get("/wsup", (req, res) => {
|
|
|
|
res.json("asher is the best")
|
|
|
|
})
|
|
|
|
proxyPath = `/proxy/${nhooyrDevServer.port()}/wsup`
|
|
|
|
e.get(proxyPath, (req, res) => {
|
|
|
|
res.json("joe is the best")
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
2021-01-21 06:37:49 +07:00
|
|
|
afterAll(async () => {
|
2021-01-14 22:54:34 +07:00
|
|
|
await nhooyrDevServer.close()
|
|
|
|
})
|
|
|
|
|
|
|
|
afterEach(async () => {
|
|
|
|
if (codeServer) {
|
|
|
|
await codeServer.close()
|
|
|
|
codeServer = undefined
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
it("should rewrite the base path", async () => {
|
2021-01-14 22:55:19 +07:00
|
|
|
;[, , codeServer] = await integration.setup(["--auth=none"], "")
|
2021-01-14 22:54:34 +07:00
|
|
|
const resp = await codeServer.fetch(proxyPath)
|
2021-01-21 06:37:49 +07:00
|
|
|
expect(resp.status).toBe(200)
|
|
|
|
const json = await resp.json()
|
|
|
|
expect(json).toBe("asher is the best")
|
2021-01-14 22:54:34 +07:00
|
|
|
})
|
|
|
|
|
|
|
|
it("should not rewrite the base path", async () => {
|
2021-01-14 22:55:19 +07:00
|
|
|
;[, , codeServer] = await integration.setup(["--auth=none", "--proxy-path-passthrough=true"], "")
|
2021-01-14 22:54:34 +07:00
|
|
|
const resp = await codeServer.fetch(proxyPath)
|
2021-01-21 06:37:49 +07:00
|
|
|
expect(resp.status).toBe(200)
|
|
|
|
const json = await resp.json()
|
|
|
|
expect(json).toBe("joe is the best")
|
2021-01-14 22:54:34 +07:00
|
|
|
})
|
|
|
|
})
|