code-server/test/proxy.test.ts

49 lines
1.4 KiB
TypeScript
Raw Normal View History

2021-01-14 15:55:19 +00:00
import * as express from "express"
import * as httpserver from "./httpserver"
import * as integration from "./integration"
2021-01-14 15:54:34 +00:00
describe("proxy", () => {
let codeServer: httpserver.HttpServer | undefined
2021-01-14 15:55:19 +00:00
const nhooyrDevServer = new httpserver.HttpServer()
2021-01-14 15:54:34 +00:00
let proxyPath: string
beforeAll(async () => {
2021-01-14 15:54:34 +00: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")
})
})
afterAll(async () => {
2021-01-14 15:54:34 +00:00
await nhooyrDevServer.close()
})
afterEach(async () => {
if (codeServer) {
await codeServer.close()
codeServer = undefined
}
})
it("should rewrite the base path", async () => {
2021-01-14 15:55:19 +00:00
;[, , codeServer] = await integration.setup(["--auth=none"], "")
2021-01-14 15:54:34 +00:00
const resp = await codeServer.fetch(proxyPath)
expect(resp.status).toBe(200)
const json = await resp.json()
expect(json).toBe("asher is the best")
2021-01-14 15:54:34 +00:00
})
it("should not rewrite the base path", async () => {
2021-01-14 15:55:19 +00:00
;[, , codeServer] = await integration.setup(["--auth=none", "--proxy-path-passthrough=true"], "")
2021-01-14 15:54:34 +00:00
const resp = await codeServer.fetch(proxyPath)
expect(resp.status).toBe(200)
const json = await resp.json()
expect(json).toBe("joe is the best")
2021-01-14 15:54:34 +00:00
})
})