@crvy/rprtr 0.1.4 → 0.2.2
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 +61 -0
- package/README.md +8 -7
- package/dist/{chunk-WRMHUY5A.js → chunk-HAFWYUNO.js} +181 -130
- package/dist/{chunk-KLGJSEKV.js → chunk-RFZGJSL3.js} +439 -127
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -4
- package/dist/index.css +26 -0
- package/dist/index.js +297 -76
- package/dist/offline-reports.d.ts +4 -0
- package/dist/offline-reports.d.ts.map +1 -1
- package/dist/report-state.d.ts +3 -1
- package/dist/report-state.d.ts.map +1 -1
- package/dist/reporter-utils.d.ts +0 -1
- package/dist/reporter-utils.d.ts.map +1 -1
- package/dist/reporter.cjs +186 -134
- package/dist/reporter.d.ts +1 -1
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +8 -6
- package/dist/schemas/http.d.ts +44 -0
- package/dist/schemas/http.d.ts.map +1 -0
- package/dist/schemas.d.ts +25 -6
- package/dist/schemas.d.ts.map +1 -1
- package/dist/server/app.d.ts +6 -0
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/handlers.d.ts +3 -0
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/playwright-config.d.ts +2 -0
- package/dist/server/playwright-config.d.ts.map +1 -0
- package/dist/server/routes-context.d.ts +13 -0
- package/dist/server/routes-context.d.ts.map +1 -0
- package/dist/server/routes.d.ts +6 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/run-controller.d.ts +85 -0
- package/dist/server/run-controller.d.ts.map +1 -0
- package/dist/server/run-routes.d.ts +3 -0
- package/dist/server/run-routes.d.ts.map +1 -0
- package/dist/server.cjs +633 -273
- package/dist/server.js +2 -2
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -5
package/dist/schemas.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
export * from './schemas/http.ts';
|
|
2
3
|
export declare const LocationSchema: z.ZodObject<{
|
|
3
4
|
file: z.ZodString;
|
|
4
5
|
line: z.ZodNumber;
|
|
6
|
+
column: z.ZodOptional<z.ZodNumber>;
|
|
5
7
|
}, z.core.$strip>;
|
|
6
8
|
export type Location = z.infer<typeof LocationSchema>;
|
|
7
9
|
export declare const VisualSourceSchema: z.ZodEnum<{
|
|
@@ -147,6 +149,7 @@ export declare const TestDataSchema: z.ZodObject<{
|
|
|
147
149
|
location: z.ZodOptional<z.ZodObject<{
|
|
148
150
|
file: z.ZodString;
|
|
149
151
|
line: z.ZodNumber;
|
|
152
|
+
column: z.ZodOptional<z.ZodNumber>;
|
|
150
153
|
}, z.core.$strip>>;
|
|
151
154
|
}, z.core.$strip>;
|
|
152
155
|
export type TestData = z.infer<typeof TestDataSchema>;
|
|
@@ -208,6 +211,7 @@ export declare const CrvyRprtrTestSchema: z.ZodObject<{
|
|
|
208
211
|
location: z.ZodOptional<z.ZodObject<{
|
|
209
212
|
file: z.ZodString;
|
|
210
213
|
line: z.ZodNumber;
|
|
214
|
+
column: z.ZodOptional<z.ZodNumber>;
|
|
211
215
|
}, z.core.$strip>>;
|
|
212
216
|
checked: z.ZodBoolean;
|
|
213
217
|
}, z.core.$strip>;
|
|
@@ -294,6 +298,7 @@ export declare const WebSocketMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
294
298
|
location: z.ZodOptional<z.ZodObject<{
|
|
295
299
|
file: z.ZodString;
|
|
296
300
|
line: z.ZodNumber;
|
|
301
|
+
column: z.ZodOptional<z.ZodNumber>;
|
|
297
302
|
}, z.core.$strip>>;
|
|
298
303
|
}, z.core.$strip>;
|
|
299
304
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -356,6 +361,7 @@ export declare const WebSocketMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
356
361
|
location: z.ZodOptional<z.ZodObject<{
|
|
357
362
|
file: z.ZodString;
|
|
358
363
|
line: z.ZodNumber;
|
|
364
|
+
column: z.ZodOptional<z.ZodNumber>;
|
|
359
365
|
}, z.core.$strip>>;
|
|
360
366
|
}, z.core.$strip>;
|
|
361
367
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -429,6 +435,7 @@ export declare const WebSocketMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
429
435
|
location: z.ZodOptional<z.ZodObject<{
|
|
430
436
|
file: z.ZodString;
|
|
431
437
|
line: z.ZodNumber;
|
|
438
|
+
column: z.ZodOptional<z.ZodNumber>;
|
|
432
439
|
}, z.core.$strip>>;
|
|
433
440
|
}, z.core.$strip>>;
|
|
434
441
|
isUpdateMode: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -436,6 +443,11 @@ export declare const WebSocketMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
436
443
|
}, z.core.$strip>, z.ZodObject<{
|
|
437
444
|
type: z.ZodLiteral<"approve">;
|
|
438
445
|
data: z.ZodUnknown;
|
|
446
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
447
|
+
type: z.ZodLiteral<"run-status">;
|
|
448
|
+
data: z.ZodObject<{
|
|
449
|
+
running: z.ZodBoolean;
|
|
450
|
+
}, z.core.$strip>;
|
|
439
451
|
}, z.core.$strip>], "type">;
|
|
440
452
|
export type WebSocketMessage = z.infer<typeof WebSocketMessageSchema>;
|
|
441
453
|
export declare const TestBeginDataSchema: z.ZodObject<{
|
|
@@ -447,6 +459,7 @@ export declare const TestBeginDataSchema: z.ZodObject<{
|
|
|
447
459
|
location: z.ZodObject<{
|
|
448
460
|
file: z.ZodString;
|
|
449
461
|
line: z.ZodNumber;
|
|
462
|
+
column: z.ZodOptional<z.ZodNumber>;
|
|
450
463
|
}, z.core.$strip>;
|
|
451
464
|
}, z.core.$strip>;
|
|
452
465
|
export type TestBeginData = z.infer<typeof TestBeginDataSchema>;
|
|
@@ -491,6 +504,8 @@ export declare const RegisterDataSchema: z.ZodObject<{
|
|
|
491
504
|
playwrightTestDir: z.ZodOptional<z.ZodString>;
|
|
492
505
|
playwrightSnapshotPathTemplate: z.ZodOptional<z.ZodString>;
|
|
493
506
|
playwrightToHaveScreenshotPathTemplate: z.ZodOptional<z.ZodString>;
|
|
507
|
+
configFile: z.ZodOptional<z.ZodString>;
|
|
508
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
494
509
|
}, z.core.$strip>;
|
|
495
510
|
export type RegisterData = z.infer<typeof RegisterDataSchema>;
|
|
496
511
|
export declare const ReportDataSchema: z.ZodObject<{
|
|
@@ -553,6 +568,7 @@ export declare const ReportDataSchema: z.ZodObject<{
|
|
|
553
568
|
location: z.ZodOptional<z.ZodObject<{
|
|
554
569
|
file: z.ZodString;
|
|
555
570
|
line: z.ZodNumber;
|
|
571
|
+
column: z.ZodOptional<z.ZodNumber>;
|
|
556
572
|
}, z.core.$strip>>;
|
|
557
573
|
}, z.core.$strip>>;
|
|
558
574
|
browsers: z.ZodArray<z.ZodString>;
|
|
@@ -619,6 +635,7 @@ export declare const LoadedReportDataSchema: z.ZodObject<{
|
|
|
619
635
|
location: z.ZodOptional<z.ZodObject<{
|
|
620
636
|
file: z.ZodString;
|
|
621
637
|
line: z.ZodNumber;
|
|
638
|
+
column: z.ZodOptional<z.ZodNumber>;
|
|
622
639
|
}, z.core.$strip>>;
|
|
623
640
|
}, z.core.$strip>>>;
|
|
624
641
|
isUpdateMode: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -651,12 +668,6 @@ export declare const OfflineReportSchema: z.ZodObject<{
|
|
|
651
668
|
}, z.core.$strip>>;
|
|
652
669
|
}, z.core.$strip>;
|
|
653
670
|
export type OfflineReport = z.infer<typeof OfflineReportSchema>;
|
|
654
|
-
export declare const ApproveRequestBodySchema: z.ZodObject<{
|
|
655
|
-
id: z.ZodString;
|
|
656
|
-
retry: z.ZodNumber;
|
|
657
|
-
image: z.ZodString;
|
|
658
|
-
}, z.core.$strip>;
|
|
659
|
-
export type ApproveRequestBody = z.infer<typeof ApproveRequestBodySchema>;
|
|
660
671
|
export declare const ReportApiResponseSchema: z.ZodObject<{
|
|
661
672
|
tests: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
662
673
|
id: z.ZodString;
|
|
@@ -716,9 +727,12 @@ export declare const ReportApiResponseSchema: z.ZodObject<{
|
|
|
716
727
|
location: z.ZodOptional<z.ZodObject<{
|
|
717
728
|
file: z.ZodString;
|
|
718
729
|
line: z.ZodNumber;
|
|
730
|
+
column: z.ZodOptional<z.ZodNumber>;
|
|
719
731
|
}, z.core.$strip>>;
|
|
720
732
|
}, z.core.$strip>>;
|
|
721
733
|
isUpdateMode: z.ZodOptional<z.ZodBoolean>;
|
|
734
|
+
isRunning: z.ZodOptional<z.ZodBoolean>;
|
|
735
|
+
runEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
722
736
|
}, z.core.$strip>;
|
|
723
737
|
export type ReportApiResponse = z.infer<typeof ReportApiResponseSchema>;
|
|
724
738
|
export declare const ClientBootstrapDataSchema: z.ZodObject<{
|
|
@@ -781,13 +795,18 @@ export declare const ClientBootstrapDataSchema: z.ZodObject<{
|
|
|
781
795
|
location: z.ZodOptional<z.ZodObject<{
|
|
782
796
|
file: z.ZodString;
|
|
783
797
|
line: z.ZodNumber;
|
|
798
|
+
column: z.ZodOptional<z.ZodNumber>;
|
|
784
799
|
}, z.core.$strip>>;
|
|
785
800
|
}, z.core.$strip>>;
|
|
801
|
+
isRunning: z.ZodOptional<z.ZodBoolean>;
|
|
802
|
+
runEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
786
803
|
isUpdateMode: z.ZodBoolean;
|
|
787
804
|
}, z.core.$strip>;
|
|
788
805
|
liveUpdates: z.ZodBoolean;
|
|
789
806
|
approvalEnabled: z.ZodBoolean;
|
|
790
807
|
approvalMessage: z.ZodOptional<z.ZodString>;
|
|
808
|
+
runEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
809
|
+
isRunning: z.ZodOptional<z.ZodBoolean>;
|
|
791
810
|
}, z.core.$strip>;
|
|
792
811
|
export type ClientBootstrapData = z.infer<typeof ClientBootstrapDataSchema>;
|
|
793
812
|
export declare const ImagesViewModeSchema: z.ZodEnum<{
|
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;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/server/app.d.ts
CHANGED
|
@@ -5,6 +5,12 @@ export interface ServerOptions {
|
|
|
5
5
|
reportPath?: string;
|
|
6
6
|
/** Absolute path to the built web UI assets directory, or its parent directory */
|
|
7
7
|
staticDir?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Playwright config path used to seed run support before any reporter
|
|
10
|
+
* registers. When omitted, the server discovers `playwright.config.*` in the
|
|
11
|
+
* working directory. A registering reporter always overrides this.
|
|
12
|
+
*/
|
|
13
|
+
playwrightConfig?: string;
|
|
8
14
|
configDir?: string;
|
|
9
15
|
/**
|
|
10
16
|
* Playwright's outputDir (test-results), where failure artifacts are written. Used as a root in
|
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":"AA8BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/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;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,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;AAqKD,wBAAsB,eAAe,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CA8CrF"}
|
|
@@ -2,6 +2,7 @@ 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
4
|
import type { RoutesContext } from './routes.ts';
|
|
5
|
+
import type { RunController } from './run-controller.ts';
|
|
5
6
|
import type { RuntimeWebSocket } from './ws.ts';
|
|
6
7
|
export interface HandlerContext {
|
|
7
8
|
reportData: {
|
|
@@ -13,9 +14,11 @@ export interface HandlerContext {
|
|
|
13
14
|
};
|
|
14
15
|
wsClients: Set<RuntimeWebSocket>;
|
|
15
16
|
currentRunIds: Set<string>;
|
|
17
|
+
isFilteredRun: boolean;
|
|
16
18
|
saveReport: () => Promise<void>;
|
|
17
19
|
approvalRouting?: ApprovalRouting;
|
|
18
20
|
routesContext: RoutesContext;
|
|
21
|
+
runController: RunController;
|
|
19
22
|
}
|
|
20
23
|
export declare function handleTestBegin(ctx: HandlerContext, data: TestBeginData): void;
|
|
21
24
|
export declare function handleTestEnd(ctx: HandlerContext, data: TestEndData): void;
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,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;IAG1B,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,aAAa,EAAE,aAAa,CAAA;IAC5B,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,CAYf;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,CAyC5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playwright-config.d.ts","sourceRoot":"","sources":["../../src/server/playwright-config.ts"],"names":[],"mappings":"AAiBA,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASjF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RoutesContext } from './routes.ts';
|
|
2
|
+
type ReportDataShape = RoutesContext['reportData'];
|
|
3
|
+
interface RoutesContextOptions {
|
|
4
|
+
outputDir?: string;
|
|
5
|
+
playwrightSnapshotDir?: string;
|
|
6
|
+
configDir?: string;
|
|
7
|
+
playwrightTestDir?: string;
|
|
8
|
+
playwrightSnapshotPathTemplate?: string;
|
|
9
|
+
playwrightToHaveScreenshotPathTemplate?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function createRoutesContext(reportData: ReportDataShape, staticDir: string, saveReport: () => Promise<void>, options: RoutesContextOptions): RoutesContext;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=routes-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes-context.d.ts","sourceRoot":"","sources":["../../src/server/routes-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,KAAK,eAAe,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;AAElD,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,sCAAsC,CAAC,EAAE,MAAM,CAAA;CAChD;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC/B,OAAO,EAAE,oBAAoB,GAC5B,aAAa,CAqBf"}
|
package/dist/server/routes.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TestData } from '../types.ts';
|
|
2
|
+
import type { RunController } from './run-controller.ts';
|
|
2
3
|
export interface RoutesContext {
|
|
3
4
|
reportData: {
|
|
4
5
|
isRunning: boolean;
|
|
@@ -17,7 +18,11 @@ export interface RoutesContext {
|
|
|
17
18
|
playwrightSnapshotPathTemplate?: string;
|
|
18
19
|
playwrightToHaveScreenshotPathTemplate?: string;
|
|
19
20
|
};
|
|
21
|
+
runContext?: {
|
|
22
|
+
configFile: string;
|
|
23
|
+
cwd: string;
|
|
24
|
+
};
|
|
20
25
|
}
|
|
21
26
|
export { isPathWithinRoots, isWebSocketUpgradeRequest, LIVE_UPDATES_WEBSOCKET_PATH } from './utils.ts';
|
|
22
|
-
export declare function handleHttpRequest(ctx: RoutesContext, req: Request): Promise<Response>;
|
|
27
|
+
export declare function handleHttpRequest(ctx: RoutesContext, req: Request, runController: RunController): Promise<Response>;
|
|
23
28
|
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAG3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGxD,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;IACD,UAAU,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CACjD;AAED,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAwMtG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiDnH"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { RunTestDescriptor } from '../schemas.ts';
|
|
2
|
+
import type { ClientWebSocketMessage } from '../types.ts';
|
|
3
|
+
export interface RunContext {
|
|
4
|
+
configFile: string;
|
|
5
|
+
cwd: string;
|
|
6
|
+
}
|
|
7
|
+
export interface RunFilters {
|
|
8
|
+
tests?: RunTestDescriptor[];
|
|
9
|
+
}
|
|
10
|
+
export type StartResult = {
|
|
11
|
+
ok: true;
|
|
12
|
+
} | {
|
|
13
|
+
ok: false;
|
|
14
|
+
reason: 'no-config' | 'already-running' | 'no-tests';
|
|
15
|
+
};
|
|
16
|
+
export type StopResult = {
|
|
17
|
+
ok: true;
|
|
18
|
+
} | {
|
|
19
|
+
ok: false;
|
|
20
|
+
reason: 'not-running';
|
|
21
|
+
};
|
|
22
|
+
export interface ChildProcessLike {
|
|
23
|
+
on(event: 'exit', cb: (code: number | null) => void): void;
|
|
24
|
+
on(event: 'error', cb: (err: Error) => void): void;
|
|
25
|
+
kill(signal: string): void;
|
|
26
|
+
}
|
|
27
|
+
export interface SpawnLike {
|
|
28
|
+
(cmd: string, args: string[], opts: Record<string, unknown>): ChildProcessLike;
|
|
29
|
+
}
|
|
30
|
+
export interface RunControllerDeps {
|
|
31
|
+
getRunContext(): RunContext | null;
|
|
32
|
+
port: number;
|
|
33
|
+
broadcast(message: ClientWebSocketMessage): void;
|
|
34
|
+
setReportRunning(running: boolean): void;
|
|
35
|
+
/** Records whether the in-progress run is filtered, so run-end can preserve unrelated tests. */
|
|
36
|
+
setRunFiltered?(filtered: boolean): void;
|
|
37
|
+
spawn: SpawnLike;
|
|
38
|
+
timers: {
|
|
39
|
+
setTimeout: (fn: () => void, ms?: number) => unknown;
|
|
40
|
+
clearTimeout: (handle: unknown) => void;
|
|
41
|
+
};
|
|
42
|
+
resolveReporter?: (cwd: string) => string | null;
|
|
43
|
+
/** Resolves the package-manager-aware command used to launch `playwright`. Falls back to `npx`. */
|
|
44
|
+
resolveLaunch?: (cwd: string, playwrightArgs: string[]) => {
|
|
45
|
+
cmd: string;
|
|
46
|
+
args: string[];
|
|
47
|
+
};
|
|
48
|
+
/** Injectable seams for the version-gated `--test-list` path (Playwright >= 1.56). */
|
|
49
|
+
getPlaywrightVersion?: (cwd: string) => string | null;
|
|
50
|
+
writeTempFile?: (content: string) => string;
|
|
51
|
+
deleteTempFile?: (path: string) => void;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Resolves the `playwright` launch command for the project's package manager.
|
|
55
|
+
* `cwd` is reserved for future cwd-based detection (`package-manager-detector`'s
|
|
56
|
+
* `detect` is async in v1.x and cannot run in the synchronous `start()` path),
|
|
57
|
+
* so today detection uses the synchronous `getUserAgent()`, matching Creevey's
|
|
58
|
+
* spawn pattern. Falls back to `npx` when no agent is detectable.
|
|
59
|
+
*/
|
|
60
|
+
export declare function resolvePlaywrightLaunch(cwd: string, playwrightArgs: string[]): {
|
|
61
|
+
cmd: string;
|
|
62
|
+
args: string[];
|
|
63
|
+
};
|
|
64
|
+
/** `MAJOR.MINOR` threshold check using only leading digits; ignores pre-release suffixes. False for unparseable input. */
|
|
65
|
+
export declare function gteMinor(version: string, major: number, minor: number): boolean;
|
|
66
|
+
/** Builds `--test-list` lines mirroring `playwright test --list`: `[project] › file:line:column › title path`. */
|
|
67
|
+
export declare function buildTestListEntries(tests: RunTestDescriptor[]): string[];
|
|
68
|
+
export declare function resolveReporterDefault(cwd: string): string | null;
|
|
69
|
+
export declare class RunController {
|
|
70
|
+
private readonly deps;
|
|
71
|
+
private child;
|
|
72
|
+
private sigkillTimer;
|
|
73
|
+
private testListPath;
|
|
74
|
+
constructor(deps: RunControllerDeps);
|
|
75
|
+
get isRunning(): boolean;
|
|
76
|
+
private supportsTestList;
|
|
77
|
+
private cleanupTempFile;
|
|
78
|
+
start(filters: RunFilters): StartResult;
|
|
79
|
+
stop(): StopResult;
|
|
80
|
+
dispose(): void;
|
|
81
|
+
private handleChildExit;
|
|
82
|
+
}
|
|
83
|
+
export declare function createRealSpawn(): SpawnLike;
|
|
84
|
+
export declare function createRealTimers(): RunControllerDeps['timers'];
|
|
85
|
+
//# sourceMappingURL=run-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-controller.d.ts","sourceRoot":"","sources":["../../src/server/run-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-routes.d.ts","sourceRoot":"","sources":["../../src/server/run-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAU1B"}
|