Add graceful shutdown to TestServer

jh-changes
Shin'ya UEOKA 5 years ago
parent 9c40914bba
commit 4a4b5e1303
  1. 24
      e2e/lib/TestServer.ts

@ -37,16 +37,28 @@ export default class TestServer {
return `http://${addr.address}:${addr.port}${path}`
}
listen() {
start(): Promise<void> {
if (this.http) {
throw new Error('http server already started');
}
this.http = http.createServer(this.app)
this.http.listen(this.port, this.address);
return new Promise((resolve) => {
this.http!!.listen(this.port, this.address, () => {
resolve();
})
});
}
close(): void {
stop(): Promise<void> {
if (!this.http) {
return;
return Promise.resolve();
}
this.http.close();
this.http = undefined;
return new Promise((resolve) => {
this.http!!.close(() => {
this.http = undefined;
resolve();
});
})
}
}