@crvy/rprtr 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/{chunk-35CZLYSW.js → chunk-F7NSIHCV.js} +56 -13
- package/dist/{chunk-43JLQN36.js → chunk-X2TCDD54.js} +15 -2
- package/dist/cli.js +2 -2
- package/dist/index.js +16 -4
- package/dist/report-state.d.ts.map +1 -1
- package/dist/reporter-helpers.d.ts +24 -0
- package/dist/reporter-helpers.d.ts.map +1 -0
- package/dist/reporter.cjs +59 -17
- package/dist/reporter.d.ts +7 -10
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +46 -16
- package/dist/schemas.d.ts +18 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/artifact-routes.d.ts.map +1 -1
- package/dist/server/handlers.d.ts +4 -1
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/routes.d.ts +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server.cjs +68 -14
- package/dist/server.js +2 -2
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.1.3] - 2026-06-18
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **reporter:** Resolve browser label for Playwright's default project
|
|
13
|
+
## [0.1.2] - 2026-06-08
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- Reporter sends register message with Playwright config to server
|
|
18
|
+
- Reporter sends register message with Playwright config to server
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- **check:** Run publint after other checks to avoid race condition with build
|
|
23
|
+
|
|
24
|
+
### Styling
|
|
25
|
+
|
|
26
|
+
- Reformat long lines
|
|
27
|
+
- Reformat long lines
|
|
8
28
|
## [0.1.1] - 2026-06-08
|
|
9
29
|
|
|
10
30
|
### Fixed
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
IncomingWebSocketMessageSchema,
|
|
4
4
|
LoadedReportDataSchema,
|
|
5
5
|
OfflineReportSchema,
|
|
6
|
+
RegisterDataSchema,
|
|
6
7
|
RunEndDataSchema,
|
|
7
8
|
TestBeginDataSchema,
|
|
8
9
|
TestEndDataSchema,
|
|
@@ -12,7 +13,7 @@ import {
|
|
|
12
13
|
finalizeRunEvent,
|
|
13
14
|
resolveBaselineTargets,
|
|
14
15
|
safeParse
|
|
15
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-X2TCDD54.js";
|
|
16
17
|
|
|
17
18
|
// src/server/app.ts
|
|
18
19
|
import { dirname as dirname3, join as join3 } from "path";
|
|
@@ -234,7 +235,8 @@ async function handleFile(ctx, req) {
|
|
|
234
235
|
}
|
|
235
236
|
function reporterTitlePath(test) {
|
|
236
237
|
const testFile = test.location?.file;
|
|
237
|
-
|
|
238
|
+
const projectName = test.projectName ?? test.browser;
|
|
239
|
+
return ["", projectName, testFile ?? "", ...test.titlePath, test.title];
|
|
238
240
|
}
|
|
239
241
|
function resolveBaselineSnapshotPath(routing, test, retry, imageName) {
|
|
240
242
|
const testFile = test.location?.file;
|
|
@@ -250,7 +252,7 @@ function resolveBaselineSnapshotPath(routing, test, retry, imageName) {
|
|
|
250
252
|
configDir: routing.configDir,
|
|
251
253
|
testDir: routing.playwrightTestDir ?? dirname2(testFile),
|
|
252
254
|
snapshotDir: routing.playwrightSnapshotDir ?? dirname2(testFile),
|
|
253
|
-
projectName: test.browser,
|
|
255
|
+
projectName: test.projectName ?? test.browser,
|
|
254
256
|
snapshotSuffix: process.platform,
|
|
255
257
|
snapshotPathTemplate: routing.playwrightSnapshotPathTemplate,
|
|
256
258
|
toHaveScreenshotPathTemplate: routing.playwrightToHaveScreenshotPathTemplate
|
|
@@ -372,6 +374,40 @@ function handleSync(ctx) {
|
|
|
372
374
|
};
|
|
373
375
|
broadcastToBrowsers(ctx.wsClients, message);
|
|
374
376
|
}
|
|
377
|
+
function handleRegister(ctx, data) {
|
|
378
|
+
const roots = [];
|
|
379
|
+
if (data.playwrightSnapshotDir !== void 0 && data.playwrightSnapshotDir !== "") {
|
|
380
|
+
roots.push(data.playwrightSnapshotDir);
|
|
381
|
+
}
|
|
382
|
+
if (data.playwrightTestDir !== void 0 && data.playwrightTestDir !== "") {
|
|
383
|
+
roots.push(data.playwrightTestDir);
|
|
384
|
+
}
|
|
385
|
+
const existing = ctx.routesContext.artifactRoots ?? [];
|
|
386
|
+
for (const root of roots) {
|
|
387
|
+
if (!existing.includes(root)) {
|
|
388
|
+
existing.push(root);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
ctx.routesContext.artifactRoots = existing;
|
|
392
|
+
if (ctx.routesContext.approvalRouting !== void 0) {
|
|
393
|
+
if (data.playwrightSnapshotDir !== void 0) {
|
|
394
|
+
ctx.routesContext.approvalRouting.playwrightSnapshotDir = data.playwrightSnapshotDir;
|
|
395
|
+
}
|
|
396
|
+
if (data.playwrightTestDir !== void 0) {
|
|
397
|
+
ctx.routesContext.approvalRouting.playwrightTestDir = data.playwrightTestDir;
|
|
398
|
+
}
|
|
399
|
+
if (data.playwrightSnapshotPathTemplate !== void 0) {
|
|
400
|
+
ctx.routesContext.approvalRouting.playwrightSnapshotPathTemplate = data.playwrightSnapshotPathTemplate;
|
|
401
|
+
}
|
|
402
|
+
if (data.playwrightToHaveScreenshotPathTemplate !== void 0) {
|
|
403
|
+
ctx.routesContext.approvalRouting.playwrightToHaveScreenshotPathTemplate = data.playwrightToHaveScreenshotPathTemplate;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
console.log("[Server] Reporter registered with config:", {
|
|
407
|
+
playwrightSnapshotDir: data.playwrightSnapshotDir,
|
|
408
|
+
playwrightTestDir: data.playwrightTestDir
|
|
409
|
+
});
|
|
410
|
+
}
|
|
375
411
|
|
|
376
412
|
// src/server/routes.ts
|
|
377
413
|
import { join as join2 } from "path";
|
|
@@ -570,15 +606,6 @@ function createReportData(options) {
|
|
|
570
606
|
screenshotDir: options.screenshotDir ?? "./screenshots"
|
|
571
607
|
};
|
|
572
608
|
}
|
|
573
|
-
function createHandlerContext(reportData, wsClients, currentRunIds, saveReport, approvalRouting) {
|
|
574
|
-
return {
|
|
575
|
-
reportData,
|
|
576
|
-
wsClients,
|
|
577
|
-
currentRunIds,
|
|
578
|
-
saveReport,
|
|
579
|
-
approvalRouting
|
|
580
|
-
};
|
|
581
|
-
}
|
|
582
609
|
async function loadReport(reportPath, reportData) {
|
|
583
610
|
try {
|
|
584
611
|
const raw = await readJsonFile(reportPath);
|
|
@@ -661,6 +688,15 @@ async function handleParsedWebSocketMessage(ctx, msg) {
|
|
|
661
688
|
case "sync":
|
|
662
689
|
handleSync(ctx);
|
|
663
690
|
break;
|
|
691
|
+
case "register": {
|
|
692
|
+
const parsed = safeParse(RegisterDataSchema, msg.data);
|
|
693
|
+
if (parsed === null) {
|
|
694
|
+
console.error("Invalid register message data", msg.data);
|
|
695
|
+
break;
|
|
696
|
+
}
|
|
697
|
+
handleRegister(ctx, parsed);
|
|
698
|
+
break;
|
|
699
|
+
}
|
|
664
700
|
}
|
|
665
701
|
}
|
|
666
702
|
function createWebSocketMessageHandler(getHandlerContext) {
|
|
@@ -737,7 +773,14 @@ async function createServerApp(options = {}) {
|
|
|
737
773
|
await writeJsonFile(reportFile, reportData);
|
|
738
774
|
}
|
|
739
775
|
const routesContext = createRoutesContext(reportData, staticDir, saveReport, options);
|
|
740
|
-
const getHandlerContext = () =>
|
|
776
|
+
const getHandlerContext = () => ({
|
|
777
|
+
reportData,
|
|
778
|
+
wsClients,
|
|
779
|
+
currentRunIds,
|
|
780
|
+
saveReport,
|
|
781
|
+
approvalRouting: routesContext.approvalRouting,
|
|
782
|
+
routesContext
|
|
783
|
+
});
|
|
741
784
|
const handleRequest = (req) => handleHttpRequest(routesContext, req);
|
|
742
785
|
const handleWebSocketMessage = createWebSocketMessageHandler(getHandlerContext);
|
|
743
786
|
await loadReport(reportFile, reportData);
|
|
@@ -216,6 +216,7 @@ var TestDataSchema = z.object({
|
|
|
216
216
|
id: z.string(),
|
|
217
217
|
titlePath: z.array(z.string()),
|
|
218
218
|
browser: z.string(),
|
|
219
|
+
projectName: z.string().optional(),
|
|
219
220
|
title: z.string(),
|
|
220
221
|
skip: z.union([z.boolean(), z.string()]).optional(),
|
|
221
222
|
retries: z.number().optional(),
|
|
@@ -240,7 +241,7 @@ var CrvyRprtrSuiteSchema = z.lazy(
|
|
|
240
241
|
})
|
|
241
242
|
);
|
|
242
243
|
var IncomingWebSocketMessageSchema = z.object({
|
|
243
|
-
type: z.enum(["test-begin", "test-end", "run-end", "approve", "sync"]),
|
|
244
|
+
type: z.enum(["test-begin", "test-end", "run-end", "approve", "sync", "register"]),
|
|
244
245
|
data: z.unknown()
|
|
245
246
|
});
|
|
246
247
|
var WebSocketMessageSchema = z.discriminatedUnion("type", [
|
|
@@ -267,6 +268,7 @@ var TestBeginDataSchema = z.object({
|
|
|
267
268
|
title: z.string(),
|
|
268
269
|
titlePath: z.array(z.string()),
|
|
269
270
|
browser: z.string(),
|
|
271
|
+
projectName: z.string().optional(),
|
|
270
272
|
location: LocationSchema
|
|
271
273
|
});
|
|
272
274
|
var TestEndDataSchema = z.object({
|
|
@@ -284,6 +286,12 @@ var TestEndDataSchema = z.object({
|
|
|
284
286
|
var RunEndDataSchema = z.object({
|
|
285
287
|
status: z.enum(["passed", "failed", "skipped"])
|
|
286
288
|
});
|
|
289
|
+
var RegisterDataSchema = z.object({
|
|
290
|
+
playwrightSnapshotDir: z.string().optional(),
|
|
291
|
+
playwrightTestDir: z.string().optional(),
|
|
292
|
+
playwrightSnapshotPathTemplate: z.string().optional(),
|
|
293
|
+
playwrightToHaveScreenshotPathTemplate: z.string().optional()
|
|
294
|
+
});
|
|
287
295
|
var ReportDataSchema = z.object({
|
|
288
296
|
isRunning: z.boolean(),
|
|
289
297
|
tests: z.record(z.string(), TestDataSchema),
|
|
@@ -459,12 +467,16 @@ function createMutableReportState(screenshotDir = "./screenshots") {
|
|
|
459
467
|
};
|
|
460
468
|
}
|
|
461
469
|
function applyTestBeginEvent(state, data) {
|
|
462
|
-
const { id, title, titlePath, browser, location } = data;
|
|
470
|
+
const { id, title, titlePath, browser, projectName, location } = data;
|
|
463
471
|
state.currentRunIds.add(id);
|
|
464
472
|
state.reportData.tests[id] ??= {
|
|
465
473
|
id,
|
|
466
474
|
titlePath: titlePath ?? [],
|
|
467
475
|
browser: browser ?? "",
|
|
476
|
+
// Older reporters sent the raw project name in `browser` and had no
|
|
477
|
+
// `projectName` field. Preserve that value for snapshot path resolution
|
|
478
|
+
// when loading data produced by such reporters.
|
|
479
|
+
projectName: projectName ?? browser ?? "",
|
|
468
480
|
title: title ?? "",
|
|
469
481
|
location,
|
|
470
482
|
status: "running"
|
|
@@ -530,6 +542,7 @@ export {
|
|
|
530
542
|
TestBeginDataSchema,
|
|
531
543
|
TestEndDataSchema,
|
|
532
544
|
RunEndDataSchema,
|
|
545
|
+
RegisterDataSchema,
|
|
533
546
|
LoadedReportDataSchema,
|
|
534
547
|
OfflineReportSchema,
|
|
535
548
|
ApproveRequestBodySchema,
|
package/dist/cli.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -19368,6 +19368,7 @@ var TestDataSchema = external_exports.object({
|
|
|
19368
19368
|
id: external_exports.string(),
|
|
19369
19369
|
titlePath: external_exports.array(external_exports.string()),
|
|
19370
19370
|
browser: external_exports.string(),
|
|
19371
|
+
projectName: external_exports.string().optional(),
|
|
19371
19372
|
title: external_exports.string(),
|
|
19372
19373
|
skip: external_exports.union([external_exports.boolean(), external_exports.string()]).optional(),
|
|
19373
19374
|
retries: external_exports.number().optional(),
|
|
@@ -19392,7 +19393,7 @@ var CrvyRprtrSuiteSchema = external_exports.lazy(
|
|
|
19392
19393
|
})
|
|
19393
19394
|
);
|
|
19394
19395
|
var IncomingWebSocketMessageSchema = external_exports.object({
|
|
19395
|
-
type: external_exports.enum(["test-begin", "test-end", "run-end", "approve", "sync"]),
|
|
19396
|
+
type: external_exports.enum(["test-begin", "test-end", "run-end", "approve", "sync", "register"]),
|
|
19396
19397
|
data: external_exports.unknown()
|
|
19397
19398
|
});
|
|
19398
19399
|
var WebSocketMessageSchema = external_exports.discriminatedUnion("type", [
|
|
@@ -19419,6 +19420,7 @@ var TestBeginDataSchema = external_exports.object({
|
|
|
19419
19420
|
title: external_exports.string(),
|
|
19420
19421
|
titlePath: external_exports.array(external_exports.string()),
|
|
19421
19422
|
browser: external_exports.string(),
|
|
19423
|
+
projectName: external_exports.string().optional(),
|
|
19422
19424
|
location: LocationSchema
|
|
19423
19425
|
});
|
|
19424
19426
|
var TestEndDataSchema = external_exports.object({
|
|
@@ -19436,6 +19438,12 @@ var TestEndDataSchema = external_exports.object({
|
|
|
19436
19438
|
var RunEndDataSchema = external_exports.object({
|
|
19437
19439
|
status: external_exports.enum(["passed", "failed", "skipped"])
|
|
19438
19440
|
});
|
|
19441
|
+
var RegisterDataSchema = external_exports.object({
|
|
19442
|
+
playwrightSnapshotDir: external_exports.string().optional(),
|
|
19443
|
+
playwrightTestDir: external_exports.string().optional(),
|
|
19444
|
+
playwrightSnapshotPathTemplate: external_exports.string().optional(),
|
|
19445
|
+
playwrightToHaveScreenshotPathTemplate: external_exports.string().optional()
|
|
19446
|
+
});
|
|
19439
19447
|
var ReportDataSchema = external_exports.object({
|
|
19440
19448
|
isRunning: external_exports.boolean(),
|
|
19441
19449
|
tests: external_exports.record(external_exports.string(), TestDataSchema),
|
|
@@ -19612,6 +19620,10 @@ function hasScreenshots(item) {
|
|
|
19612
19620
|
}
|
|
19613
19621
|
|
|
19614
19622
|
// src/client/helpers/path.ts
|
|
19623
|
+
var DEFAULT_BROWSER_KEY = "default";
|
|
19624
|
+
function browserKeyFor(browser) {
|
|
19625
|
+
return browser === "" ? DEFAULT_BROWSER_KEY : browser;
|
|
19626
|
+
}
|
|
19615
19627
|
function getTestPath(test) {
|
|
19616
19628
|
return [...test.titlePath, test.title, test.browser].filter(isDefined);
|
|
19617
19629
|
}
|
|
@@ -19670,7 +19682,7 @@ function treeifyTests(testsById) {
|
|
|
19670
19682
|
Object.values(testsById).forEach((test) => {
|
|
19671
19683
|
if (test === void 0) return;
|
|
19672
19684
|
const titlePath = test.titlePath ?? [];
|
|
19673
|
-
const browser = test.browser ?? "";
|
|
19685
|
+
const browser = browserKeyFor(test.browser ?? "");
|
|
19674
19686
|
const title = test.title;
|
|
19675
19687
|
const pathParts = [...titlePath, title, browser].filter((p) => p !== void 0 && p !== "");
|
|
19676
19688
|
const [browserName, ...testPathParts] = pathParts.reverse();
|
|
@@ -19857,8 +19869,8 @@ function collectTestsById(suite) {
|
|
|
19857
19869
|
function pathTokensFor(test) {
|
|
19858
19870
|
const titlePath = test.titlePath ?? [];
|
|
19859
19871
|
const title = test.title;
|
|
19860
|
-
|
|
19861
|
-
|
|
19872
|
+
if (title === void 0 || title === "") return null;
|
|
19873
|
+
const browser = browserKeyFor(test.browser ?? "");
|
|
19862
19874
|
const pathParts = [...titlePath, title, browser].filter((p) => p !== void 0 && p !== "");
|
|
19863
19875
|
const reversed = pathParts.reverse();
|
|
19864
19876
|
const browserKey = reversed[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-state.d.ts","sourceRoot":"","sources":["../src/report-state.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,KAAK,EAAU,QAAQ,EAAc,MAAM,YAAY,CAAA;AAE9D,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,iBAAiB,CAAA;IAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,KAAK,sBAAsB,GAAG,WAAW,GAAG;IAC1C,kBAAkB,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAA;CACtD,CAAA;AA0DD,wBAAgB,wBAAwB,CAAC,aAAa,SAAkB,GAAG,kBAAkB,CAW5F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"report-state.d.ts","sourceRoot":"","sources":["../src/report-state.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,KAAK,EAAU,QAAQ,EAAc,MAAM,YAAY,CAAA;AAE9D,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,iBAAiB,CAAA;IAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,KAAK,sBAAsB,GAAG,WAAW,GAAG;IAC1C,kBAAkB,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAA;CACtD,CAAA;AA0DD,wBAAgB,wBAAwB,CAAC,aAAa,SAAkB,GAAG,kBAAkB,CAW5F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,GAAG,QAAQ,CAiB5F;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,sBAAsB,EAC5B,OAAO,GAAE;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5C,kBAAkB,GAAG,IAAI,CAyC3B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAa/G"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { TestResult } from '@playwright/test/reporter';
|
|
2
|
+
import type { AttachmentData } from './reporter-utils.ts';
|
|
3
|
+
import type { ResolvedBaselineTarget } from './snapshot-path-resolver.ts';
|
|
4
|
+
export interface CrvyRprtrOptions {
|
|
5
|
+
serverUrl?: string;
|
|
6
|
+
screenshotDir?: string;
|
|
7
|
+
offlineReportPath?: string;
|
|
8
|
+
reportHtmlPath?: string;
|
|
9
|
+
playwrightSnapshotDir?: string;
|
|
10
|
+
playwrightSnapshotPathTemplate?: string;
|
|
11
|
+
playwrightToHaveScreenshotPathTemplate?: string;
|
|
12
|
+
ci?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface PendingPortableArtifact {
|
|
15
|
+
testId: string;
|
|
16
|
+
status: TestResult['status'];
|
|
17
|
+
resolvedTargets: ResolvedBaselineTarget[];
|
|
18
|
+
nativeAttachments: AttachmentData[];
|
|
19
|
+
eventData: {
|
|
20
|
+
attachments: AttachmentData[];
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export declare function collectNativeImageAttachments(result: TestResult): AttachmentData[];
|
|
24
|
+
//# sourceMappingURL=reporter-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter-helpers.d.ts","sourceRoot":"","sources":["../src/reporter-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,sCAAsC,CAAC,EAAE,MAAM,CAAA;IAC/C,EAAE,CAAC,EAAE,OAAO,CAAA;CACb;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC5B,eAAe,EAAE,sBAAsB,EAAE,CAAA;IACzC,iBAAiB,EAAE,cAAc,EAAE,CAAA;IACnC,SAAS,EAAE;QAAE,WAAW,EAAE,cAAc,EAAE,CAAA;KAAE,CAAA;CAC7C;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,EAAE,CAWlF"}
|
package/dist/reporter.cjs
CHANGED
|
@@ -190,12 +190,16 @@ function createMutableReportState(screenshotDir = "./screenshots") {
|
|
|
190
190
|
};
|
|
191
191
|
}
|
|
192
192
|
function applyTestBeginEvent(state, data) {
|
|
193
|
-
const { id, title, titlePath, browser, location } = data;
|
|
193
|
+
const { id, title, titlePath, browser, projectName, location } = data;
|
|
194
194
|
state.currentRunIds.add(id);
|
|
195
195
|
state.reportData.tests[id] ??= {
|
|
196
196
|
id,
|
|
197
197
|
titlePath: titlePath ?? [],
|
|
198
198
|
browser: browser ?? "",
|
|
199
|
+
// Older reporters sent the raw project name in `browser` and had no
|
|
200
|
+
// `projectName` field. Preserve that value for snapshot path resolution
|
|
201
|
+
// when loading data produced by such reporters.
|
|
202
|
+
projectName: projectName ?? browser ?? "",
|
|
199
203
|
title: title ?? "",
|
|
200
204
|
location,
|
|
201
205
|
status: "running"
|
|
@@ -299,6 +303,7 @@ var TestDataSchema = import_zod.z.object({
|
|
|
299
303
|
id: import_zod.z.string(),
|
|
300
304
|
titlePath: import_zod.z.array(import_zod.z.string()),
|
|
301
305
|
browser: import_zod.z.string(),
|
|
306
|
+
projectName: import_zod.z.string().optional(),
|
|
302
307
|
title: import_zod.z.string(),
|
|
303
308
|
skip: import_zod.z.union([import_zod.z.boolean(), import_zod.z.string()]).optional(),
|
|
304
309
|
retries: import_zod.z.number().optional(),
|
|
@@ -323,7 +328,7 @@ var CrvyRprtrSuiteSchema = import_zod.z.lazy(
|
|
|
323
328
|
})
|
|
324
329
|
);
|
|
325
330
|
var IncomingWebSocketMessageSchema = import_zod.z.object({
|
|
326
|
-
type: import_zod.z.enum(["test-begin", "test-end", "run-end", "approve", "sync"]),
|
|
331
|
+
type: import_zod.z.enum(["test-begin", "test-end", "run-end", "approve", "sync", "register"]),
|
|
327
332
|
data: import_zod.z.unknown()
|
|
328
333
|
});
|
|
329
334
|
var WebSocketMessageSchema = import_zod.z.discriminatedUnion("type", [
|
|
@@ -350,6 +355,7 @@ var TestBeginDataSchema = import_zod.z.object({
|
|
|
350
355
|
title: import_zod.z.string(),
|
|
351
356
|
titlePath: import_zod.z.array(import_zod.z.string()),
|
|
352
357
|
browser: import_zod.z.string(),
|
|
358
|
+
projectName: import_zod.z.string().optional(),
|
|
353
359
|
location: LocationSchema
|
|
354
360
|
});
|
|
355
361
|
var TestEndDataSchema = import_zod.z.object({
|
|
@@ -367,6 +373,12 @@ var TestEndDataSchema = import_zod.z.object({
|
|
|
367
373
|
var RunEndDataSchema = import_zod.z.object({
|
|
368
374
|
status: import_zod.z.enum(["passed", "failed", "skipped"])
|
|
369
375
|
});
|
|
376
|
+
var RegisterDataSchema = import_zod.z.object({
|
|
377
|
+
playwrightSnapshotDir: import_zod.z.string().optional(),
|
|
378
|
+
playwrightTestDir: import_zod.z.string().optional(),
|
|
379
|
+
playwrightSnapshotPathTemplate: import_zod.z.string().optional(),
|
|
380
|
+
playwrightToHaveScreenshotPathTemplate: import_zod.z.string().optional()
|
|
381
|
+
});
|
|
370
382
|
var ReportDataSchema = import_zod.z.object({
|
|
371
383
|
isRunning: import_zod.z.boolean(),
|
|
372
384
|
tests: import_zod.z.record(import_zod.z.string(), TestDataSchema),
|
|
@@ -627,6 +639,17 @@ async function writeStaticArtifact(runEvents, screenshotDir, reportHtmlPath) {
|
|
|
627
639
|
}
|
|
628
640
|
}
|
|
629
641
|
|
|
642
|
+
// src/reporter-helpers.ts
|
|
643
|
+
function collectNativeImageAttachments(result) {
|
|
644
|
+
return result.attachments.filter(
|
|
645
|
+
(attachment) => attachment.contentType === "image/png" && attachment.path !== void 0
|
|
646
|
+
).map((attachment) => ({
|
|
647
|
+
name: attachment.name,
|
|
648
|
+
path: attachment.path,
|
|
649
|
+
contentType: attachment.contentType
|
|
650
|
+
}));
|
|
651
|
+
}
|
|
652
|
+
|
|
630
653
|
// src/reporter-utils.ts
|
|
631
654
|
var NAMED_SCREENSHOT_STEP_TITLE = /toHaveScreenshot\((.+?)\)/;
|
|
632
655
|
var UNNAMED_SCREENSHOT_STEP_TITLE = /^Expect "toHaveScreenshot"(?:\s|$)/;
|
|
@@ -868,15 +891,6 @@ function resolveBaselineTargets(input) {
|
|
|
868
891
|
}
|
|
869
892
|
|
|
870
893
|
// src/reporter.ts
|
|
871
|
-
function collectNativeImageAttachments(result) {
|
|
872
|
-
return result.attachments.filter(
|
|
873
|
-
(attachment) => attachment.contentType === "image/png" && attachment.path !== void 0
|
|
874
|
-
).map((attachment) => ({
|
|
875
|
-
name: attachment.name,
|
|
876
|
-
path: attachment.path,
|
|
877
|
-
contentType: attachment.contentType
|
|
878
|
-
}));
|
|
879
|
-
}
|
|
880
894
|
var CrvyRprtr = class {
|
|
881
895
|
ws = null;
|
|
882
896
|
serverUrl;
|
|
@@ -904,9 +918,7 @@ var CrvyRprtr = class {
|
|
|
904
918
|
this.playwrightSnapshotPathTemplate = options.playwrightSnapshotPathTemplate;
|
|
905
919
|
this.playwrightToHaveScreenshotPathTemplate = options.playwrightToHaveScreenshotPathTemplate;
|
|
906
920
|
this.ci = options.ci ?? isCI();
|
|
907
|
-
if (this.ci)
|
|
908
|
-
this.isOfflineMode = true;
|
|
909
|
-
}
|
|
921
|
+
if (this.ci) this.isOfflineMode = true;
|
|
910
922
|
}
|
|
911
923
|
async onBegin(config, suite) {
|
|
912
924
|
this.configDir = config.configFile === void 0 ? config.rootDir : (0, import_path5.dirname)(config.configFile);
|
|
@@ -914,6 +926,7 @@ var CrvyRprtr = class {
|
|
|
914
926
|
await (0, import_promises3.mkdir)(this.screenshotDir, { recursive: true });
|
|
915
927
|
if (!this.ci) {
|
|
916
928
|
this.connect();
|
|
929
|
+
this.sendRegister(config);
|
|
917
930
|
}
|
|
918
931
|
}
|
|
919
932
|
connect() {
|
|
@@ -949,24 +962,53 @@ var CrvyRprtr = class {
|
|
|
949
962
|
this.isOfflineMode = true;
|
|
950
963
|
log("[CrvyRprtr] Offline mode enabled - events will be queued to file");
|
|
951
964
|
}
|
|
965
|
+
sendRegister(config) {
|
|
966
|
+
const snapshotDir = this.playwrightSnapshotDir ?? config.projects[0]?.snapshotDir;
|
|
967
|
+
const testDir = this.playwrightSnapshotDir === void 0 ? config.projects[0]?.testDir : void 0;
|
|
968
|
+
this.send({
|
|
969
|
+
type: "register",
|
|
970
|
+
data: {
|
|
971
|
+
playwrightSnapshotDir: typeof snapshotDir === "string" ? snapshotDir : void 0,
|
|
972
|
+
playwrightTestDir: typeof testDir === "string" ? testDir : void 0,
|
|
973
|
+
playwrightSnapshotPathTemplate: this.playwrightSnapshotPathTemplate,
|
|
974
|
+
playwrightToHaveScreenshotPathTemplate: this.playwrightToHaveScreenshotPathTemplate
|
|
975
|
+
}
|
|
976
|
+
});
|
|
977
|
+
}
|
|
952
978
|
describeTitlePath(test) {
|
|
953
979
|
const titlePath = [];
|
|
954
980
|
for (let suite = test.parent; suite?.type === "describe"; suite = suite.parent)
|
|
955
981
|
titlePath.unshift(suite.title);
|
|
956
982
|
return titlePath;
|
|
957
983
|
}
|
|
984
|
+
/** Resolves a non-empty browser label for UI display, falling back to the
|
|
985
|
+
* configured browser engine since the raw project `name` is `""` for the
|
|
986
|
+
* default project and devices spread `defaultBrowserType` into `use`. */
|
|
987
|
+
resolveBrowserLabel(project) {
|
|
988
|
+
const name = project?.name;
|
|
989
|
+
if (name !== void 0 && name !== "") return name;
|
|
990
|
+
const browserName = project?.use?.browserName;
|
|
991
|
+
if (browserName !== void 0) return browserName;
|
|
992
|
+
const defaultBrowserType = project?.use?.defaultBrowserType;
|
|
993
|
+
if (defaultBrowserType !== void 0) return defaultBrowserType;
|
|
994
|
+
return "chromium";
|
|
995
|
+
}
|
|
958
996
|
reporterTitlePath(test) {
|
|
959
|
-
return typeof test.titlePath === "function" ? test.titlePath() : ["", test.parent.project()?.name ?? "
|
|
997
|
+
return typeof test.titlePath === "function" ? test.titlePath() : ["", test.parent.project()?.name ?? "", test.location.file, ...this.describeTitlePath(test), test.title];
|
|
960
998
|
}
|
|
961
999
|
onTestBegin(test) {
|
|
962
|
-
|
|
1000
|
+
const project = test.parent.project();
|
|
1001
|
+
this.testMetadata.set(test.id, {
|
|
1002
|
+
reporterTitlePath: this.reporterTitlePath(test)
|
|
1003
|
+
});
|
|
963
1004
|
this.send({
|
|
964
1005
|
type: "test-begin",
|
|
965
1006
|
data: {
|
|
966
1007
|
id: test.id,
|
|
967
1008
|
title: test.title,
|
|
968
1009
|
titlePath: this.describeTitlePath(test),
|
|
969
|
-
browser:
|
|
1010
|
+
browser: this.resolveBrowserLabel(project),
|
|
1011
|
+
projectName: project?.name ?? "",
|
|
970
1012
|
location: { file: test.location.file, line: test.location.line }
|
|
971
1013
|
}
|
|
972
1014
|
});
|
package/dist/reporter.d.ts
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
import type { FullConfig, FullResult, Reporter, Suite, TestCase, TestResult } from '@playwright/test/reporter';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
screenshotDir?: string;
|
|
5
|
-
offlineReportPath?: string;
|
|
6
|
-
reportHtmlPath?: string;
|
|
7
|
-
playwrightSnapshotDir?: string;
|
|
8
|
-
playwrightSnapshotPathTemplate?: string;
|
|
9
|
-
playwrightToHaveScreenshotPathTemplate?: string;
|
|
10
|
-
ci?: boolean;
|
|
11
|
-
}
|
|
2
|
+
import { type CrvyRprtrOptions } from './reporter-helpers.ts';
|
|
3
|
+
export type { CrvyRprtrOptions };
|
|
12
4
|
export declare class CrvyRprtr implements Reporter {
|
|
13
5
|
private ws;
|
|
14
6
|
private serverUrl;
|
|
@@ -30,7 +22,12 @@ export declare class CrvyRprtr implements Reporter {
|
|
|
30
22
|
onBegin(config: FullConfig, suite: Suite): Promise<void>;
|
|
31
23
|
private connect;
|
|
32
24
|
private enableOfflineMode;
|
|
25
|
+
private sendRegister;
|
|
33
26
|
private describeTitlePath;
|
|
27
|
+
/** Resolves a non-empty browser label for UI display, falling back to the
|
|
28
|
+
* configured browser engine since the raw project `name` is `""` for the
|
|
29
|
+
* default project and devices spread `defaultBrowserType` into `use`. */
|
|
30
|
+
private resolveBrowserLabel;
|
|
34
31
|
private reporterTitlePath;
|
|
35
32
|
onTestBegin(test: TestCase): void;
|
|
36
33
|
onTestEnd(test: TestCase, result: TestResult): void;
|
package/dist/reporter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,UAAU,EAEV,UAAU,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,UAAU,EACX,MAAM,2BAA2B,CAAA;AAalC,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,uBAAuB,CAAA;AAS9B,YAAY,EAAE,gBAAgB,EAAE,CAAA;AAEhC,qBAAa,SAAU,YAAW,QAAQ;IACxC,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,YAAY,CAAqD;IACzE,OAAO,CAAC,qBAAqB,CAAC,CAAQ;IACtC,OAAO,CAAC,8BAA8B,CAAC,CAAQ;IAC/C,OAAO,CAAC,sCAAsC,CAAC,CAAQ;IACvD,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,gBAAgB,CAAgC;gBAE5C,OAAO,GAAE,gBAAqB;IAapC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9D,OAAO,CAAC,OAAO;IA6Bf,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,iBAAiB;IAOzB;;6EAEyE;IACzE,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,iBAAiB;IAOzB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAkBjC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAmCnD,OAAO,CAAC,aAAa;YAqBP,uBAAuB;IAgB/B,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC9C,OAAO,CAAC,IAAI;CAUb;AAED,eAAe,SAAS,CAAA"}
|
package/dist/reporter.js
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
resolveBaselineTargets,
|
|
10
10
|
safeParse,
|
|
11
11
|
withResolvedVisualNames
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-X2TCDD54.js";
|
|
13
13
|
|
|
14
14
|
// src/reporter.ts
|
|
15
15
|
import { existsSync } from "fs";
|
|
@@ -250,6 +250,17 @@ async function writeStaticArtifact(runEvents, screenshotDir, reportHtmlPath) {
|
|
|
250
250
|
}
|
|
251
251
|
}
|
|
252
252
|
|
|
253
|
+
// src/reporter-helpers.ts
|
|
254
|
+
function collectNativeImageAttachments(result) {
|
|
255
|
+
return result.attachments.filter(
|
|
256
|
+
(attachment) => attachment.contentType === "image/png" && attachment.path !== void 0
|
|
257
|
+
).map((attachment) => ({
|
|
258
|
+
name: attachment.name,
|
|
259
|
+
path: attachment.path,
|
|
260
|
+
contentType: attachment.contentType
|
|
261
|
+
}));
|
|
262
|
+
}
|
|
263
|
+
|
|
253
264
|
// src/reporter-utils.ts
|
|
254
265
|
var NAMED_SCREENSHOT_STEP_TITLE = /toHaveScreenshot\((.+?)\)/;
|
|
255
266
|
var UNNAMED_SCREENSHOT_STEP_TITLE = /^Expect "toHaveScreenshot"(?:\s|$)/;
|
|
@@ -320,15 +331,6 @@ function extractScreenshotDeclarations(steps) {
|
|
|
320
331
|
}
|
|
321
332
|
|
|
322
333
|
// src/reporter.ts
|
|
323
|
-
function collectNativeImageAttachments(result) {
|
|
324
|
-
return result.attachments.filter(
|
|
325
|
-
(attachment) => attachment.contentType === "image/png" && attachment.path !== void 0
|
|
326
|
-
).map((attachment) => ({
|
|
327
|
-
name: attachment.name,
|
|
328
|
-
path: attachment.path,
|
|
329
|
-
contentType: attachment.contentType
|
|
330
|
-
}));
|
|
331
|
-
}
|
|
332
334
|
var CrvyRprtr = class {
|
|
333
335
|
ws = null;
|
|
334
336
|
serverUrl;
|
|
@@ -356,9 +358,7 @@ var CrvyRprtr = class {
|
|
|
356
358
|
this.playwrightSnapshotPathTemplate = options.playwrightSnapshotPathTemplate;
|
|
357
359
|
this.playwrightToHaveScreenshotPathTemplate = options.playwrightToHaveScreenshotPathTemplate;
|
|
358
360
|
this.ci = options.ci ?? isCI();
|
|
359
|
-
if (this.ci)
|
|
360
|
-
this.isOfflineMode = true;
|
|
361
|
-
}
|
|
361
|
+
if (this.ci) this.isOfflineMode = true;
|
|
362
362
|
}
|
|
363
363
|
async onBegin(config, suite) {
|
|
364
364
|
this.configDir = config.configFile === void 0 ? config.rootDir : dirname3(config.configFile);
|
|
@@ -366,6 +366,7 @@ var CrvyRprtr = class {
|
|
|
366
366
|
await mkdir3(this.screenshotDir, { recursive: true });
|
|
367
367
|
if (!this.ci) {
|
|
368
368
|
this.connect();
|
|
369
|
+
this.sendRegister(config);
|
|
369
370
|
}
|
|
370
371
|
}
|
|
371
372
|
connect() {
|
|
@@ -401,24 +402,53 @@ var CrvyRprtr = class {
|
|
|
401
402
|
this.isOfflineMode = true;
|
|
402
403
|
log("[CrvyRprtr] Offline mode enabled - events will be queued to file");
|
|
403
404
|
}
|
|
405
|
+
sendRegister(config) {
|
|
406
|
+
const snapshotDir = this.playwrightSnapshotDir ?? config.projects[0]?.snapshotDir;
|
|
407
|
+
const testDir = this.playwrightSnapshotDir === void 0 ? config.projects[0]?.testDir : void 0;
|
|
408
|
+
this.send({
|
|
409
|
+
type: "register",
|
|
410
|
+
data: {
|
|
411
|
+
playwrightSnapshotDir: typeof snapshotDir === "string" ? snapshotDir : void 0,
|
|
412
|
+
playwrightTestDir: typeof testDir === "string" ? testDir : void 0,
|
|
413
|
+
playwrightSnapshotPathTemplate: this.playwrightSnapshotPathTemplate,
|
|
414
|
+
playwrightToHaveScreenshotPathTemplate: this.playwrightToHaveScreenshotPathTemplate
|
|
415
|
+
}
|
|
416
|
+
});
|
|
417
|
+
}
|
|
404
418
|
describeTitlePath(test) {
|
|
405
419
|
const titlePath = [];
|
|
406
420
|
for (let suite = test.parent; suite?.type === "describe"; suite = suite.parent)
|
|
407
421
|
titlePath.unshift(suite.title);
|
|
408
422
|
return titlePath;
|
|
409
423
|
}
|
|
424
|
+
/** Resolves a non-empty browser label for UI display, falling back to the
|
|
425
|
+
* configured browser engine since the raw project `name` is `""` for the
|
|
426
|
+
* default project and devices spread `defaultBrowserType` into `use`. */
|
|
427
|
+
resolveBrowserLabel(project) {
|
|
428
|
+
const name = project?.name;
|
|
429
|
+
if (name !== void 0 && name !== "") return name;
|
|
430
|
+
const browserName = project?.use?.browserName;
|
|
431
|
+
if (browserName !== void 0) return browserName;
|
|
432
|
+
const defaultBrowserType = project?.use?.defaultBrowserType;
|
|
433
|
+
if (defaultBrowserType !== void 0) return defaultBrowserType;
|
|
434
|
+
return "chromium";
|
|
435
|
+
}
|
|
410
436
|
reporterTitlePath(test) {
|
|
411
|
-
return typeof test.titlePath === "function" ? test.titlePath() : ["", test.parent.project()?.name ?? "
|
|
437
|
+
return typeof test.titlePath === "function" ? test.titlePath() : ["", test.parent.project()?.name ?? "", test.location.file, ...this.describeTitlePath(test), test.title];
|
|
412
438
|
}
|
|
413
439
|
onTestBegin(test) {
|
|
414
|
-
|
|
440
|
+
const project = test.parent.project();
|
|
441
|
+
this.testMetadata.set(test.id, {
|
|
442
|
+
reporterTitlePath: this.reporterTitlePath(test)
|
|
443
|
+
});
|
|
415
444
|
this.send({
|
|
416
445
|
type: "test-begin",
|
|
417
446
|
data: {
|
|
418
447
|
id: test.id,
|
|
419
448
|
title: test.title,
|
|
420
449
|
titlePath: this.describeTitlePath(test),
|
|
421
|
-
browser:
|
|
450
|
+
browser: this.resolveBrowserLabel(project),
|
|
451
|
+
projectName: project?.name ?? "",
|
|
422
452
|
location: { file: test.location.file, line: test.location.line }
|
|
423
453
|
}
|
|
424
454
|
});
|
package/dist/schemas.d.ts
CHANGED
|
@@ -93,6 +93,7 @@ export declare const TestDataSchema: z.ZodObject<{
|
|
|
93
93
|
id: z.ZodString;
|
|
94
94
|
titlePath: z.ZodArray<z.ZodString>;
|
|
95
95
|
browser: z.ZodString;
|
|
96
|
+
projectName: z.ZodOptional<z.ZodString>;
|
|
96
97
|
title: z.ZodString;
|
|
97
98
|
skip: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
98
99
|
retries: z.ZodOptional<z.ZodNumber>;
|
|
@@ -153,6 +154,7 @@ export declare const CrvyRprtrTestSchema: z.ZodObject<{
|
|
|
153
154
|
id: z.ZodString;
|
|
154
155
|
titlePath: z.ZodArray<z.ZodString>;
|
|
155
156
|
browser: z.ZodString;
|
|
157
|
+
projectName: z.ZodOptional<z.ZodString>;
|
|
156
158
|
title: z.ZodString;
|
|
157
159
|
skip: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
158
160
|
retries: z.ZodOptional<z.ZodNumber>;
|
|
@@ -227,6 +229,7 @@ export declare const IncomingWebSocketMessageSchema: z.ZodObject<{
|
|
|
227
229
|
"run-end": "run-end";
|
|
228
230
|
approve: "approve";
|
|
229
231
|
sync: "sync";
|
|
232
|
+
register: "register";
|
|
230
233
|
}>;
|
|
231
234
|
data: z.ZodUnknown;
|
|
232
235
|
}, z.core.$strip>;
|
|
@@ -237,6 +240,7 @@ export declare const WebSocketMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
237
240
|
id: z.ZodString;
|
|
238
241
|
titlePath: z.ZodArray<z.ZodString>;
|
|
239
242
|
browser: z.ZodString;
|
|
243
|
+
projectName: z.ZodOptional<z.ZodString>;
|
|
240
244
|
title: z.ZodString;
|
|
241
245
|
skip: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
242
246
|
retries: z.ZodOptional<z.ZodNumber>;
|
|
@@ -298,6 +302,7 @@ export declare const WebSocketMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
298
302
|
id: z.ZodString;
|
|
299
303
|
titlePath: z.ZodArray<z.ZodString>;
|
|
300
304
|
browser: z.ZodString;
|
|
305
|
+
projectName: z.ZodOptional<z.ZodString>;
|
|
301
306
|
title: z.ZodString;
|
|
302
307
|
skip: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
303
308
|
retries: z.ZodOptional<z.ZodNumber>;
|
|
@@ -370,6 +375,7 @@ export declare const WebSocketMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
370
375
|
id: z.ZodString;
|
|
371
376
|
titlePath: z.ZodArray<z.ZodString>;
|
|
372
377
|
browser: z.ZodString;
|
|
378
|
+
projectName: z.ZodOptional<z.ZodString>;
|
|
373
379
|
title: z.ZodString;
|
|
374
380
|
skip: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
375
381
|
retries: z.ZodOptional<z.ZodNumber>;
|
|
@@ -437,6 +443,7 @@ export declare const TestBeginDataSchema: z.ZodObject<{
|
|
|
437
443
|
title: z.ZodString;
|
|
438
444
|
titlePath: z.ZodArray<z.ZodString>;
|
|
439
445
|
browser: z.ZodString;
|
|
446
|
+
projectName: z.ZodOptional<z.ZodString>;
|
|
440
447
|
location: z.ZodObject<{
|
|
441
448
|
file: z.ZodString;
|
|
442
449
|
line: z.ZodNumber;
|
|
@@ -479,12 +486,20 @@ export declare const RunEndDataSchema: z.ZodObject<{
|
|
|
479
486
|
}>;
|
|
480
487
|
}, z.core.$strip>;
|
|
481
488
|
export type RunEndData = z.infer<typeof RunEndDataSchema>;
|
|
489
|
+
export declare const RegisterDataSchema: z.ZodObject<{
|
|
490
|
+
playwrightSnapshotDir: z.ZodOptional<z.ZodString>;
|
|
491
|
+
playwrightTestDir: z.ZodOptional<z.ZodString>;
|
|
492
|
+
playwrightSnapshotPathTemplate: z.ZodOptional<z.ZodString>;
|
|
493
|
+
playwrightToHaveScreenshotPathTemplate: z.ZodOptional<z.ZodString>;
|
|
494
|
+
}, z.core.$strip>;
|
|
495
|
+
export type RegisterData = z.infer<typeof RegisterDataSchema>;
|
|
482
496
|
export declare const ReportDataSchema: z.ZodObject<{
|
|
483
497
|
isRunning: z.ZodBoolean;
|
|
484
498
|
tests: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
485
499
|
id: z.ZodString;
|
|
486
500
|
titlePath: z.ZodArray<z.ZodString>;
|
|
487
501
|
browser: z.ZodString;
|
|
502
|
+
projectName: z.ZodOptional<z.ZodString>;
|
|
488
503
|
title: z.ZodString;
|
|
489
504
|
skip: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
490
505
|
retries: z.ZodOptional<z.ZodNumber>;
|
|
@@ -550,6 +565,7 @@ export declare const LoadedReportDataSchema: z.ZodObject<{
|
|
|
550
565
|
id: z.ZodString;
|
|
551
566
|
titlePath: z.ZodArray<z.ZodString>;
|
|
552
567
|
browser: z.ZodString;
|
|
568
|
+
projectName: z.ZodOptional<z.ZodString>;
|
|
553
569
|
title: z.ZodString;
|
|
554
570
|
skip: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
555
571
|
retries: z.ZodOptional<z.ZodNumber>;
|
|
@@ -646,6 +662,7 @@ export declare const ReportApiResponseSchema: z.ZodObject<{
|
|
|
646
662
|
id: z.ZodString;
|
|
647
663
|
titlePath: z.ZodArray<z.ZodString>;
|
|
648
664
|
browser: z.ZodString;
|
|
665
|
+
projectName: z.ZodOptional<z.ZodString>;
|
|
649
666
|
title: z.ZodString;
|
|
650
667
|
skip: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
651
668
|
retries: z.ZodOptional<z.ZodNumber>;
|
|
@@ -710,6 +727,7 @@ export declare const ClientBootstrapDataSchema: z.ZodObject<{
|
|
|
710
727
|
id: z.ZodString;
|
|
711
728
|
titlePath: z.ZodArray<z.ZodString>;
|
|
712
729
|
browser: z.ZodString;
|
|
730
|
+
projectName: z.ZodOptional<z.ZodString>;
|
|
713
731
|
title: z.ZodString;
|
|
714
732
|
skip: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
715
733
|
retries: z.ZodOptional<z.ZodNumber>;
|
package/dist/schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,cAAc;;;iBAGzB,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAErD,eAAO,MAAM,kBAAkB;;;;EAA2D,CAAA;AAE1F,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAG7D,eAAO,MAAM,YAAY;;;;;;;;;;iBAMvB,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAEjD,eAAO,MAAM,2BAA2B;;;;;;;;;;2BAatC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAG/E,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAGzD,eAAO,MAAM,gBAAgB;;;;;;;;EAAyF,CAAA;AAEtH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD,eAAO,MAAM,sBAAsB;;;;EAA2C,CAAA;AAE9E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAGrE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO3B,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAGzD,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/server/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI/C,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,sCAAsC,CAAC,EAAE,MAAM,CAAA;CAChD;AAUD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAChC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClD,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAsMD,wBAAsB,eAAe,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CAmCrF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-routes.d.ts","sourceRoot":"","sources":["../../src/server/artifact-routes.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAWhD,wBAAsB,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgCpF;
|
|
1
|
+
{"version":3,"file":"artifact-routes.d.ts","sourceRoot":"","sources":["../../src/server/artifact-routes.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAWhD,wBAAsB,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgCpF;AAYD,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAA;AAE9D,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAyBf;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmCxF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAQhH"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { TestBeginData, TestEndData } from '../schemas.ts';
|
|
1
|
+
import type { RegisterData, TestBeginData, TestEndData } from '../schemas.ts';
|
|
2
2
|
import type { TestData } from '../types.ts';
|
|
3
3
|
import { type ApprovalRouting } from './artifact-routes.ts';
|
|
4
|
+
import type { RoutesContext } from './routes.ts';
|
|
4
5
|
import type { RuntimeWebSocket } from './ws.ts';
|
|
5
6
|
export interface HandlerContext {
|
|
6
7
|
reportData: {
|
|
@@ -14,6 +15,7 @@ export interface HandlerContext {
|
|
|
14
15
|
currentRunIds: Set<string>;
|
|
15
16
|
saveReport: () => Promise<void>;
|
|
16
17
|
approvalRouting?: ApprovalRouting;
|
|
18
|
+
routesContext: RoutesContext;
|
|
17
19
|
}
|
|
18
20
|
export declare function handleTestBegin(ctx: HandlerContext, data: TestBeginData): void;
|
|
19
21
|
export declare function handleTestEnd(ctx: HandlerContext, data: TestEndData): void;
|
|
@@ -22,4 +24,5 @@ export declare function handleRunEnd(ctx: HandlerContext, data: {
|
|
|
22
24
|
}): Promise<void>;
|
|
23
25
|
export declare function handleApprove(): void;
|
|
24
26
|
export declare function handleSync(ctx: HandlerContext): void;
|
|
27
|
+
export declare function handleRegister(ctx: HandlerContext, data: RegisterData): void;
|
|
25
28
|
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/server/handlers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/server/handlers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC7E,OAAO,KAAK,EAA0B,QAAQ,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAA+B,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE;QACV,SAAS,EAAE,OAAO,CAAA;QAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC/B,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,SAAS,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAChC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAM9E;AAwBD,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAiB1E;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;CAAE,GAChD,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAgB,aAAa,IAAI,IAAI,CAIpC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAWpD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAqC5E"}
|
package/dist/server/routes.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE;QACV,SAAS,EAAE,OAAO,CAAA;QAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC/B,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,aAAa,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE;QACV,SAAS,EAAE,OAAO,CAAA;QAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC/B,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,eAAe,CAAC,EAAE;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAA;QAC9B,8BAA8B,CAAC,EAAE,MAAM,CAAA;QACvC,sCAAsC,CAAC,EAAE,MAAM,CAAA;KAChD,CAAA;CACF;AAED,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAqMtG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CA6CrF"}
|
package/dist/server.cjs
CHANGED
|
@@ -169,12 +169,16 @@ function createMutableReportState(screenshotDir = "./screenshots") {
|
|
|
169
169
|
};
|
|
170
170
|
}
|
|
171
171
|
function applyTestBeginEvent(state, data) {
|
|
172
|
-
const { id, title, titlePath, browser, location } = data;
|
|
172
|
+
const { id, title, titlePath, browser, projectName, location } = data;
|
|
173
173
|
state.currentRunIds.add(id);
|
|
174
174
|
state.reportData.tests[id] ??= {
|
|
175
175
|
id,
|
|
176
176
|
titlePath: titlePath ?? [],
|
|
177
177
|
browser: browser ?? "",
|
|
178
|
+
// Older reporters sent the raw project name in `browser` and had no
|
|
179
|
+
// `projectName` field. Preserve that value for snapshot path resolution
|
|
180
|
+
// when loading data produced by such reporters.
|
|
181
|
+
projectName: projectName ?? browser ?? "",
|
|
178
182
|
title: title ?? "",
|
|
179
183
|
location,
|
|
180
184
|
status: "running"
|
|
@@ -278,6 +282,7 @@ var TestDataSchema = import_zod.z.object({
|
|
|
278
282
|
id: import_zod.z.string(),
|
|
279
283
|
titlePath: import_zod.z.array(import_zod.z.string()),
|
|
280
284
|
browser: import_zod.z.string(),
|
|
285
|
+
projectName: import_zod.z.string().optional(),
|
|
281
286
|
title: import_zod.z.string(),
|
|
282
287
|
skip: import_zod.z.union([import_zod.z.boolean(), import_zod.z.string()]).optional(),
|
|
283
288
|
retries: import_zod.z.number().optional(),
|
|
@@ -302,7 +307,7 @@ var CrvyRprtrSuiteSchema = import_zod.z.lazy(
|
|
|
302
307
|
})
|
|
303
308
|
);
|
|
304
309
|
var IncomingWebSocketMessageSchema = import_zod.z.object({
|
|
305
|
-
type: import_zod.z.enum(["test-begin", "test-end", "run-end", "approve", "sync"]),
|
|
310
|
+
type: import_zod.z.enum(["test-begin", "test-end", "run-end", "approve", "sync", "register"]),
|
|
306
311
|
data: import_zod.z.unknown()
|
|
307
312
|
});
|
|
308
313
|
var WebSocketMessageSchema = import_zod.z.discriminatedUnion("type", [
|
|
@@ -329,6 +334,7 @@ var TestBeginDataSchema = import_zod.z.object({
|
|
|
329
334
|
title: import_zod.z.string(),
|
|
330
335
|
titlePath: import_zod.z.array(import_zod.z.string()),
|
|
331
336
|
browser: import_zod.z.string(),
|
|
337
|
+
projectName: import_zod.z.string().optional(),
|
|
332
338
|
location: LocationSchema
|
|
333
339
|
});
|
|
334
340
|
var TestEndDataSchema = import_zod.z.object({
|
|
@@ -346,6 +352,12 @@ var TestEndDataSchema = import_zod.z.object({
|
|
|
346
352
|
var RunEndDataSchema = import_zod.z.object({
|
|
347
353
|
status: import_zod.z.enum(["passed", "failed", "skipped"])
|
|
348
354
|
});
|
|
355
|
+
var RegisterDataSchema = import_zod.z.object({
|
|
356
|
+
playwrightSnapshotDir: import_zod.z.string().optional(),
|
|
357
|
+
playwrightTestDir: import_zod.z.string().optional(),
|
|
358
|
+
playwrightSnapshotPathTemplate: import_zod.z.string().optional(),
|
|
359
|
+
playwrightToHaveScreenshotPathTemplate: import_zod.z.string().optional()
|
|
360
|
+
});
|
|
349
361
|
var ReportDataSchema = import_zod.z.object({
|
|
350
362
|
isRunning: import_zod.z.boolean(),
|
|
351
363
|
tests: import_zod.z.record(import_zod.z.string(), TestDataSchema),
|
|
@@ -766,7 +778,8 @@ async function handleFile(ctx, req) {
|
|
|
766
778
|
}
|
|
767
779
|
function reporterTitlePath(test) {
|
|
768
780
|
const testFile = test.location?.file;
|
|
769
|
-
|
|
781
|
+
const projectName = test.projectName ?? test.browser;
|
|
782
|
+
return ["", projectName, testFile ?? "", ...test.titlePath, test.title];
|
|
770
783
|
}
|
|
771
784
|
function resolveBaselineSnapshotPath(routing, test, retry, imageName) {
|
|
772
785
|
const testFile = test.location?.file;
|
|
@@ -782,7 +795,7 @@ function resolveBaselineSnapshotPath(routing, test, retry, imageName) {
|
|
|
782
795
|
configDir: routing.configDir,
|
|
783
796
|
testDir: routing.playwrightTestDir ?? (0, import_path6.dirname)(testFile),
|
|
784
797
|
snapshotDir: routing.playwrightSnapshotDir ?? (0, import_path6.dirname)(testFile),
|
|
785
|
-
projectName: test.browser,
|
|
798
|
+
projectName: test.projectName ?? test.browser,
|
|
786
799
|
snapshotSuffix: process.platform,
|
|
787
800
|
snapshotPathTemplate: routing.playwrightSnapshotPathTemplate,
|
|
788
801
|
toHaveScreenshotPathTemplate: routing.playwrightToHaveScreenshotPathTemplate
|
|
@@ -904,6 +917,40 @@ function handleSync(ctx) {
|
|
|
904
917
|
};
|
|
905
918
|
broadcastToBrowsers(ctx.wsClients, message);
|
|
906
919
|
}
|
|
920
|
+
function handleRegister(ctx, data) {
|
|
921
|
+
const roots = [];
|
|
922
|
+
if (data.playwrightSnapshotDir !== void 0 && data.playwrightSnapshotDir !== "") {
|
|
923
|
+
roots.push(data.playwrightSnapshotDir);
|
|
924
|
+
}
|
|
925
|
+
if (data.playwrightTestDir !== void 0 && data.playwrightTestDir !== "") {
|
|
926
|
+
roots.push(data.playwrightTestDir);
|
|
927
|
+
}
|
|
928
|
+
const existing = ctx.routesContext.artifactRoots ?? [];
|
|
929
|
+
for (const root of roots) {
|
|
930
|
+
if (!existing.includes(root)) {
|
|
931
|
+
existing.push(root);
|
|
932
|
+
}
|
|
933
|
+
}
|
|
934
|
+
ctx.routesContext.artifactRoots = existing;
|
|
935
|
+
if (ctx.routesContext.approvalRouting !== void 0) {
|
|
936
|
+
if (data.playwrightSnapshotDir !== void 0) {
|
|
937
|
+
ctx.routesContext.approvalRouting.playwrightSnapshotDir = data.playwrightSnapshotDir;
|
|
938
|
+
}
|
|
939
|
+
if (data.playwrightTestDir !== void 0) {
|
|
940
|
+
ctx.routesContext.approvalRouting.playwrightTestDir = data.playwrightTestDir;
|
|
941
|
+
}
|
|
942
|
+
if (data.playwrightSnapshotPathTemplate !== void 0) {
|
|
943
|
+
ctx.routesContext.approvalRouting.playwrightSnapshotPathTemplate = data.playwrightSnapshotPathTemplate;
|
|
944
|
+
}
|
|
945
|
+
if (data.playwrightToHaveScreenshotPathTemplate !== void 0) {
|
|
946
|
+
ctx.routesContext.approvalRouting.playwrightToHaveScreenshotPathTemplate = data.playwrightToHaveScreenshotPathTemplate;
|
|
947
|
+
}
|
|
948
|
+
}
|
|
949
|
+
console.log("[Server] Reporter registered with config:", {
|
|
950
|
+
playwrightSnapshotDir: data.playwrightSnapshotDir,
|
|
951
|
+
playwrightTestDir: data.playwrightTestDir
|
|
952
|
+
});
|
|
953
|
+
}
|
|
907
954
|
|
|
908
955
|
// src/server/routes.ts
|
|
909
956
|
var import_path7 = require("path");
|
|
@@ -1103,15 +1150,6 @@ function createReportData(options) {
|
|
|
1103
1150
|
screenshotDir: options.screenshotDir ?? "./screenshots"
|
|
1104
1151
|
};
|
|
1105
1152
|
}
|
|
1106
|
-
function createHandlerContext(reportData, wsClients, currentRunIds, saveReport, approvalRouting) {
|
|
1107
|
-
return {
|
|
1108
|
-
reportData,
|
|
1109
|
-
wsClients,
|
|
1110
|
-
currentRunIds,
|
|
1111
|
-
saveReport,
|
|
1112
|
-
approvalRouting
|
|
1113
|
-
};
|
|
1114
|
-
}
|
|
1115
1153
|
async function loadReport(reportPath, reportData) {
|
|
1116
1154
|
try {
|
|
1117
1155
|
const raw = await readJsonFile(reportPath);
|
|
@@ -1194,6 +1232,15 @@ async function handleParsedWebSocketMessage(ctx, msg) {
|
|
|
1194
1232
|
case "sync":
|
|
1195
1233
|
handleSync(ctx);
|
|
1196
1234
|
break;
|
|
1235
|
+
case "register": {
|
|
1236
|
+
const parsed = safeParse(RegisterDataSchema, msg.data);
|
|
1237
|
+
if (parsed === null) {
|
|
1238
|
+
console.error("Invalid register message data", msg.data);
|
|
1239
|
+
break;
|
|
1240
|
+
}
|
|
1241
|
+
handleRegister(ctx, parsed);
|
|
1242
|
+
break;
|
|
1243
|
+
}
|
|
1197
1244
|
}
|
|
1198
1245
|
}
|
|
1199
1246
|
function createWebSocketMessageHandler(getHandlerContext) {
|
|
@@ -1270,7 +1317,14 @@ async function createServerApp(options = {}) {
|
|
|
1270
1317
|
await writeJsonFile(reportFile, reportData);
|
|
1271
1318
|
}
|
|
1272
1319
|
const routesContext = createRoutesContext(reportData, staticDir, saveReport, options);
|
|
1273
|
-
const getHandlerContext = () =>
|
|
1320
|
+
const getHandlerContext = () => ({
|
|
1321
|
+
reportData,
|
|
1322
|
+
wsClients,
|
|
1323
|
+
currentRunIds,
|
|
1324
|
+
saveReport,
|
|
1325
|
+
approvalRouting: routesContext.approvalRouting,
|
|
1326
|
+
routesContext
|
|
1327
|
+
});
|
|
1274
1328
|
const handleRequest = (req) => handleHttpRequest(routesContext, req);
|
|
1275
1329
|
const handleWebSocketMessage = createWebSocketMessageHandler(getHandlerContext);
|
|
1276
1330
|
await loadReport(reportFile, reportData);
|
package/dist/server.js
CHANGED
package/dist/types.d.ts
CHANGED
|
@@ -30,6 +30,13 @@ export interface TestData {
|
|
|
30
30
|
id: string;
|
|
31
31
|
titlePath: string[];
|
|
32
32
|
browser: string;
|
|
33
|
+
/**
|
|
34
|
+
* Raw Playwright project name. Used for snapshot path resolution so the
|
|
35
|
+
* resolver matches what Playwright itself used when storing baselines
|
|
36
|
+
* (empty string for the implicit default project). Undefined for data
|
|
37
|
+
* produced by older reporters; consumers fall back to `browser`.
|
|
38
|
+
*/
|
|
39
|
+
projectName?: string;
|
|
33
40
|
title: string;
|
|
34
41
|
skip?: boolean | string;
|
|
35
42
|
retries?: number;
|
|
@@ -87,6 +94,7 @@ export interface TestBeginMessage {
|
|
|
87
94
|
title: string;
|
|
88
95
|
titlePath: string[];
|
|
89
96
|
browser: string;
|
|
97
|
+
projectName?: string;
|
|
90
98
|
location: Location;
|
|
91
99
|
};
|
|
92
100
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAEhE,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,eAAe,CAAA;AAE3E,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;AAE3G,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;AAE/D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,gBAAgB,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACxC,kBAAkB,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAA;IACrD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAA;IACjD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC,CAAA;CACnE;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAExE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAA;IAChE,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;IACvC,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAA;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,EAAE,CAAA;QACnB,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,QAAQ,CAAA;KACnB,CAAA;CACF;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;QACvC,WAAW,EAAE,UAAU,EAAE,CAAA;QACzB,WAAW,EAAE,MAAM,EAAE,CAAA;QACrB,kBAAkB,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAA;QACrD,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE;QAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;KAAE,CAAA;CAClD;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,CAAA;IAC3C,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IAC/E,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,YAAY,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC/B,YAAY,EAAE,OAAO,CAAA;KACtB,CAAA;IACD,WAAW,EAAE,OAAO,CAAA;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAEpE;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,CAKrD;AAGD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAGzF;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAGrG;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,EAAE,CAG7F"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|