@e2edev/e2e 0.6.1 → 0.8.0
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/README.md +15 -11
- package/dist/agent/act-validation.d.ts +9 -3
- package/dist/agent/act-validation.d.ts.map +1 -1
- package/dist/agent/act-validation.js +23 -4
- package/dist/agent/act-validation.js.map +1 -1
- package/dist/agent/act.d.ts +2 -2
- package/dist/agent/act.d.ts.map +1 -1
- package/dist/agent/act.js +231 -41
- package/dist/agent/act.js.map +1 -1
- package/dist/agent/actions.d.ts +14 -14
- package/dist/agent/actions.d.ts.map +1 -1
- package/dist/agent/actions.js +12 -2
- package/dist/agent/actions.js.map +1 -1
- package/dist/agent/default-agent.d.ts +1 -1
- package/dist/agent/default-agent.d.ts.map +1 -1
- package/dist/agent/default-agent.js +19 -84
- package/dist/agent/default-agent.js.map +1 -1
- package/dist/agent/executor.d.ts +14 -0
- package/dist/agent/executor.d.ts.map +1 -1
- package/dist/agent/executor.js.map +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +14 -6
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/invocation.d.ts +1 -8
- package/dist/agent/invocation.d.ts.map +1 -1
- package/dist/agent/invocation.js +7 -51
- package/dist/agent/invocation.js.map +1 -1
- package/dist/agent/ledger.d.ts.map +1 -1
- package/dist/agent/ledger.js +10 -1
- package/dist/agent/ledger.js.map +1 -1
- package/dist/agent/loop-guards.d.ts +21 -0
- package/dist/agent/loop-guards.d.ts.map +1 -1
- package/dist/agent/loop-guards.js +48 -0
- package/dist/agent/loop-guards.js.map +1 -1
- package/dist/agent/model/sdk.d.ts +18 -0
- package/dist/agent/model/sdk.d.ts.map +1 -1
- package/dist/agent/model/sdk.js +10 -4
- package/dist/agent/model/sdk.js.map +1 -1
- package/dist/agent/observation-budget.d.ts +27 -0
- package/dist/agent/observation-budget.d.ts.map +1 -0
- package/dist/agent/observation-budget.js +43 -0
- package/dist/agent/observation-budget.js.map +1 -0
- package/dist/agent/observation.d.ts +40 -7
- package/dist/agent/observation.d.ts.map +1 -1
- package/dist/agent/observation.js +56 -11
- package/dist/agent/observation.js.map +1 -1
- package/dist/agent/phases.d.ts +1 -1
- package/dist/agent/phases.d.ts.map +1 -1
- package/dist/agent/phases.js +11 -13
- package/dist/agent/phases.js.map +1 -1
- package/dist/agent/primitives.d.ts +14 -2
- package/dist/agent/primitives.d.ts.map +1 -1
- package/dist/agent/primitives.js +98 -54
- package/dist/agent/primitives.js.map +1 -1
- package/dist/agent/screen-update.d.ts +47 -0
- package/dist/agent/screen-update.d.ts.map +1 -0
- package/dist/agent/screen-update.js +222 -0
- package/dist/agent/screen-update.js.map +1 -0
- package/dist/agent/step-cache.d.ts +46 -18
- package/dist/agent/step-cache.d.ts.map +1 -1
- package/dist/agent/step-cache.js +100 -60
- package/dist/agent/step-cache.js.map +1 -1
- package/dist/agent/tool-loop.d.ts.map +1 -1
- package/dist/agent/tool-loop.js +28 -4
- package/dist/agent/tool-loop.js.map +1 -1
- package/dist/cache/anchors.d.ts.map +1 -1
- package/dist/cache/anchors.js +21 -1
- package/dist/cache/anchors.js.map +1 -1
- package/dist/cache/decide.d.ts +13 -3
- package/dist/cache/decide.d.ts.map +1 -1
- package/dist/cache/decide.js +35 -0
- package/dist/cache/decide.js.map +1 -1
- package/dist/cache/relocate.d.ts +11 -1
- package/dist/cache/relocate.d.ts.map +1 -1
- package/dist/cache/relocate.js +48 -17
- package/dist/cache/relocate.js.map +1 -1
- package/dist/cache/store.d.ts.map +1 -1
- package/dist/cache/store.js +3 -14
- package/dist/cache/store.js.map +1 -1
- package/dist/cache/trace.d.ts +12 -0
- package/dist/cache/trace.d.ts.map +1 -1
- package/dist/cache/trace.js +21 -0
- package/dist/cache/trace.js.map +1 -1
- package/dist/cli/docs-url.d.ts +1 -1
- package/dist/cli/docs-url.d.ts.map +1 -1
- package/dist/cli/docs-url.js +1 -1
- package/dist/cli/docs-url.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +60 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/engines.d.ts +2 -3
- package/dist/cli/init/engines.d.ts.map +1 -1
- package/dist/cli/init/engines.js +3 -4
- package/dist/cli/init/engines.js.map +1 -1
- package/dist/cli/init/scaffold.d.ts.map +1 -1
- package/dist/cli/init/scaffold.js +2 -0
- package/dist/cli/init/scaffold.js.map +1 -1
- package/dist/cli/signals.d.ts +3 -3
- package/dist/cli/signals.js +3 -3
- package/dist/cli/telemetry.d.ts +12 -0
- package/dist/cli/telemetry.d.ts.map +1 -0
- package/dist/cli/telemetry.js +40 -0
- package/dist/cli/telemetry.js.map +1 -0
- package/dist/collect/select.d.ts +2 -0
- package/dist/collect/select.d.ts.map +1 -1
- package/dist/collect/select.js +15 -11
- package/dist/collect/select.js.map +1 -1
- package/dist/config/agent.d.ts +6 -2
- package/dist/config/agent.d.ts.map +1 -1
- package/dist/config/agent.js +30 -3
- package/dist/config/agent.js.map +1 -1
- package/dist/config/diagnose.d.ts.map +1 -1
- package/dist/config/diagnose.js +1 -0
- package/dist/config/diagnose.js.map +1 -1
- package/dist/config/load.d.ts +2 -2
- package/dist/config/load.js +2 -2
- package/dist/config/resolve.d.ts +16 -4
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +107 -44
- package/dist/config/resolve.js.map +1 -1
- package/dist/engine/contract.d.ts +6 -1
- package/dist/engine/contract.d.ts.map +1 -1
- package/dist/engine/contract.js.map +1 -1
- package/dist/engine/index.d.ts +61 -6
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +25 -5
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/session.d.ts.map +1 -1
- package/dist/engine/session.js +6 -0
- package/dist/engine/session.js.map +1 -1
- package/dist/engine/surface.d.ts +6 -2
- package/dist/engine/surface.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/ai-trace.d.ts +1 -5
- package/dist/internal/ai-trace.d.ts.map +1 -1
- package/dist/internal/ai-trace.js +82 -11
- package/dist/internal/ai-trace.js.map +1 -1
- package/dist/internal/atomic-write.d.ts +17 -0
- package/dist/internal/atomic-write.d.ts.map +1 -0
- package/dist/internal/atomic-write.js +44 -0
- package/dist/internal/atomic-write.js.map +1 -0
- package/dist/internal/env.d.ts +6 -0
- package/dist/internal/env.d.ts.map +1 -0
- package/dist/internal/env.js +12 -0
- package/dist/internal/env.js.map +1 -0
- package/dist/internal/options.d.ts +9 -0
- package/dist/internal/options.d.ts.map +1 -0
- package/dist/internal/options.js +27 -0
- package/dist/internal/options.js.map +1 -0
- package/dist/locator/expression.js +1 -1
- package/dist/locator/expression.js.map +1 -1
- package/dist/locator/screen.d.ts.map +1 -1
- package/dist/locator/screen.js +4 -2
- package/dist/locator/screen.js.map +1 -1
- package/dist/report/build.d.ts +2 -1
- package/dist/report/build.d.ts.map +1 -1
- package/dist/report/build.js +11 -4
- package/dist/report/build.js.map +1 -1
- package/dist/report/list-model.d.ts +14 -5
- package/dist/report/list-model.d.ts.map +1 -1
- package/dist/report/list.d.ts +59 -5
- package/dist/report/list.d.ts.map +1 -1
- package/dist/report/list.js +171 -31
- package/dist/report/list.js.map +1 -1
- package/dist/report/running-tree.d.ts +7 -6
- package/dist/report/running-tree.d.ts.map +1 -1
- package/dist/report/running-tree.js +13 -8
- package/dist/report/running-tree.js.map +1 -1
- package/dist/report/write.d.ts +1 -1
- package/dist/report/write.d.ts.map +1 -1
- package/dist/report/write.js +3 -6
- package/dist/report/write.js.map +1 -1
- package/dist/run/artifacts.d.ts.map +1 -1
- package/dist/run/artifacts.js +20 -2
- package/dist/run/artifacts.js.map +1 -1
- package/dist/run/events.d.ts +73 -15
- package/dist/run/events.d.ts.map +1 -1
- package/dist/run/events.js +7 -7
- package/dist/run/events.js.map +1 -1
- package/dist/run/execute.d.ts +31 -5
- package/dist/run/execute.d.ts.map +1 -1
- package/dist/run/execute.js +73 -25
- package/dist/run/execute.js.map +1 -1
- package/dist/run/fixtures.d.ts +9 -1
- package/dist/run/fixtures.d.ts.map +1 -1
- package/dist/run/fixtures.js +5 -4
- package/dist/run/fixtures.js.map +1 -1
- package/dist/run/in-process.d.ts +1 -1
- package/dist/run/in-process.d.ts.map +1 -1
- package/dist/run/in-process.js +6 -3
- package/dist/run/in-process.js.map +1 -1
- package/dist/run/managed-process.d.ts +8 -2
- package/dist/run/managed-process.d.ts.map +1 -1
- package/dist/run/managed-process.js +12 -0
- package/dist/run/managed-process.js.map +1 -1
- package/dist/run/records.d.ts +15 -1
- package/dist/run/records.d.ts.map +1 -1
- package/dist/run/runner.d.ts +16 -7
- package/dist/run/runner.d.ts.map +1 -1
- package/dist/run/runner.js +182 -98
- package/dist/run/runner.js.map +1 -1
- package/dist/run/scheduler.d.ts +6 -6
- package/dist/run/scheduler.d.ts.map +1 -1
- package/dist/run/scheduler.js +54 -23
- package/dist/run/scheduler.js.map +1 -1
- package/dist/run/serial.d.ts +2 -4
- package/dist/run/serial.d.ts.map +1 -1
- package/dist/run/serial.js +4 -2
- package/dist/run/serial.js.map +1 -1
- package/dist/run/sessions.d.ts.map +1 -1
- package/dist/run/sessions.js +3 -4
- package/dist/run/sessions.js.map +1 -1
- package/dist/run/steps.d.ts +28 -1
- package/dist/run/steps.d.ts.map +1 -1
- package/dist/run/steps.js +14 -0
- package/dist/run/steps.js.map +1 -1
- package/dist/run/unit-runner.d.ts +7 -2
- package/dist/run/unit-runner.d.ts.map +1 -1
- package/dist/run/units.d.ts +8 -0
- package/dist/run/units.d.ts.map +1 -1
- package/dist/run/units.js +11 -0
- package/dist/run/units.js.map +1 -1
- package/dist/run/worker/entry.js +1 -0
- package/dist/run/worker/entry.js.map +1 -1
- package/dist/run/worker/handle.d.ts +1 -1
- package/dist/run/worker/handle.d.ts.map +1 -1
- package/dist/run/worker/handle.js +1 -1
- package/dist/run/worker/handle.js.map +1 -1
- package/dist/run/worker/protocol.d.ts +12 -1
- package/dist/run/worker/protocol.d.ts.map +1 -1
- package/dist/run/worker/protocol.js.map +1 -1
- package/dist/run/worker/session.d.ts +2 -0
- package/dist/run/worker/session.d.ts.map +1 -1
- package/dist/run/worker/session.js +5 -0
- package/dist/run/worker/session.js.map +1 -1
- package/dist/run/worker-models.d.ts +27 -0
- package/dist/run/worker-models.d.ts.map +1 -0
- package/dist/run/worker-models.js +49 -0
- package/dist/run/worker-models.js.map +1 -0
- package/dist/telemetry/environment.d.ts +33 -0
- package/dist/telemetry/environment.d.ts.map +1 -0
- package/dist/telemetry/environment.js +96 -0
- package/dist/telemetry/environment.js.map +1 -0
- package/dist/telemetry/events.d.ts +25 -0
- package/dist/telemetry/events.d.ts.map +1 -0
- package/dist/telemetry/events.js +107 -0
- package/dist/telemetry/events.js.map +1 -0
- package/dist/telemetry/posthog.d.ts +31 -0
- package/dist/telemetry/posthog.d.ts.map +1 -0
- package/dist/telemetry/posthog.js +29 -0
- package/dist/telemetry/posthog.js.map +1 -0
- package/dist/telemetry/project.d.ts +18 -0
- package/dist/telemetry/project.d.ts.map +1 -0
- package/dist/telemetry/project.js +55 -0
- package/dist/telemetry/project.js.map +1 -0
- package/dist/telemetry/store.d.ts +53 -0
- package/dist/telemetry/store.d.ts.map +1 -0
- package/dist/telemetry/store.js +153 -0
- package/dist/telemetry/store.js.map +1 -0
- package/dist/telemetry/telemetry.d.ts +89 -0
- package/dist/telemetry/telemetry.d.ts.map +1 -0
- package/dist/telemetry/telemetry.js +187 -0
- package/dist/telemetry/telemetry.js.map +1 -0
- package/dist/types.d.ts +103 -38
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -6
- package/skills/e2e/SKILL.md +0 -2
- package/skills/e2e/references/agent.md +33 -15
- package/skills/e2e/references/debugging.md +4 -2
- package/skills/e2e/references/running.md +7 -5
- package/skills/e2e/references/setup.md +16 -10
- package/skills/e2e/references/writing-tests.md +6 -5
- package/dist/internal/trace.d.ts +0 -18
- package/dist/internal/trace.d.ts.map +0 -1
- package/dist/internal/trace.js +0 -46
- package/dist/internal/trace.js.map +0 -1
- package/dist/run/public.d.ts +0 -19
- package/dist/run/public.d.ts.map +0 -1
- package/dist/run/public.js +0 -11
- package/dist/run/public.js.map +0 -1
package/dist/report/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/report/build.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/report/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,13 +19,16 @@ export interface CurrentStep {
|
|
|
19
19
|
/** Only an agent step has model turns to wait on. */
|
|
20
20
|
readonly kind: StepKind;
|
|
21
21
|
/**
|
|
22
|
-
* Model turns and tool calls in
|
|
23
|
-
*
|
|
24
|
-
* the
|
|
22
|
+
* Model turns and tool calls in stream order. A tool-using executor
|
|
23
|
+
* reports a turn once its tools ran, so the turn follows them here; its
|
|
24
|
+
* `startedAt` still carries the moment the request went out.
|
|
25
25
|
*/
|
|
26
26
|
readonly events: ShownEvent[];
|
|
27
|
-
/**
|
|
28
|
-
|
|
27
|
+
/**
|
|
28
|
+
* True while the trace cache has the step, replaying its recorded actions:
|
|
29
|
+
* no model is in the loop, so the wait between events is on the app.
|
|
30
|
+
*/
|
|
31
|
+
replaying: boolean;
|
|
29
32
|
}
|
|
30
33
|
/** One finished agent step of a pair, as the `end` progress reported it. */
|
|
31
34
|
export type FinishedStep = Pick<Extract<StepProgress, {
|
|
@@ -76,4 +79,10 @@ export interface FileGroup {
|
|
|
76
79
|
readonly lines: TestLine[];
|
|
77
80
|
printed: boolean;
|
|
78
81
|
}
|
|
82
|
+
/** The setup step in flight, ticking in the live window: `starting service "postgres"`, `preparing playwright engine for target "web"`. */
|
|
83
|
+
export interface SetupInFlight {
|
|
84
|
+
readonly verb: string;
|
|
85
|
+
readonly subject: string;
|
|
86
|
+
readonly startedMs: number;
|
|
87
|
+
}
|
|
79
88
|
//# sourceMappingURL=list-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-model.d.ts","sourceRoot":"","sources":["../../src/report/list-model.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,4FAA4F;AAC5F,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,CAAC;AAE3E,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,UAAU,CAElE;AAED,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAC9B
|
|
1
|
+
{"version":3,"file":"list-model.d.ts","sourceRoot":"","sources":["../../src/report/list-model.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,4FAA4F;AAC5F,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,CAAC;AAE3E,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,UAAU,CAElE;AAED,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAC9B;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,4EAA4E;AAC5E,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,OAAO,CAAC,YAAY,EAAE;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,EACvC,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CACzD,CAAC;AAEF,iEAAiE;AACjE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CAChC;AAED,6DAA6D;AAC7D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oFAAoF;IACpF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,2IAA2I;AAC3I,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B"}
|
package/dist/report/list.d.ts
CHANGED
|
@@ -19,8 +19,8 @@ export interface ListReporterOptions {
|
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Renders the run's event stream as the CLI's human-readable output. The
|
|
22
|
-
* reporter is one sink on the run's single event spine,
|
|
23
|
-
*
|
|
22
|
+
* reporter is one sink on the run's single event spine, so it can only show
|
|
23
|
+
* what every other sink receives.
|
|
24
24
|
*/
|
|
25
25
|
export declare class ListReporter {
|
|
26
26
|
private readonly output;
|
|
@@ -29,9 +29,16 @@ export declare class ListReporter {
|
|
|
29
29
|
private readonly tree;
|
|
30
30
|
private readonly separator;
|
|
31
31
|
private projectRoot;
|
|
32
|
+
private artifactsRoot;
|
|
32
33
|
/** Selected targets in declaration order; decides each badge's color. */
|
|
33
34
|
private targets;
|
|
34
|
-
/** When the run
|
|
35
|
+
/** When the run was launched (`run-started`): what a run that never reached `plan` reports. */
|
|
36
|
+
private launchedAt;
|
|
37
|
+
/**
|
|
38
|
+
* When the run began executing (`plan`): the summary's `Start at` and the
|
|
39
|
+
* origin of `Duration`. Undefined until then, so the clock never ticks
|
|
40
|
+
* while a first-run download narrates above the live window.
|
|
41
|
+
*/
|
|
35
42
|
private startedAt;
|
|
36
43
|
/** File groups keyed `${target}\u0000${file}`, in first-seen order. */
|
|
37
44
|
private readonly groups;
|
|
@@ -48,8 +55,29 @@ export declare class ListReporter {
|
|
|
48
55
|
private readonly pendingSerial;
|
|
49
56
|
/** Run-level errors, printed once at the end; the stream carries them as they happen. */
|
|
50
57
|
private readonly errors;
|
|
58
|
+
/**
|
|
59
|
+
* Whether the run was cut short. An interrupt during service or app startup
|
|
60
|
+
* lands before discovery, so the counters stay at zero; the summary must not
|
|
61
|
+
* read that as "no test files".
|
|
62
|
+
*/
|
|
63
|
+
private interrupted;
|
|
64
|
+
/**
|
|
65
|
+
* The setup step in flight, ticking in the live window. `narrated` once a
|
|
66
|
+
* notice printed under it: a step that said something (a browser download)
|
|
67
|
+
* prints its total when done, a silent one (an instant `prepare`) does not.
|
|
68
|
+
*/
|
|
69
|
+
private inFlight;
|
|
70
|
+
/** Time spent starting services and app commands, split out of the summary's `Duration`. */
|
|
71
|
+
private startupMs;
|
|
51
72
|
/** Run-wide model usage, summed from every reported result and serial group. */
|
|
52
73
|
private readonly runUsage;
|
|
74
|
+
/**
|
|
75
|
+
* The configured models as the summary names them, `provider/id` plus
|
|
76
|
+
* `vision provider/id` when pixels go to a separate model: `runUsage` sums
|
|
77
|
+
* both, so the row names both. Repeated in the summary because the header
|
|
78
|
+
* has scrolled away by the time a long run ends.
|
|
79
|
+
*/
|
|
80
|
+
private models;
|
|
53
81
|
constructor(output?: ListReporterOutput, options?: ListReporterOptions);
|
|
54
82
|
/**
|
|
55
83
|
* The reporter as an event sink: one dispatch per fact. Bound, so it can be
|
|
@@ -64,8 +92,27 @@ export declare class ListReporter {
|
|
|
64
92
|
private displayPath;
|
|
65
93
|
private group;
|
|
66
94
|
private runStarted;
|
|
95
|
+
/**
|
|
96
|
+
* The plan is settled once collection and every target's `prepare` are
|
|
97
|
+
* done, so its arrival is when the run starts executing and the clock
|
|
98
|
+
* starts: a browser downloaded moments earlier is not on it.
|
|
99
|
+
*/
|
|
67
100
|
private plan;
|
|
68
|
-
/**
|
|
101
|
+
/**
|
|
102
|
+
* The setup stretch before any test: collection, each target's `prepare`,
|
|
103
|
+
* then the services and app commands. Without this the window showed only
|
|
104
|
+
* zero counters while a database booted or a browser downloaded. The step
|
|
105
|
+
* in flight ticks in the live window; a finished process prints once with
|
|
106
|
+
* its wait, a finished collection or provisioning only when it narrated;
|
|
107
|
+
* the process waits sum into the summary's startup split.
|
|
108
|
+
*/
|
|
109
|
+
private setupStep;
|
|
110
|
+
/**
|
|
111
|
+
* Acknowledged immediately, so a bounded teardown is not mistaken for a
|
|
112
|
+
* hang. An interrupt that lands during setup names the step it cut short
|
|
113
|
+
* (`interrupted while starting service "postgres"`), since no test was
|
|
114
|
+
* running to stop.
|
|
115
|
+
*/
|
|
69
116
|
private runInterrupted;
|
|
70
117
|
/**
|
|
71
118
|
* A worker began one test-target pair: show it in the live window. A serial
|
|
@@ -111,15 +158,22 @@ export declare class ListReporter {
|
|
|
111
158
|
private testLine;
|
|
112
159
|
/**
|
|
113
160
|
* vitest's padded summary, shared by the live window and the final report:
|
|
114
|
-
* files, tests, model usage, run errors, start time, and elapsed time.
|
|
161
|
+
* files, tests, model usage, run errors, start time, and elapsed time. The
|
|
162
|
+
* clock rows wait for `plan`; the final summary of a run that never got
|
|
163
|
+
* there (a config or collection failure, a failed download) counts from
|
|
164
|
+
* the launch instead, so the time it took to fail is still on record.
|
|
115
165
|
*/
|
|
116
166
|
private summaryRows;
|
|
167
|
+
/** A zero counter's label: the plain text, or the interrupt when that is why nothing is counted. */
|
|
168
|
+
private emptyState;
|
|
117
169
|
/** The live window: the running tree, then the summary. */
|
|
118
170
|
private renderWindow;
|
|
119
171
|
/** vitest's `Failed Tests` section: a banner, then each failure with its code frame. */
|
|
120
172
|
private printFailures;
|
|
121
173
|
/** A full-width red rule with a centered `FAIL`-style label. */
|
|
122
174
|
private errorBanner;
|
|
175
|
+
/** Where to watch a failed attempt: one line per recording it kept. */
|
|
176
|
+
private printVideos;
|
|
123
177
|
/** Names the user's failing line and renders a code frame around it. */
|
|
124
178
|
private printFailureLocation;
|
|
125
179
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/report/list.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/report/list.ts"],"names":[],"mappings":"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"}
|
package/dist/report/list.js
CHANGED
|
@@ -40,8 +40,20 @@ function attemptDetails(attempts) {
|
|
|
40
40
|
durationMs: attempts.reduce((total, attempt) => total + attempt.durationMs, 0),
|
|
41
41
|
usage: stepsUsage(attempts.map((attempt) => attempt.steps)),
|
|
42
42
|
error: attempts[attempts.length - 1]?.error,
|
|
43
|
+
videos: videoPaths(attempts),
|
|
43
44
|
};
|
|
44
45
|
}
|
|
46
|
+
/** Report-relative paths of the video artifacts these attempts kept, in order. */
|
|
47
|
+
function videoPaths(attempts) {
|
|
48
|
+
const paths = [];
|
|
49
|
+
for (const attempt of attempts) {
|
|
50
|
+
for (const artifact of attempt.artifacts) {
|
|
51
|
+
if (artifact.kind === 'video' && artifact.path !== undefined)
|
|
52
|
+
paths.push(artifact.path);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return paths;
|
|
56
|
+
}
|
|
45
57
|
/**
|
|
46
58
|
* Details of one serial member, read from its group: member results carry no
|
|
47
59
|
* attempts of their own. Duration and usage sum over every group attempt the
|
|
@@ -61,6 +73,8 @@ function serialMemberDetails(group, testId) {
|
|
|
61
73
|
durationMs: runs.reduce((total, run) => total + (run.member?.durationMs ?? 0), 0),
|
|
62
74
|
usage: stepsUsage(runs.map((run) => run.member?.steps ?? [])),
|
|
63
75
|
error: own?.error ?? (neverRan ? last?.attempt.error : undefined),
|
|
76
|
+
// The group's recording covers every member, so a failed member points at it.
|
|
77
|
+
videos: videoPaths(group.attempts),
|
|
64
78
|
};
|
|
65
79
|
}
|
|
66
80
|
const DEFAULT_OUTPUT = {
|
|
@@ -69,8 +83,8 @@ const DEFAULT_OUTPUT = {
|
|
|
69
83
|
};
|
|
70
84
|
/**
|
|
71
85
|
* Renders the run's event stream as the CLI's human-readable output. The
|
|
72
|
-
* reporter is one sink on the run's single event spine,
|
|
73
|
-
*
|
|
86
|
+
* reporter is one sink on the run's single event spine, so it can only show
|
|
87
|
+
* what every other sink receives.
|
|
74
88
|
*/
|
|
75
89
|
export class ListReporter {
|
|
76
90
|
output;
|
|
@@ -79,10 +93,17 @@ export class ListReporter {
|
|
|
79
93
|
tree;
|
|
80
94
|
separator;
|
|
81
95
|
projectRoot;
|
|
96
|
+
artifactsRoot;
|
|
82
97
|
/** Selected targets in declaration order; decides each badge's color. */
|
|
83
98
|
targets = [];
|
|
84
|
-
/** When the run
|
|
85
|
-
|
|
99
|
+
/** When the run was launched (`run-started`): what a run that never reached `plan` reports. */
|
|
100
|
+
launchedAt = new Date();
|
|
101
|
+
/**
|
|
102
|
+
* When the run began executing (`plan`): the summary's `Start at` and the
|
|
103
|
+
* origin of `Duration`. Undefined until then, so the clock never ticks
|
|
104
|
+
* while a first-run download narrates above the live window.
|
|
105
|
+
*/
|
|
106
|
+
startedAt;
|
|
86
107
|
/** File groups keyed `${target}\u0000${file}`, in first-seen order. */
|
|
87
108
|
groups = new Map();
|
|
88
109
|
/** Pairs that started and whose result is still to come, keyed by `pairKey`, in start order. */
|
|
@@ -98,8 +119,29 @@ export class ListReporter {
|
|
|
98
119
|
pendingSerial = new Map();
|
|
99
120
|
/** Run-level errors, printed once at the end; the stream carries them as they happen. */
|
|
100
121
|
errors = [];
|
|
122
|
+
/**
|
|
123
|
+
* Whether the run was cut short. An interrupt during service or app startup
|
|
124
|
+
* lands before discovery, so the counters stay at zero; the summary must not
|
|
125
|
+
* read that as "no test files".
|
|
126
|
+
*/
|
|
127
|
+
interrupted = false;
|
|
128
|
+
/**
|
|
129
|
+
* The setup step in flight, ticking in the live window. `narrated` once a
|
|
130
|
+
* notice printed under it: a step that said something (a browser download)
|
|
131
|
+
* prints its total when done, a silent one (an instant `prepare`) does not.
|
|
132
|
+
*/
|
|
133
|
+
inFlight;
|
|
134
|
+
/** Time spent starting services and app commands, split out of the summary's `Duration`. */
|
|
135
|
+
startupMs = 0;
|
|
101
136
|
/** Run-wide model usage, summed from every reported result and serial group. */
|
|
102
137
|
runUsage = emptyUsage();
|
|
138
|
+
/**
|
|
139
|
+
* The configured models as the summary names them, `provider/id` plus
|
|
140
|
+
* `vision provider/id` when pixels go to a separate model: `runUsage` sums
|
|
141
|
+
* both, so the row names both. Repeated in the summary because the header
|
|
142
|
+
* has scrolled away by the time a long run ends.
|
|
143
|
+
*/
|
|
144
|
+
models;
|
|
103
145
|
constructor(output = DEFAULT_OUTPUT, options = {}) {
|
|
104
146
|
this.output = output;
|
|
105
147
|
const live = (options.live ?? process.stdout.isTTY === true) && output.raw !== undefined;
|
|
@@ -122,8 +164,13 @@ export class ListReporter {
|
|
|
122
164
|
this.plan(event);
|
|
123
165
|
break;
|
|
124
166
|
case 'notice':
|
|
167
|
+
if (this.inFlight !== undefined)
|
|
168
|
+
this.inFlight.narrated = true;
|
|
125
169
|
this.print(`${this.pc.dim('ℹ')} ${bounded(event.message)}`);
|
|
126
170
|
break;
|
|
171
|
+
case 'setup':
|
|
172
|
+
this.setupStep(event);
|
|
173
|
+
break;
|
|
127
174
|
case 'test-started':
|
|
128
175
|
this.testStarted(event);
|
|
129
176
|
break;
|
|
@@ -179,8 +226,9 @@ export class ListReporter {
|
|
|
179
226
|
runStarted(event) {
|
|
180
227
|
const { pc } = this;
|
|
181
228
|
this.projectRoot = event.projectRoot;
|
|
229
|
+
this.artifactsRoot = event.artifactsRoot;
|
|
182
230
|
this.targets = event.targets;
|
|
183
|
-
this.
|
|
231
|
+
this.launchedAt = new Date();
|
|
184
232
|
const version = packageVersion(import.meta.url, '../../package.json', '0.0.0');
|
|
185
233
|
this.output.write('');
|
|
186
234
|
this.output.write(`${pc.bold(pc.black(pc.bgCyan(' RUN ')))} ${pc.cyan(`e2e v${version}`)} ${pc.gray(event.projectRoot)}`);
|
|
@@ -189,22 +237,67 @@ export class ListReporter {
|
|
|
189
237
|
details.push('CI');
|
|
190
238
|
this.output.write(BADGE_PADDING + pc.dim(details.join(' · ')));
|
|
191
239
|
if (event.model !== undefined) {
|
|
192
|
-
|
|
240
|
+
const vision = event.visionModel === undefined ? '' : ` · vision ${bounded(event.visionModel)}`;
|
|
241
|
+
this.models = `${bounded(event.model)}${vision}`;
|
|
242
|
+
this.output.write(BADGE_PADDING + pc.dim(`model ${this.models}`));
|
|
193
243
|
}
|
|
194
244
|
this.output.write('');
|
|
195
245
|
this.window.start();
|
|
196
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* The plan is settled once collection and every target's `prepare` are
|
|
249
|
+
* done, so its arrival is when the run starts executing and the clock
|
|
250
|
+
* starts: a browser downloaded moments earlier is not on it.
|
|
251
|
+
*/
|
|
197
252
|
plan(event) {
|
|
253
|
+
this.startedAt = new Date();
|
|
198
254
|
for (const planned of event.files) {
|
|
199
255
|
this.group(planned.file, planned.target).planned = planned.tests;
|
|
200
256
|
}
|
|
201
257
|
this.window.redraw();
|
|
202
258
|
}
|
|
203
|
-
/**
|
|
259
|
+
/**
|
|
260
|
+
* The setup stretch before any test: collection, each target's `prepare`,
|
|
261
|
+
* then the services and app commands. Without this the window showed only
|
|
262
|
+
* zero counters while a database booted or a browser downloaded. The step
|
|
263
|
+
* in flight ticks in the live window; a finished process prints once with
|
|
264
|
+
* its wait, a finished collection or provisioning only when it narrated;
|
|
265
|
+
* the process waits sum into the summary's startup split.
|
|
266
|
+
*/
|
|
267
|
+
setupStep(event) {
|
|
268
|
+
const { pc } = this;
|
|
269
|
+
const { verb, subject, done } = setupWording(event.step);
|
|
270
|
+
if (event.state === 'started') {
|
|
271
|
+
this.inFlight = { step: event.step, verb, subject, startedMs: Date.now(), narrated: false };
|
|
272
|
+
this.window.redraw();
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
const narrated = this.inFlight?.narrated ?? false;
|
|
276
|
+
this.inFlight = undefined;
|
|
277
|
+
const process = event.step.kind === 'service' || event.step.kind === 'app';
|
|
278
|
+
if (process)
|
|
279
|
+
this.startupMs += event.durationMs;
|
|
280
|
+
if (!process && !narrated) {
|
|
281
|
+
this.window.redraw();
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
const outcome = event.outcome ?? done;
|
|
285
|
+
this.print(` ${pc.green(F_CHECK)} ${subject} ${pc.dim(`${outcome} ${formatTime(event.durationMs)}`)}`);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Acknowledged immediately, so a bounded teardown is not mistaken for a
|
|
289
|
+
* hang. An interrupt that lands during setup names the step it cut short
|
|
290
|
+
* (`interrupted while starting service "postgres"`), since no test was
|
|
291
|
+
* running to stop.
|
|
292
|
+
*/
|
|
204
293
|
runInterrupted(event) {
|
|
205
|
-
this.
|
|
206
|
-
|
|
207
|
-
|
|
294
|
+
this.interrupted = true;
|
|
295
|
+
const during = this.inFlight === undefined ? undefined : `${this.inFlight.verb} ${this.inFlight.subject}`;
|
|
296
|
+
this.print(this.pc.yellow(event.mode === 'forced'
|
|
297
|
+
? 'interrupted again: tearing every worker down now'
|
|
298
|
+
: during === undefined
|
|
299
|
+
? 'interrupted: stopping the running test and tearing down (interrupt again to force)'
|
|
300
|
+
: `interrupted while ${during}: tearing down (interrupt again to force)`));
|
|
208
301
|
}
|
|
209
302
|
/**
|
|
210
303
|
* A worker began one test-target pair: show it in the live window. A serial
|
|
@@ -249,7 +342,7 @@ export class ListReporter {
|
|
|
249
342
|
switch (progress.phase) {
|
|
250
343
|
case 'start': {
|
|
251
344
|
const { api, label, kind } = progress;
|
|
252
|
-
running.current = { api, label, kind, events: [],
|
|
345
|
+
running.current = { api, label, kind, events: [], replaying: false };
|
|
253
346
|
this.window.redraw();
|
|
254
347
|
break;
|
|
255
348
|
}
|
|
@@ -257,13 +350,15 @@ export class ListReporter {
|
|
|
257
350
|
const { current } = running;
|
|
258
351
|
if (current === undefined || !isShownEvent(progress.event))
|
|
259
352
|
break;
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
353
|
+
current.events.push(progress.event);
|
|
354
|
+
this.window.redraw();
|
|
355
|
+
break;
|
|
356
|
+
}
|
|
357
|
+
case 'replay': {
|
|
358
|
+
const { current } = running;
|
|
359
|
+
if (current === undefined)
|
|
360
|
+
break;
|
|
361
|
+
current.replaying = progress.active;
|
|
267
362
|
this.window.redraw();
|
|
268
363
|
break;
|
|
269
364
|
}
|
|
@@ -316,7 +411,7 @@ export class ListReporter {
|
|
|
316
411
|
const steps = this.pairs.get(key)?.steps ?? [];
|
|
317
412
|
this.pairs.delete(key);
|
|
318
413
|
const group = this.group(result.test.file, result.target.name);
|
|
319
|
-
const { durationMs, usage, error } = this.detailsOf(result);
|
|
414
|
+
const { durationMs, usage, error, videos } = this.detailsOf(result);
|
|
320
415
|
addUsage(this.runUsage, usage);
|
|
321
416
|
const title = bounded(result.test.titlePath.join(' > '));
|
|
322
417
|
const line = {
|
|
@@ -331,7 +426,7 @@ export class ListReporter {
|
|
|
331
426
|
};
|
|
332
427
|
group.lines.push(line);
|
|
333
428
|
if (statusBucket(result.status) === 'failed') {
|
|
334
|
-
this.failures.push({ group, title, status: result.status, error });
|
|
429
|
+
this.failures.push({ group, title, status: result.status, error, videos });
|
|
335
430
|
}
|
|
336
431
|
if (group.planned !== undefined && group.lines.length >= group.planned)
|
|
337
432
|
this.printGroup(group);
|
|
@@ -441,31 +536,45 @@ export class ListReporter {
|
|
|
441
536
|
}
|
|
442
537
|
/**
|
|
443
538
|
* vitest's padded summary, shared by the live window and the final report:
|
|
444
|
-
* files, tests, model usage, run errors, start time, and elapsed time.
|
|
539
|
+
* files, tests, model usage, run errors, start time, and elapsed time. The
|
|
540
|
+
* clock rows wait for `plan`; the final summary of a run that never got
|
|
541
|
+
* there (a config or collection failure, a failed download) counts from
|
|
542
|
+
* the launch instead, so the time it took to fail is still on record.
|
|
445
543
|
*/
|
|
446
|
-
summaryRows() {
|
|
544
|
+
summaryRows(final) {
|
|
447
545
|
const { pc } = this;
|
|
448
546
|
const files = this.fileCounters();
|
|
449
547
|
const tests = this.testCounters();
|
|
450
548
|
const rows = [
|
|
451
|
-
padTitle(pc, 'Test Files') + (files.total === 0 ?
|
|
452
|
-
padTitle(pc, 'Tests') + (tests.total === 0 ?
|
|
549
|
+
padTitle(pc, 'Test Files') + (files.total === 0 ? this.emptyState('no test files', 'none started') : stateString(pc, files)),
|
|
550
|
+
padTitle(pc, 'Tests') + (tests.total === 0 ? this.emptyState('no tests executed', 'none executed') : stateString(pc, tests)),
|
|
453
551
|
];
|
|
454
552
|
const ai = usageText(this.runUsage);
|
|
455
|
-
if (ai !== undefined)
|
|
456
|
-
|
|
553
|
+
if (ai !== undefined) {
|
|
554
|
+
const models = this.models === undefined ? '' : ` · ${this.models}`;
|
|
555
|
+
rows.push(padTitle(pc, 'AI') + `${ai} · ${this.runUsage.calls} model calls${models}`);
|
|
556
|
+
}
|
|
457
557
|
if (this.errors.length > 0) {
|
|
458
558
|
const count = this.errors.length;
|
|
459
559
|
rows.push(padTitle(pc, 'Errors') + pc.bold(pc.red(`${count} error${count === 1 ? '' : 's'}`)));
|
|
460
560
|
}
|
|
461
|
-
|
|
462
|
-
|
|
561
|
+
const startedAt = this.startedAt ?? (final ? this.launchedAt : undefined);
|
|
562
|
+
if (startedAt !== undefined) {
|
|
563
|
+
rows.push(padTitle(pc, 'Start at') + formatClock(startedAt));
|
|
564
|
+
const startup = this.startupMs > 0 ? pc.dim(` (startup ${formatTime(this.startupMs)})`) : '';
|
|
565
|
+
rows.push(padTitle(pc, 'Duration') + formatTime(Date.now() - startedAt.getTime()) + startup);
|
|
566
|
+
}
|
|
463
567
|
return rows;
|
|
464
568
|
}
|
|
569
|
+
/** A zero counter's label: the plain text, or the interrupt when that is why nothing is counted. */
|
|
570
|
+
emptyState(none, cut) {
|
|
571
|
+
const { pc } = this;
|
|
572
|
+
return this.interrupted ? pc.yellow(`${cut} (interrupted)`) : pc.dim(none);
|
|
573
|
+
}
|
|
465
574
|
/** The live window: the running tree, then the summary. */
|
|
466
575
|
renderWindow() {
|
|
467
576
|
const running = [...this.pairs.values()].filter((test) => test.executing);
|
|
468
|
-
return this.tree.render(running, this.summaryRows(), Date.now());
|
|
577
|
+
return this.tree.render(running, this.summaryRows(false), Date.now(), this.inFlight);
|
|
469
578
|
}
|
|
470
579
|
/** vitest's `Failed Tests` section: a banner, then each failure with its code frame. */
|
|
471
580
|
printFailures() {
|
|
@@ -475,7 +584,7 @@ export class ListReporter {
|
|
|
475
584
|
this.print('');
|
|
476
585
|
this.print(this.errorBanner(`Failed Tests ${this.failures.length}`));
|
|
477
586
|
this.print('');
|
|
478
|
-
this.failures.forEach(({ group, title, status, error }, index) => {
|
|
587
|
+
this.failures.forEach(({ group, title, status, error, videos }, index) => {
|
|
479
588
|
this.print(`${pc.bold(pc.bgRed(' FAIL '))} ${this.badge(group.target)} ${bounded(group.file)}${this.separator}${title}`);
|
|
480
589
|
if (error === undefined) {
|
|
481
590
|
this.print(pc.red(`${pc.bold(status)}: no error was recorded`));
|
|
@@ -487,6 +596,7 @@ export class ListReporter {
|
|
|
487
596
|
this.print(pc.red(line));
|
|
488
597
|
this.printFailureLocation(error.stack);
|
|
489
598
|
}
|
|
599
|
+
this.printVideos(videos);
|
|
490
600
|
const marker = `[${index + 1}/${this.failures.length}]`;
|
|
491
601
|
const { before, after } = rule(marker, 'right');
|
|
492
602
|
this.print('');
|
|
@@ -501,6 +611,14 @@ export class ListReporter {
|
|
|
501
611
|
const { before, after } = rule(label, 'center');
|
|
502
612
|
return `${pc.red(before)}${label}${pc.red(after)}`;
|
|
503
613
|
}
|
|
614
|
+
/** Where to watch a failed attempt: one line per recording it kept. */
|
|
615
|
+
printVideos(videos) {
|
|
616
|
+
const { pc } = this;
|
|
617
|
+
for (const video of videos) {
|
|
618
|
+
const target = this.artifactsRoot === undefined ? video : path.join(this.artifactsRoot, video);
|
|
619
|
+
this.print(pc.cyan(` ${pc.dim(F_POINTER)} ${pc.dim('video')} ${this.displayPath(target)}`));
|
|
620
|
+
}
|
|
621
|
+
}
|
|
504
622
|
/** Names the user's failing line and renders a code frame around it. */
|
|
505
623
|
printFailureLocation(stack) {
|
|
506
624
|
const { pc } = this;
|
|
@@ -533,6 +651,8 @@ export class ListReporter {
|
|
|
533
651
|
}
|
|
534
652
|
runFinished(event) {
|
|
535
653
|
const { pc } = this;
|
|
654
|
+
if (event.status === 'interrupted')
|
|
655
|
+
this.interrupted = true;
|
|
536
656
|
this.window.stop();
|
|
537
657
|
// An interrupted or crashed run leaves files without their full result
|
|
538
658
|
// set; print what they have so nothing that ran goes unreported.
|
|
@@ -543,7 +663,7 @@ export class ListReporter {
|
|
|
543
663
|
this.printFailures();
|
|
544
664
|
this.printErrors();
|
|
545
665
|
this.print('');
|
|
546
|
-
for (const row of this.summaryRows())
|
|
666
|
+
for (const row of this.summaryRows(true))
|
|
547
667
|
this.print(row);
|
|
548
668
|
this.print(padTitle(pc, 'Report') +
|
|
549
669
|
(event.reportPath === undefined ? pc.dim('(not written)') : this.displayPath(event.reportPath)));
|
|
@@ -557,4 +677,24 @@ export class ListReporter {
|
|
|
557
677
|
this.print('');
|
|
558
678
|
}
|
|
559
679
|
}
|
|
680
|
+
/**
|
|
681
|
+
* How the reporter phrases one setup step: the verb and subject while it
|
|
682
|
+
* runs (`starting service "postgres"`), and the word for its completion
|
|
683
|
+
* (`ready`); a reused process says `reused` instead.
|
|
684
|
+
*/
|
|
685
|
+
function setupWording(step) {
|
|
686
|
+
switch (step.kind) {
|
|
687
|
+
case 'collect':
|
|
688
|
+
return { verb: 'collecting', subject: 'tests', done: 'collected' };
|
|
689
|
+
case 'prepare':
|
|
690
|
+
return {
|
|
691
|
+
verb: 'preparing',
|
|
692
|
+
subject: `${bounded(step.engine)} engine for target "${bounded(step.target)}"`,
|
|
693
|
+
done: 'prepared',
|
|
694
|
+
};
|
|
695
|
+
case 'service':
|
|
696
|
+
case 'app':
|
|
697
|
+
return { verb: 'starting', subject: bounded(step.label), done: 'ready' };
|
|
698
|
+
}
|
|
699
|
+
}
|
|
560
700
|
//# sourceMappingURL=list.js.map
|