ci: try to fix request timeouts (#11190)

This commit is contained in:
Nikolay Vitkov 2023-10-19 11:04:29 +02:00 committed by GitHub
parent 00ef6d7fce
commit 11da21cac2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 0 deletions

View File

@ -38,6 +38,7 @@ jobs:
- 'packages/browsers/src/browser-data/firefox.ts'
- 'packages/puppeteer/**'
- 'packages/puppeteer-core/**'
- 'packages/testserver/**'
- 'docker/**'
- 'test/**'
- 'test-d/**'

View File

@ -66,6 +66,7 @@ export class TestServer {
#csp = new Map<string, string>();
#gzipRoutes = new Set<string>();
#requestSubscribers = new Map<string, Subscriber>();
#requests = new Set<ServerResponse>();
static async create(dirPath: string): Promise<TestServer> {
let res!: (value: unknown) => void;
@ -192,12 +193,20 @@ export class TestServer {
subscriber.reject.call(undefined, error);
}
this.#requestSubscribers.clear();
for (const request of this.#requests.values()) {
if (!request.writableEnded) {
request.end();
}
}
this.#requests.clear();
}
#onRequest: RequestListener = (
request: TestIncomingMessage,
response
): void => {
this.#requests.add(response);
request.on('error', (error: {code: string}) => {
if (error.code === 'ECONNRESET') {
response.end();
@ -271,6 +280,12 @@ export class TestServer {
}
readFile(filePath, (err, data) => {
// This can happen if the request is not awaited but started
// in the test and get clean via `reset()`
if (response.writableEnded) {
return;
}
if (err) {
response.statusCode = 404;
response.end(`File not found: ${filePath}`);