Refactor integration tests to use main entry point
This commit is contained in:
parent
20e70cfa05
commit
a882be5748
@ -24,7 +24,8 @@ async function entry(): Promise<void> {
|
||||
if (isChild(wrapper)) {
|
||||
const args = await wrapper.handshake()
|
||||
wrapper.preventExit()
|
||||
return runCodeServer(args)
|
||||
await runCodeServer(args)
|
||||
return
|
||||
}
|
||||
|
||||
const cliArgs = parse(process.argv.slice(2))
|
||||
|
@ -82,7 +82,7 @@ export const openInExistingInstance = async (args: DefaultedArgs, socketPath: st
|
||||
vscode.end()
|
||||
}
|
||||
|
||||
export const runCodeServer = async (args: DefaultedArgs): Promise<void> => {
|
||||
export const runCodeServer = async (args: DefaultedArgs): Promise<http.Server> => {
|
||||
logger.info(`code-server ${version} ${commit}`)
|
||||
|
||||
logger.info(`Using user-data-dir ${humanPath(args["user-data-dir"])}`)
|
||||
@ -154,4 +154,6 @@ export const runCodeServer = async (args: DefaultedArgs): Promise<void> => {
|
||||
logger.error("Failed to open", field("address", openAddress), field("error", error))
|
||||
}
|
||||
}
|
||||
|
||||
return server
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ describe("health", () => {
|
||||
})
|
||||
|
||||
it("/healthz", async () => {
|
||||
;[, , codeServer] = await integration.setup(["--auth=none"], "")
|
||||
codeServer = await integration.setup(["--auth=none"], "")
|
||||
const resp = await codeServer.fetch("/healthz")
|
||||
expect(resp.status).toBe(200)
|
||||
const json = await resp.json()
|
||||
@ -20,7 +20,7 @@ describe("health", () => {
|
||||
})
|
||||
|
||||
it("/healthz (websocket)", async () => {
|
||||
;[, , codeServer] = await integration.setup(["--auth=none"], "")
|
||||
codeServer = await integration.setup(["--auth=none"], "")
|
||||
const ws = codeServer.ws("/healthz")
|
||||
const message = await new Promise((resolve, reject) => {
|
||||
ws.on("error", console.error)
|
||||
|
@ -37,7 +37,7 @@ describe("proxy", () => {
|
||||
e.get("/wsup", (req, res) => {
|
||||
res.json("asher is the best")
|
||||
})
|
||||
;[, , codeServer] = await integration.setup(["--auth=none"], "")
|
||||
codeServer = await integration.setup(["--auth=none"], "")
|
||||
const resp = await codeServer.fetch(proxyPath)
|
||||
expect(resp.status).toBe(200)
|
||||
const json = await resp.json()
|
||||
@ -48,7 +48,7 @@ describe("proxy", () => {
|
||||
e.get(absProxyPath, (req, res) => {
|
||||
res.json("joe is the best")
|
||||
})
|
||||
;[, , codeServer] = await integration.setup(["--auth=none"], "")
|
||||
codeServer = await integration.setup(["--auth=none"], "")
|
||||
const resp = await codeServer.fetch(absProxyPath)
|
||||
expect(resp.status).toBe(200)
|
||||
const json = await resp.json()
|
||||
@ -62,7 +62,7 @@ describe("proxy", () => {
|
||||
e.post("/finale", (req, res) => {
|
||||
res.json("redirect success")
|
||||
})
|
||||
;[, , codeServer] = await integration.setup(["--auth=none"], "")
|
||||
codeServer = await integration.setup(["--auth=none"], "")
|
||||
const resp = await codeServer.fetch(proxyPath, {
|
||||
method: "POST",
|
||||
})
|
||||
@ -78,7 +78,7 @@ describe("proxy", () => {
|
||||
e.post(finalePath, (req, res) => {
|
||||
res.json("redirect success")
|
||||
})
|
||||
;[, , codeServer] = await integration.setup(["--auth=none"], "")
|
||||
codeServer = await integration.setup(["--auth=none"], "")
|
||||
const resp = await codeServer.fetch(absProxyPath, {
|
||||
method: "POST",
|
||||
})
|
||||
@ -91,7 +91,7 @@ describe("proxy", () => {
|
||||
e.post("/wsup", (req, res) => {
|
||||
res.json(req.body)
|
||||
})
|
||||
;[, , codeServer] = await integration.setup(["--auth=none"], "")
|
||||
codeServer = await integration.setup(["--auth=none"], "")
|
||||
const resp = await codeServer.fetch(proxyPath, {
|
||||
method: "post",
|
||||
body: JSON.stringify("coder is the best"),
|
||||
|
@ -1,21 +1,15 @@
|
||||
import * as express from "express"
|
||||
import { createApp } from "../../src/node/app"
|
||||
import { parse, setDefaults, parseConfigFile, DefaultedArgs } from "../../src/node/cli"
|
||||
import { register } from "../../src/node/routes"
|
||||
import { parse, parseConfigFile, setDefaults } from "../../src/node/cli"
|
||||
import { runCodeServer } from "../../src/node/main"
|
||||
import * as httpserver from "./httpserver"
|
||||
|
||||
export async function setup(
|
||||
argv: string[],
|
||||
configFile?: string,
|
||||
): Promise<[express.Application, express.Application, httpserver.HttpServer, DefaultedArgs]> {
|
||||
export async function setup(argv: string[], configFile?: string): Promise<httpserver.HttpServer> {
|
||||
argv = ["--bind-addr=localhost:0", ...argv]
|
||||
|
||||
const cliArgs = parse(argv)
|
||||
const configArgs = parseConfigFile(configFile || "", "test/integration.ts")
|
||||
const args = await setDefaults(cliArgs, configArgs)
|
||||
|
||||
const [app, wsApp, server] = await createApp(args)
|
||||
await register(app, wsApp, server, args)
|
||||
const server = await runCodeServer(args)
|
||||
|
||||
return [app, wsApp, new httpserver.HttpServer(server), args]
|
||||
return new httpserver.HttpServer(server)
|
||||
}
|
||||
|
Reference in New Issue
Block a user