Add graceful shutdown to TestServer

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

@ -37,16 +37,28 @@ export default class TestServer {
return `http://${addr.address}:${addr.port}${path}` 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 = 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) { if (!this.http) {
return; return Promise.resolve();
} }
this.http.close(); return new Promise((resolve) => {
this.http!!.close(() => {
this.http = undefined; this.http = undefined;
resolve();
});
})
} }
} }