Skip to content

Commit 9880c7c

Browse files
committed
chore: roll stable test runner
1 parent 23817d2 commit 9880c7c

6 files changed

Lines changed: 37 additions & 41 deletions

File tree

packages/playwright/src/reporters/html.ts

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import { MultiMap } from '@isomorphic/multimap';
2727
import { calculateSha1 } from '@utils/crypto';
2828
import { copyFileAndMakeWritable, removeFolders, sanitizeForFilePath, toPosixPath } from '@utils/fileUtils';
2929
import { getPackageManagerExecCommand } from '@utils/env';
30-
import { HttpServer } from '@utils/httpServer';
30+
import { serveFolder } from '@utils/httpServer';
3131
import { gracefullyProcessExitDoNotHang } from '@utils/processLauncher';
3232

3333
import { CommonReporterOptions, formatError, formatResultFailure, internalScreen } from './base';
@@ -222,7 +222,7 @@ export async function showHTMLReport(reportFolder: string | undefined, host: str
222222
gracefullyProcessExitDoNotHang(1);
223223
return;
224224
}
225-
const server = startHtmlReportServer(folder);
225+
const server = serveFolder(folder);
226226
await server.start({ port, host, preferredPort: port ? undefined : 9323 });
227227
let url = server.urlPrefix('human-readable');
228228
writeLine('');
@@ -234,26 +234,6 @@ export async function showHTMLReport(reportFolder: string | undefined, host: str
234234
await new Promise(() => {});
235235
}
236236

237-
export function startHtmlReportServer(folder: string): HttpServer {
238-
const server = new HttpServer();
239-
server.routePrefix('/', (request, response) => {
240-
let relativePath = new URL('http://localhost' + request.url).pathname;
241-
if (relativePath.startsWith('/trace/file')) {
242-
const url = new URL('http://localhost' + request.url!);
243-
try {
244-
return server.serveFile(request, response, url.searchParams.get('path')!);
245-
} catch (e) {
246-
return false;
247-
}
248-
}
249-
if (relativePath === '/')
250-
relativePath = '/index.html';
251-
const absolutePath = path.join(folder, ...relativePath.split('/'));
252-
return server.serveFile(request, response, absolutePath);
253-
});
254-
return server;
255-
}
256-
257237
type DataMap = Map<string, { testFile: TestFile, testFileSummary: TestFileSummary }>;
258238

259239
class HtmlBuilder {

packages/utils/httpServer.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,3 +220,23 @@ export class HttpServer {
220220
}
221221
}
222222
}
223+
224+
export function serveFolder(folder: string): HttpServer {
225+
const server = new HttpServer();
226+
server.routePrefix('/', (request, response) => {
227+
let relativePath = new URL('http://localhost' + request.url).pathname;
228+
if (relativePath.startsWith('/trace/file')) {
229+
const url = new URL('http://localhost' + request.url!);
230+
try {
231+
return server.serveFile(request, response, url.searchParams.get('path')!);
232+
} catch (e) {
233+
return false;
234+
}
235+
}
236+
if (relativePath === '/')
237+
relativePath = '/index.html';
238+
const absolutePath = path.join(folder, ...relativePath.split('/'));
239+
return server.serveFile(request, response, absolutePath);
240+
});
241+
return server;
242+
}

tests/playwright-test/reporter-blob.spec.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
import * as fs from 'fs';
1818
import type { PlaywrightTestConfig } from '@playwright/test';
1919
import path from 'path';
20-
import { html } from '../../packages/playwright/lib/runner';
21-
const { startHtmlReportServer } = html;
2220
import { expect as baseExpect, test as baseTest, stripAnsi } from './playwright-test-fixtures';
2321
import { extractZip } from '../../packages/utils/third_party/extractZip';
2422
import * as yazl from 'yazl';
@@ -39,7 +37,7 @@ const test = baseTest.extend<{
3937
let server: HttpServer | undefined;
4038
await use(async (reportFolder?: string) => {
4139
reportFolder ??= test.info().outputPath('playwright-report');
42-
server = startHtmlReportServer(reportFolder) as HttpServer;
40+
server = utils.serveFolder(reportFolder);
4341
await server.start();
4442
await page.goto(server.urlPrefix('precise'));
4543
});

tests/playwright-test/reporter-html.spec.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ import fs from 'fs';
1818
import path from 'path';
1919
import url from 'url';
2020
import { test as baseTest, expect as baseExpect, createImage } from './playwright-test-fixtures';
21-
import { html } from '../../packages/playwright/lib/runner';
22-
const { startHtmlReportServer } = html;
2321
import { iso, utils } from '../../packages/playwright-core/lib/coreBundle';
2422

2523
type HttpServer = utils.HttpServer;
@@ -32,7 +30,7 @@ const test = baseTest.extend<{ showReport: (reportFolder?: string) => Promise<vo
3230
let server: HttpServer | undefined;
3331
await use(async (reportFolder?: string) => {
3432
reportFolder ??= testInfo.outputPath('playwright-report');
35-
server = startHtmlReportServer(reportFolder) as HttpServer;
33+
server = utils.serveFolder(reportFolder);
3634
await server.start();
3735
await page.goto(server.urlPrefix('precise'));
3836
});

tests/playwright-test/stable-test-runner/package-lock.json

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"private": true,
33
"dependencies": {
4-
"@playwright/test": "^1.60.0-alpha-2026-04-06"
4+
"@playwright/test": "^1.60.0-alpha-2026-04-13"
55
}
66
}

0 commit comments

Comments
 (0)