22 lines
800 B
TypeScript
22 lines
800 B
TypeScript
|
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 * as httpserver from "./httpserver"
|
||
|
|
||
|
export async function setup(
|
||
|
argv: string[],
|
||
|
configFile?: string,
|
||
|
): Promise<[express.Application, express.Application, httpserver.HttpServer, DefaultedArgs]> {
|
||
|
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)
|
||
|
|
||
|
return [app, wsApp, new httpserver.HttpServer(server), args]
|
||
|
}
|