27 lines
825 B
TypeScript
27 lines
825 B
TypeScript
|
/**
|
||
|
* Allows the relay to be shut down with an HTTP request, after which
|
||
|
* docker-compose will restart it. This allows each test to have a clean
|
||
|
* slate. The drawback is that the tests can't run in parallel, so the
|
||
|
* test suite is very slow. A better option would be to have this relay
|
||
|
* server manage the relay completely: star/stop isolated relay instances
|
||
|
* with HTTP requests and allow multiple instances to run at the same
|
||
|
* time so that the tests can be parallelized.
|
||
|
*/
|
||
|
|
||
|
import http from "node:http"
|
||
|
import { spawn } from "node:child_process"
|
||
|
|
||
|
const child = spawn(process.argv[2], process.argv.slice(3), {
|
||
|
stdio: "inherit",
|
||
|
})
|
||
|
|
||
|
const server = http.createServer((_, res) => {
|
||
|
if (!child.kill(9)) {
|
||
|
console.error("killing the subprocess failed")
|
||
|
}
|
||
|
res.end()
|
||
|
process.exit(1)
|
||
|
})
|
||
|
|
||
|
server.listen(8000)
|