@e2edev/e2e 0.12.0 → 0.14.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 +4 -4
- package/dist/agent/act.d.ts +13 -7
- package/dist/agent/act.d.ts.map +1 -1
- package/dist/agent/act.js +125 -730
- package/dist/agent/act.js.map +1 -1
- package/dist/agent/action-dispatcher.d.ts +98 -0
- package/dist/agent/action-dispatcher.d.ts.map +1 -0
- package/dist/agent/action-dispatcher.js +319 -0
- package/dist/agent/action-dispatcher.js.map +1 -0
- package/dist/agent/actions.d.ts +16 -1
- package/dist/agent/actions.d.ts.map +1 -1
- package/dist/agent/actions.js +5 -1
- 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 +30 -9
- package/dist/agent/default-agent.js.map +1 -1
- package/dist/agent/error.d.ts.map +1 -1
- package/dist/agent/error.js +1 -0
- package/dist/agent/error.js.map +1 -1
- package/dist/agent/executor.d.ts +33 -5
- package/dist/agent/executor.d.ts.map +1 -1
- package/dist/agent/executor.js.map +1 -1
- package/dist/agent/index.js +1 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/invocation.d.ts +4 -9
- package/dist/agent/invocation.d.ts.map +1 -1
- package/dist/agent/invocation.js +1 -6
- package/dist/agent/invocation.js.map +1 -1
- package/dist/agent/model/sdk.d.ts +1 -1
- package/dist/agent/model/sdk.js +1 -1
- package/dist/agent/observation-feed.d.ts +123 -0
- package/dist/agent/observation-feed.d.ts.map +1 -0
- package/dist/agent/observation-feed.js +281 -0
- package/dist/agent/observation-feed.js.map +1 -0
- package/dist/agent/observation.d.ts +14 -1
- package/dist/agent/observation.d.ts.map +1 -1
- package/dist/agent/observation.js +58 -2
- package/dist/agent/observation.js.map +1 -1
- package/dist/agent/operation-queue.d.ts +21 -0
- package/dist/agent/operation-queue.d.ts.map +1 -0
- package/dist/agent/operation-queue.js +27 -0
- package/dist/agent/operation-queue.js.map +1 -0
- package/dist/agent/phases.js +1 -1
- package/dist/agent/phases.js.map +1 -1
- package/dist/agent/pixels.d.ts +21 -0
- package/dist/agent/pixels.d.ts.map +1 -0
- package/dist/agent/pixels.js +85 -0
- package/dist/agent/pixels.js.map +1 -0
- package/dist/agent/point-tap.d.ts +52 -0
- package/dist/agent/point-tap.d.ts.map +1 -0
- package/dist/agent/point-tap.js +88 -0
- package/dist/agent/point-tap.js.map +1 -0
- package/dist/agent/primitives.d.ts +7 -1
- package/dist/agent/primitives.d.ts.map +1 -1
- package/dist/agent/primitives.js +99 -27
- package/dist/agent/primitives.js.map +1 -1
- package/dist/agent/replay.d.ts +8 -3
- package/dist/agent/replay.d.ts.map +1 -1
- package/dist/agent/replay.js +44 -15
- package/dist/agent/replay.js.map +1 -1
- package/dist/agent/screen-update.d.ts +50 -18
- package/dist/agent/screen-update.d.ts.map +1 -1
- package/dist/agent/screen-update.js +76 -94
- package/dist/agent/screen-update.js.map +1 -1
- package/dist/agent/secrets.d.ts.map +1 -1
- package/dist/agent/secrets.js +13 -9
- package/dist/agent/secrets.js.map +1 -1
- package/dist/agent/step-accounting.d.ts +106 -0
- package/dist/agent/step-accounting.d.ts.map +1 -0
- package/dist/agent/step-accounting.js +216 -0
- package/dist/agent/step-accounting.js.map +1 -0
- package/dist/agent/step-cache.d.ts.map +1 -1
- package/dist/agent/step-cache.js +2 -2
- 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 +9 -2
- package/dist/agent/tool-loop.js.map +1 -1
- package/dist/agent/transcript-compaction.d.ts +38 -0
- package/dist/agent/transcript-compaction.d.ts.map +1 -0
- package/dist/agent/transcript-compaction.js +165 -0
- package/dist/agent/transcript-compaction.js.map +1 -0
- package/dist/cache/recorder.d.ts.map +1 -1
- package/dist/cache/recorder.js +20 -0
- package/dist/cache/recorder.js.map +1 -1
- package/dist/cache/trace.d.ts +28 -1
- package/dist/cache/trace.d.ts.map +1 -1
- package/dist/cache/trace.js +44 -0
- package/dist/cache/trace.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +55 -32
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/engine-versions.json +1 -1
- package/dist/cli/init/engines.d.ts +29 -10
- package/dist/cli/init/engines.d.ts.map +1 -1
- package/dist/cli/init/engines.js +34 -12
- package/dist/cli/init/engines.js.map +1 -1
- package/dist/cli/init/gateways.js +3 -3
- package/dist/cli/init/mcp-config.js +1 -1
- package/dist/cli/init/mcp-config.js.map +1 -1
- package/dist/cli/init/scaffold.d.ts.map +1 -1
- package/dist/cli/init/scaffold.js +1 -3
- package/dist/cli/init/scaffold.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +3 -2
- package/dist/cli/init.js.map +1 -1
- package/dist/collect/collect.d.ts +8 -3
- package/dist/collect/collect.d.ts.map +1 -1
- package/dist/collect/collect.js +29 -5
- package/dist/collect/collect.js.map +1 -1
- package/dist/collect/registry.d.ts +20 -5
- package/dist/collect/registry.d.ts.map +1 -1
- package/dist/collect/registry.js +139 -54
- package/dist/collect/registry.js.map +1 -1
- package/dist/collect/select.js +3 -1
- package/dist/collect/select.js.map +1 -1
- package/dist/config/agent.d.ts +1 -7
- package/dist/config/agent.d.ts.map +1 -1
- package/dist/config/agent.js +5 -8
- package/dist/config/agent.js.map +1 -1
- package/dist/config/app.d.ts +24 -2
- package/dist/config/app.d.ts.map +1 -1
- package/dist/config/app.js +82 -15
- package/dist/config/app.js.map +1 -1
- package/dist/config/diagnose.d.ts.map +1 -1
- package/dist/config/diagnose.js +2 -0
- package/dist/config/diagnose.js.map +1 -1
- package/dist/config/resolve.d.ts +26 -3
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +66 -23
- package/dist/config/resolve.js.map +1 -1
- package/dist/config/secrets.d.ts +89 -0
- package/dist/config/secrets.d.ts.map +1 -0
- package/dist/config/secrets.js +67 -0
- package/dist/config/secrets.js.map +1 -0
- package/dist/engine/contract.d.ts +17 -2
- package/dist/engine/contract.d.ts.map +1 -1
- package/dist/engine/contract.js.map +1 -1
- package/dist/engine/index.d.ts +18 -4
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +8 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/session.d.ts.map +1 -1
- package/dist/engine/session.js +3 -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/engine/surface.js.map +1 -1
- package/dist/expect/attempt.d.ts +15 -0
- package/dist/expect/attempt.d.ts.map +1 -0
- package/dist/expect/attempt.js +33 -0
- package/dist/expect/attempt.js.map +1 -0
- package/dist/expect/index.d.ts +7 -5
- package/dist/expect/index.d.ts.map +1 -1
- package/dist/expect/index.js +8 -1
- package/dist/expect/index.js.map +1 -1
- package/dist/expect/poll.d.ts +5 -0
- package/dist/expect/poll.d.ts.map +1 -0
- package/dist/expect/poll.js +118 -0
- package/dist/expect/poll.js.map +1 -0
- package/dist/expect/values.d.ts.map +1 -1
- package/dist/expect/values.js +6 -1
- package/dist/expect/values.js.map +1 -1
- package/dist/explore/body.d.ts.map +1 -1
- package/dist/explore/body.js +3 -1
- package/dist/explore/body.js.map +1 -1
- package/dist/explore/executor.js +16 -11
- package/dist/explore/executor.js.map +1 -1
- package/dist/explore/index.d.ts +3 -2
- package/dist/explore/index.d.ts.map +1 -1
- package/dist/explore/index.js +5 -5
- package/dist/explore/index.js.map +1 -1
- package/dist/explore/plan.d.ts.map +1 -1
- package/dist/explore/plan.js +16 -5
- package/dist/explore/plan.js.map +1 -1
- package/dist/explore/progress.d.ts +43 -0
- package/dist/explore/progress.d.ts.map +1 -0
- package/dist/explore/progress.js +9 -0
- package/dist/explore/progress.js.map +1 -0
- package/dist/explore/state.d.ts +13 -12
- package/dist/explore/state.d.ts.map +1 -1
- package/dist/explore/state.js +28 -11
- package/dist/explore/state.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/brands.d.ts +2 -0
- package/dist/internal/brands.d.ts.map +1 -1
- package/dist/internal/brands.js +2 -0
- package/dist/internal/brands.js.map +1 -1
- package/dist/internal/geometry.d.ts +13 -0
- package/dist/internal/geometry.d.ts.map +1 -0
- package/dist/internal/geometry.js +16 -0
- package/dist/internal/geometry.js.map +1 -0
- package/dist/internal/urls.d.ts +6 -0
- package/dist/internal/urls.d.ts.map +1 -1
- package/dist/internal/urls.js +28 -0
- package/dist/internal/urls.js.map +1 -1
- package/dist/locator/engine.d.ts.map +1 -1
- package/dist/locator/engine.js +1 -0
- package/dist/locator/engine.js.map +1 -1
- package/dist/mcp/catalog.d.ts +5 -4
- package/dist/mcp/catalog.d.ts.map +1 -1
- package/dist/mcp/catalog.js +5 -36
- package/dist/mcp/catalog.js.map +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session.d.ts +1 -1
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +12 -6
- package/dist/mcp/session.js.map +1 -1
- package/dist/report/builtin.d.ts +14 -0
- package/dist/report/builtin.d.ts.map +1 -0
- package/dist/report/builtin.js +22 -0
- package/dist/report/builtin.js.map +1 -0
- package/dist/report/explore-text.d.ts +17 -0
- package/dist/report/explore-text.d.ts.map +1 -0
- package/dist/report/explore-text.js +37 -0
- package/dist/report/explore-text.js.map +1 -0
- package/dist/report/format.d.ts +2 -0
- package/dist/report/format.d.ts.map +1 -1
- package/dist/report/format.js +1 -1
- package/dist/report/format.js.map +1 -1
- package/dist/report/junit.d.ts +2 -4
- package/dist/report/junit.d.ts.map +1 -1
- package/dist/report/junit.js +7 -40
- package/dist/report/junit.js.map +1 -1
- package/dist/report/list-explore.d.ts +109 -0
- package/dist/report/list-explore.d.ts.map +1 -0
- package/dist/report/list-explore.js +368 -0
- package/dist/report/list-explore.js.map +1 -0
- package/dist/report/list.d.ts +21 -0
- package/dist/report/list.d.ts.map +1 -1
- package/dist/report/list.js +79 -3
- package/dist/report/list.js.map +1 -1
- package/dist/report/markdown.d.ts +39 -0
- package/dist/report/markdown.d.ts.map +1 -0
- package/dist/report/markdown.js +426 -0
- package/dist/report/markdown.js.map +1 -0
- package/dist/report/outcome.d.ts +29 -0
- package/dist/report/outcome.d.ts.map +1 -0
- package/dist/report/outcome.js +36 -0
- package/dist/report/outcome.js.map +1 -0
- package/dist/report/running-tree.d.ts +7 -7
- package/dist/report/running-tree.d.ts.map +1 -1
- package/dist/report/running-tree.js +12 -13
- package/dist/report/running-tree.js.map +1 -1
- package/dist/report/write.d.ts +10 -1
- package/dist/report/write.d.ts.map +1 -1
- package/dist/report/write.js +22 -1
- package/dist/report/write.js.map +1 -1
- package/dist/run/app-ports.d.ts +17 -0
- package/dist/run/app-ports.d.ts.map +1 -0
- package/dist/run/app-ports.js +74 -0
- package/dist/run/app-ports.js.map +1 -0
- package/dist/run/events.d.ts +10 -5
- package/dist/run/events.d.ts.map +1 -1
- package/dist/run/events.js.map +1 -1
- package/dist/run/execute.d.ts.map +1 -1
- package/dist/run/execute.js +24 -7
- package/dist/run/execute.js.map +1 -1
- package/dist/run/extended-fixtures.d.ts +33 -0
- package/dist/run/extended-fixtures.d.ts.map +1 -0
- package/dist/run/extended-fixtures.js +91 -0
- package/dist/run/extended-fixtures.js.map +1 -0
- package/dist/run/fixtures.d.ts.map +1 -1
- package/dist/run/fixtures.js +39 -11
- package/dist/run/fixtures.js.map +1 -1
- package/dist/run/managed-process.d.ts +18 -0
- package/dist/run/managed-process.d.ts.map +1 -1
- package/dist/run/managed-process.js +101 -6
- package/dist/run/managed-process.js.map +1 -1
- package/dist/run/realm.d.ts +5 -4
- package/dist/run/realm.d.ts.map +1 -1
- package/dist/run/realm.js +8 -7
- package/dist/run/realm.js.map +1 -1
- package/dist/run/runner.d.ts +9 -3
- package/dist/run/runner.d.ts.map +1 -1
- package/dist/run/runner.js +15 -12
- package/dist/run/runner.js.map +1 -1
- package/dist/run/secrecy.d.ts +3 -3
- package/dist/run/secrecy.d.ts.map +1 -1
- package/dist/run/secrecy.js +4 -4
- package/dist/run/secrecy.js.map +1 -1
- package/dist/run/standalone.js +6 -6
- package/dist/run/standalone.js.map +1 -1
- package/dist/run/worker/entry.js +4 -3
- package/dist/run/worker/entry.js.map +1 -1
- package/dist/run/worker/protocol.d.ts +7 -1
- package/dist/run/worker/protocol.d.ts.map +1 -1
- package/dist/run/worker/protocol.js.map +1 -1
- package/dist/secrets.d.ts +21 -0
- package/dist/secrets.d.ts.map +1 -0
- package/dist/secrets.js +66 -0
- package/dist/secrets.js.map +1 -0
- package/dist/types.d.ts +90 -50
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -3
- package/skills/e2e/SKILL.md +42 -25
- package/skills/e2e/references/agent.md +80 -24
- package/skills/e2e/references/debugging.md +6 -5
- package/skills/e2e/references/explore.md +13 -7
- package/skills/e2e/references/mcp.md +4 -4
- package/skills/e2e/references/running.md +32 -21
- package/skills/e2e/references/setup.md +42 -16
- package/skills/e2e/references/writing-tests.md +32 -16
- package/dist/agent/model/router.d.ts +0 -36
- package/dist/agent/model/router.d.ts.map +0 -1
- package/dist/agent/model/router.js +0 -45
- package/dist/agent/model/router.js.map +0 -1
- package/dist/credentials.d.ts +0 -13
- package/dist/credentials.d.ts.map +0 -1
- package/dist/credentials.js +0 -51
- package/dist/credentials.js.map +0 -1
- package/dist/explore/reporter.d.ts +0 -11
- package/dist/explore/reporter.d.ts.map +0 -1
- package/dist/explore/reporter.js +0 -54
- package/dist/explore/reporter.js.map +0 -1
package/dist/report/junit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"junit.js","sourceRoot":"","sources":["../../src/report/junit.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,
|
|
1
|
+
{"version":3,"file":"junit.js","sourceRoot":"","sources":["../../src/report/junit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The list reporter's view of an `e2e explore` run, fed by its `explore`
|
|
3
|
+
* events: the exploration steps by title as they finish, each finding the
|
|
4
|
+
* moment it is reported, and at the end the record, a `Findings` section
|
|
5
|
+
* with the evidence, and the assessment. An exploration is one synthetic
|
|
6
|
+
* test whose failure is its verdict, so the view stands in for the file
|
|
7
|
+
* block, the test line, and the `Failed Tests` entry that test would get.
|
|
8
|
+
*/
|
|
9
|
+
import type { ExploreBudgets, ExploreProgress } from '../explore/progress.ts';
|
|
10
|
+
import type { SerializedError } from '../internal/errors.ts';
|
|
11
|
+
import type { ReportExploreFinding, ReportExploreStep } from '../report/build.ts';
|
|
12
|
+
import type { ArtifactRecord } from '../run/records.ts';
|
|
13
|
+
import type { StepEvent } from '../run/steps.ts';
|
|
14
|
+
import { type Colors } from './format.ts';
|
|
15
|
+
import type { ShownEvent } from './list-model.ts';
|
|
16
|
+
/** One finished exploration step with what the view counted while it ran. */
|
|
17
|
+
interface FinishedStep {
|
|
18
|
+
readonly step: ReportExploreStep;
|
|
19
|
+
readonly actions: number;
|
|
20
|
+
readonly findings: number;
|
|
21
|
+
}
|
|
22
|
+
export declare class ExploreView {
|
|
23
|
+
private readonly pc;
|
|
24
|
+
private readonly now;
|
|
25
|
+
private readonly goal;
|
|
26
|
+
private readonly budgets;
|
|
27
|
+
private readonly startedMs;
|
|
28
|
+
private readonly steps;
|
|
29
|
+
private readonly findings;
|
|
30
|
+
private open;
|
|
31
|
+
/** What the planner is deciding while no step is open: nothing, the next step, or the closing assessment. */
|
|
32
|
+
private planning;
|
|
33
|
+
private ended;
|
|
34
|
+
private summary;
|
|
35
|
+
/** The exploration test's artifacts, once its result arrived: where a finding's screenshot is. */
|
|
36
|
+
private artifacts;
|
|
37
|
+
/** High-water mark of the live rows; the window pads up to it. */
|
|
38
|
+
private reservedRows;
|
|
39
|
+
constructor(pc: Colors, started: {
|
|
40
|
+
readonly goal: string;
|
|
41
|
+
readonly budgets: ExploreBudgets;
|
|
42
|
+
}, now?: () => number);
|
|
43
|
+
/** Applies one moment of the exploration. */
|
|
44
|
+
progress(progress: ExploreProgress): void;
|
|
45
|
+
/** The step that finished last, with what the view counted while it ran. */
|
|
46
|
+
get lastStep(): FinishedStep | undefined;
|
|
47
|
+
/** Counts one engine event of the step in progress as an action; the finding tool's own call is the finding. */
|
|
48
|
+
action(event: StepEvent): void;
|
|
49
|
+
/** The exploration test's result arrived: keep its artifacts, so findings can name their screenshots. */
|
|
50
|
+
result(artifacts: readonly ArtifactRecord[]): void;
|
|
51
|
+
/**
|
|
52
|
+
* Whether the exploration test's error is the verdict the findings already
|
|
53
|
+
* express: issues were found, so the test failed. Anything else (a provider
|
|
54
|
+
* failure, a run that explored nothing) is a failure worth its own entry.
|
|
55
|
+
*/
|
|
56
|
+
isVerdict(error: SerializedError): boolean;
|
|
57
|
+
private get issues();
|
|
58
|
+
/**
|
|
59
|
+
* ` ❯ |web| Exploring <goal>`; the goal clipped to `maxWidth` when given.
|
|
60
|
+
* Once over, the glyph is the verdict: a cross when issues were found or
|
|
61
|
+
* the exploration never concluded, a check otherwise.
|
|
62
|
+
*/
|
|
63
|
+
header(badge: string, verb: 'Exploring' | 'Explored', maxWidth?: number): string;
|
|
64
|
+
/** One finished step: glyph, number, title, then duration, actions, findings, and a non-passed status; its explanation under it. */
|
|
65
|
+
stepLines(finished: FinishedStep, indent?: string): string[];
|
|
66
|
+
/** One finding on one line: `⚑ high issue Title (/path)`. */
|
|
67
|
+
findingLine(finding: ReportExploreFinding, indent?: string): string;
|
|
68
|
+
/** `high issue`, `low warning`. */
|
|
69
|
+
private grade;
|
|
70
|
+
private severityColor;
|
|
71
|
+
/**
|
|
72
|
+
* The live window's running area: the header with its clock, the finished
|
|
73
|
+
* steps, and the step in progress with its latest calls and findings in
|
|
74
|
+
* time order, or the planner deciding. Sized to the screen as the running
|
|
75
|
+
* tree is: the step in progress has priority, older finished steps fold.
|
|
76
|
+
*/
|
|
77
|
+
liveRows(badge: string, events: readonly ShownEvent[] | undefined, summary: readonly string[], now: number): string[];
|
|
78
|
+
/** The step in progress, or the planner at work, at most `budget` rows. */
|
|
79
|
+
private currentRows;
|
|
80
|
+
/** The step's calls and its findings, interleaved by time; the finding tool's own call gives way to the finding. */
|
|
81
|
+
private timeline;
|
|
82
|
+
/** The summary's `Findings` and `Steps` rows, in place of `Test Files` and `Tests`. */
|
|
83
|
+
summaryRows(): string[];
|
|
84
|
+
/** `3 passed`, `1 failed`, ... over the finished steps, zero counts left out, colored by status. */
|
|
85
|
+
private outcomeParts;
|
|
86
|
+
/**
|
|
87
|
+
* The permanent record once the run is over. With a live window
|
|
88
|
+
* (`withSteps`) it was the steps' only home, so the header and every step
|
|
89
|
+
* print here; without one they streamed as they finished, and only why the
|
|
90
|
+
* exploration ended is left to say.
|
|
91
|
+
*/
|
|
92
|
+
record(badge: string, withSteps: boolean): string[];
|
|
93
|
+
/**
|
|
94
|
+
* The `Findings` section: a banner, then one block per finding, issues
|
|
95
|
+
* before warnings and the most severe first, each with where it was seen,
|
|
96
|
+
* its screenshot, what was expected against what the screen showed, and
|
|
97
|
+
* the actions that reach it.
|
|
98
|
+
*/
|
|
99
|
+
findingsSection(displayPath: (target: string) => string, artifactsRoot: string | undefined): string[];
|
|
100
|
+
/** The report-relative path of a finding's screenshot, shown as the reporter shows paths. */
|
|
101
|
+
private screenshot;
|
|
102
|
+
/** ` expected text…`, wrapped to the width with continuation lines under the text. */
|
|
103
|
+
private detail;
|
|
104
|
+
/** The agent's closing assessment, wrapped under its heading. */
|
|
105
|
+
assessment(): string[];
|
|
106
|
+
private banner;
|
|
107
|
+
}
|
|
108
|
+
export {};
|
|
109
|
+
//# sourceMappingURL=list-explore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-explore.d.ts","sourceRoot":"","sources":["../../src/report/list-explore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The list reporter's view of an `e2e explore` run, fed by its `explore`
|
|
3
|
+
* events: the exploration steps by title as they finish, each finding the
|
|
4
|
+
* moment it is reported, and at the end the record, a `Findings` section
|
|
5
|
+
* with the evidence, and the assessment. An exploration is one synthetic
|
|
6
|
+
* test whose failure is its verdict, so the view stands in for the file
|
|
7
|
+
* block, the test line, and the `Failed Tests` entry that test would get.
|
|
8
|
+
*/
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import { collapseText } from '../internal/text.js';
|
|
11
|
+
import { ENDED_TEXT, orderFindings, SEVERITY_WORDS, stepCountParts } from './explore-text.js';
|
|
12
|
+
import { bounded, ellipsize, F_CHECK, F_CROSS, F_POINTER, formatTime, padTitle, rule, terminalColumns, terminalRows, visibleWidth, } from './format.js';
|
|
13
|
+
import { eventLine } from './list-steps.js';
|
|
14
|
+
import { WIDTH_MARGIN } from './live-window.js';
|
|
15
|
+
import { waitingRow } from './running-tree.js';
|
|
16
|
+
/** A finding, in the live window and the CI log. */
|
|
17
|
+
const F_FINDING = '⚑';
|
|
18
|
+
const F_DOWN_RIGHT = '↳';
|
|
19
|
+
/** Indentation of the exploration's rows under its header. */
|
|
20
|
+
const ROW_INDENT = ' ';
|
|
21
|
+
/** Indentation of the detail under a running exploration in the live window. */
|
|
22
|
+
const LIVE_INDENT = ' ';
|
|
23
|
+
/** Most recent calls of the step in progress the live window shows. */
|
|
24
|
+
const MAX_EVENTS = 6;
|
|
25
|
+
/** Rows the live window spends around the exploration: blank lines and the margin above the prompt. */
|
|
26
|
+
const CHROME_ROWS = 6;
|
|
27
|
+
/** Rows reserved for the exploration from the first paint, so the summary below does not jump. */
|
|
28
|
+
const RESERVED_ROWS = 14;
|
|
29
|
+
/** The tool call a finding stands in for; its own event is not an action. */
|
|
30
|
+
const FINDING_TOOL_EVENT = 'tool:report_finding';
|
|
31
|
+
/** Width of the label gutter in a finding's block: four for the number, then `expected `. */
|
|
32
|
+
const DETAIL_LABEL_WIDTH = 8;
|
|
33
|
+
const DETAIL_INDENT = ' ';
|
|
34
|
+
const STATUS_WORDS = {
|
|
35
|
+
passed: '',
|
|
36
|
+
failed: 'failed',
|
|
37
|
+
blocked: 'blocked',
|
|
38
|
+
exhausted: 'ended at its limit',
|
|
39
|
+
};
|
|
40
|
+
export class ExploreView {
|
|
41
|
+
pc;
|
|
42
|
+
now;
|
|
43
|
+
goal;
|
|
44
|
+
budgets;
|
|
45
|
+
startedMs;
|
|
46
|
+
steps = [];
|
|
47
|
+
findings = [];
|
|
48
|
+
open;
|
|
49
|
+
/** What the planner is deciding while no step is open: nothing, the next step, or the closing assessment. */
|
|
50
|
+
planning;
|
|
51
|
+
ended;
|
|
52
|
+
summary;
|
|
53
|
+
/** The exploration test's artifacts, once its result arrived: where a finding's screenshot is. */
|
|
54
|
+
artifacts = [];
|
|
55
|
+
/** High-water mark of the live rows; the window pads up to it. */
|
|
56
|
+
reservedRows = RESERVED_ROWS;
|
|
57
|
+
constructor(pc, started, now = Date.now) {
|
|
58
|
+
this.pc = pc;
|
|
59
|
+
this.now = now;
|
|
60
|
+
this.goal = started.goal;
|
|
61
|
+
this.budgets = started.budgets;
|
|
62
|
+
this.startedMs = now();
|
|
63
|
+
}
|
|
64
|
+
/** Applies one moment of the exploration. */
|
|
65
|
+
progress(progress) {
|
|
66
|
+
switch (progress.phase) {
|
|
67
|
+
case 'started':
|
|
68
|
+
break;
|
|
69
|
+
case 'planning':
|
|
70
|
+
this.planning = progress.closing ? 'closing' : 'step';
|
|
71
|
+
break;
|
|
72
|
+
case 'step-started':
|
|
73
|
+
this.planning = undefined;
|
|
74
|
+
this.open = { step: progress.step, actions: 0, findings: [] };
|
|
75
|
+
break;
|
|
76
|
+
case 'step-finished': {
|
|
77
|
+
const open = this.open;
|
|
78
|
+
this.open = undefined;
|
|
79
|
+
this.steps.push({ step: progress.step, actions: open?.actions ?? 0, findings: open?.findings.length ?? 0 });
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case 'finding':
|
|
83
|
+
this.findings.push(progress.finding);
|
|
84
|
+
this.open?.findings.push(progress.finding);
|
|
85
|
+
break;
|
|
86
|
+
case 'finished':
|
|
87
|
+
this.planning = undefined;
|
|
88
|
+
this.ended = progress.ended;
|
|
89
|
+
this.summary = progress.summary;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/** The step that finished last, with what the view counted while it ran. */
|
|
94
|
+
get lastStep() {
|
|
95
|
+
return this.steps.at(-1);
|
|
96
|
+
}
|
|
97
|
+
/** Counts one engine event of the step in progress as an action; the finding tool's own call is the finding. */
|
|
98
|
+
action(event) {
|
|
99
|
+
if (this.open === undefined || event.kind !== 'engine' || event.name === FINDING_TOOL_EVENT)
|
|
100
|
+
return;
|
|
101
|
+
this.open.actions += 1;
|
|
102
|
+
}
|
|
103
|
+
/** The exploration test's result arrived: keep its artifacts, so findings can name their screenshots. */
|
|
104
|
+
result(artifacts) {
|
|
105
|
+
this.artifacts = artifacts;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Whether the exploration test's error is the verdict the findings already
|
|
109
|
+
* express: issues were found, so the test failed. Anything else (a provider
|
|
110
|
+
* failure, a run that explored nothing) is a failure worth its own entry.
|
|
111
|
+
*/
|
|
112
|
+
isVerdict(error) {
|
|
113
|
+
return error.code === 'ASSERTION_FAILED' && this.issues.length > 0;
|
|
114
|
+
}
|
|
115
|
+
get issues() {
|
|
116
|
+
return this.findings.filter((finding) => finding.kind === 'issue');
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* ` ❯ |web| Exploring <goal>`; the goal clipped to `maxWidth` when given.
|
|
120
|
+
* Once over, the glyph is the verdict: a cross when issues were found or
|
|
121
|
+
* the exploration never concluded, a check otherwise.
|
|
122
|
+
*/
|
|
123
|
+
header(badge, verb, maxWidth) {
|
|
124
|
+
const { pc } = this;
|
|
125
|
+
const glyph = verb === 'Exploring'
|
|
126
|
+
? pc.yellow(F_POINTER)
|
|
127
|
+
: this.ended === undefined || this.issues.length > 0
|
|
128
|
+
? pc.red(F_CROSS)
|
|
129
|
+
: pc.green(F_CHECK);
|
|
130
|
+
const head = ` ${pc.bold(glyph)} ${badge} ${pc.bold(verb)} `;
|
|
131
|
+
const goal = collapseText(this.goal);
|
|
132
|
+
return `${head}${maxWidth === undefined ? bounded(goal) : ellipsize(goal, Math.max(24, maxWidth - visibleWidth(head)))}`;
|
|
133
|
+
}
|
|
134
|
+
/** One finished step: glyph, number, title, then duration, actions, findings, and a non-passed status; its explanation under it. */
|
|
135
|
+
stepLines(finished, indent = ROW_INDENT) {
|
|
136
|
+
const { pc } = this;
|
|
137
|
+
const { step } = finished;
|
|
138
|
+
const glyph = step.status === 'passed' ? pc.green(F_CHECK) : step.status === 'failed' ? pc.red(F_CROSS) : pc.yellow(F_CROSS);
|
|
139
|
+
const tail = [
|
|
140
|
+
formatTime(step.durationMs),
|
|
141
|
+
...(finished.actions > 0 ? [`${finished.actions} action${finished.actions === 1 ? '' : 's'}`] : []),
|
|
142
|
+
...(finished.findings > 0 ? [`${finished.findings} finding${finished.findings === 1 ? '' : 's'}`] : []),
|
|
143
|
+
].join(' · ');
|
|
144
|
+
const status = STATUS_WORDS[step.status];
|
|
145
|
+
const lines = [
|
|
146
|
+
`${indent}${glyph} ${pc.dim(String(step.index))} ${bounded(step.title)} ${pc.dim(tail)}${status === '' ? '' : ` ${pc.yellow(status)}`}`,
|
|
147
|
+
];
|
|
148
|
+
// A step that did not pass explains itself; a passed step's summary is the planner's, not the reader's.
|
|
149
|
+
if (step.status !== 'passed' && step.summary !== undefined) {
|
|
150
|
+
const room = terminalColumns() - WIDTH_MARGIN - indent.length - 5;
|
|
151
|
+
lines.push(`${indent} ${pc.dim(ellipsize(collapseText(step.summary), Math.max(24, room)))}`);
|
|
152
|
+
}
|
|
153
|
+
return lines;
|
|
154
|
+
}
|
|
155
|
+
/** One finding on one line: `⚑ high issue Title (/path)`. */
|
|
156
|
+
findingLine(finding, indent = ROW_INDENT) {
|
|
157
|
+
const { pc } = this;
|
|
158
|
+
const location = finding.path === undefined ? '' : pc.dim(` (${bounded(finding.path)})`);
|
|
159
|
+
return `${indent}${this.severityColor(finding)(`${F_FINDING} ${this.grade(finding)}`)} ${bounded(collapseText(finding.title))}${location}`;
|
|
160
|
+
}
|
|
161
|
+
/** `high issue`, `low warning`. */
|
|
162
|
+
grade(finding) {
|
|
163
|
+
return `${SEVERITY_WORDS[finding.severity]} ${finding.kind}`;
|
|
164
|
+
}
|
|
165
|
+
severityColor(finding) {
|
|
166
|
+
const { pc } = this;
|
|
167
|
+
if (finding.kind === 'warning')
|
|
168
|
+
return (text) => pc.dim(pc.yellow(text));
|
|
169
|
+
if (finding.severity >= 4)
|
|
170
|
+
return (text) => pc.bold(pc.red(text));
|
|
171
|
+
if (finding.severity === 3)
|
|
172
|
+
return (text) => pc.bold(pc.yellow(text));
|
|
173
|
+
return pc.yellow;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* The live window's running area: the header with its clock, the finished
|
|
177
|
+
* steps, and the step in progress with its latest calls and findings in
|
|
178
|
+
* time order, or the planner deciding. Sized to the screen as the running
|
|
179
|
+
* tree is: the step in progress has priority, older finished steps fold.
|
|
180
|
+
*/
|
|
181
|
+
liveRows(badge, events, summary, now) {
|
|
182
|
+
const { pc } = this;
|
|
183
|
+
const columns = terminalColumns() - WIDTH_MARGIN;
|
|
184
|
+
const clock = pc.bold(pc.yellow(formatTime(Math.max(0, now - this.startedMs))));
|
|
185
|
+
const lines = [`${this.header(badge, 'Exploring', columns - visibleWidth(clock) - 1)} ${clock}`];
|
|
186
|
+
const capacity = terminalRows() - summary.length - CHROME_ROWS;
|
|
187
|
+
let budget = capacity - 1;
|
|
188
|
+
const current = this.currentRows(events, now, budget);
|
|
189
|
+
budget -= current.length;
|
|
190
|
+
const finished = this.steps.flatMap((step) => this.stepLines(step, LIVE_INDENT));
|
|
191
|
+
if (budget > 0) {
|
|
192
|
+
const folded = finished.length - budget + 1;
|
|
193
|
+
lines.push(...(folded > 1 ? [`${LIVE_INDENT}${pc.dim(`… ${folded} earlier rows`)}`, ...finished.slice(folded)] : finished));
|
|
194
|
+
}
|
|
195
|
+
lines.push(...current);
|
|
196
|
+
this.reservedRows = Math.min(capacity, Math.max(this.reservedRows, lines.length));
|
|
197
|
+
while (lines.length < this.reservedRows)
|
|
198
|
+
lines.push('');
|
|
199
|
+
return ['', ...lines, '', ...summary, ''];
|
|
200
|
+
}
|
|
201
|
+
/** The step in progress, or the planner at work, at most `budget` rows. */
|
|
202
|
+
currentRows(events, now, budget) {
|
|
203
|
+
const { pc } = this;
|
|
204
|
+
if (this.ended !== undefined || budget < 1)
|
|
205
|
+
return [];
|
|
206
|
+
if (this.open === undefined) {
|
|
207
|
+
if (this.planning === undefined)
|
|
208
|
+
return [];
|
|
209
|
+
const what = this.planning === 'closing' ? 'the closing assessment' : `step ${this.steps.length + 1} of ${this.budgets.maxSteps}`;
|
|
210
|
+
return [`${LIVE_INDENT}${pc.dim(`${F_DOWN_RIGHT} planning ${what}`)}`, `${LIVE_INDENT} ${waitingRow(pc, now, 'Thinking')}`].slice(0, budget);
|
|
211
|
+
}
|
|
212
|
+
const { step } = this.open;
|
|
213
|
+
const rows = [`${LIVE_INDENT}${pc.dim(`${F_DOWN_RIGHT} ${step.index} `)}${bounded(step.title)} ${pc.dim(`(step ${step.index} of ${this.budgets.maxSteps})`)}`];
|
|
214
|
+
const timeline = this.timeline(events ?? []);
|
|
215
|
+
const shown = Math.min(MAX_EVENTS, Math.max(0, budget - 2));
|
|
216
|
+
const overflow = timeline.length - shown;
|
|
217
|
+
if (overflow > 0)
|
|
218
|
+
rows.push(`${LIVE_INDENT} ${pc.dim(`… ${overflow} earlier call${overflow === 1 ? '' : 's'}`)}`);
|
|
219
|
+
for (const row of overflow > 0 ? timeline.slice(overflow) : timeline)
|
|
220
|
+
rows.push(`${LIVE_INDENT} ${row}`);
|
|
221
|
+
rows.push(`${LIVE_INDENT} ${waitingRow(pc, now, 'Thinking')}`);
|
|
222
|
+
return rows.slice(0, budget);
|
|
223
|
+
}
|
|
224
|
+
/** The step's calls and its findings, interleaved by time; the finding tool's own call gives way to the finding. */
|
|
225
|
+
timeline(events) {
|
|
226
|
+
const rows = [
|
|
227
|
+
...events
|
|
228
|
+
.filter((event) => event.name !== FINDING_TOOL_EVENT)
|
|
229
|
+
.map((event) => ({ at: event.startedAt, row: eventLine(this.pc, event) })),
|
|
230
|
+
...(this.open?.findings ?? []).map((finding) => ({ at: finding.reportedAt, row: this.findingLine(finding, '') })),
|
|
231
|
+
];
|
|
232
|
+
return rows.toSorted((a, b) => (a.at < b.at ? -1 : a.at > b.at ? 1 : 0)).map((entry) => entry.row);
|
|
233
|
+
}
|
|
234
|
+
/** The summary's `Findings` and `Steps` rows, in place of `Test Files` and `Tests`. */
|
|
235
|
+
summaryRows() {
|
|
236
|
+
const { pc } = this;
|
|
237
|
+
const issues = this.issues.length;
|
|
238
|
+
const warnings = this.findings.length - issues;
|
|
239
|
+
const findings = this.findings.length === 0
|
|
240
|
+
? pc.dim('none')
|
|
241
|
+
: [
|
|
242
|
+
...(issues > 0 ? [pc.bold(pc.red(`${issues} issue${issues === 1 ? '' : 's'}`))] : []),
|
|
243
|
+
...(warnings > 0 ? [pc.yellow(`${warnings} warning${warnings === 1 ? '' : 's'}`)] : []),
|
|
244
|
+
].join(pc.dim(' | '));
|
|
245
|
+
const done = this.steps.length;
|
|
246
|
+
const steps = [];
|
|
247
|
+
if (this.ended === undefined) {
|
|
248
|
+
steps.push(`${done} done of ${this.budgets.maxSteps}`);
|
|
249
|
+
if (this.open !== undefined)
|
|
250
|
+
steps.push(`step ${this.open.step.index} running`);
|
|
251
|
+
else if (this.planning === 'closing')
|
|
252
|
+
steps.push('closing');
|
|
253
|
+
else if (this.planning === 'step')
|
|
254
|
+
steps.push('planning');
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
steps.push(`${done} of ${this.budgets.maxSteps}`, ...this.outcomeParts(), pc.dim(ENDED_TEXT[this.ended]));
|
|
258
|
+
}
|
|
259
|
+
return [padTitle(pc, 'Findings') + findings, padTitle(pc, 'Steps') + steps.join(pc.dim(' · '))];
|
|
260
|
+
}
|
|
261
|
+
/** `3 passed`, `1 failed`, ... over the finished steps, zero counts left out, colored by status. */
|
|
262
|
+
outcomeParts() {
|
|
263
|
+
const { pc } = this;
|
|
264
|
+
const color = { passed: pc.green, failed: pc.red, exhausted: pc.yellow, blocked: pc.yellow };
|
|
265
|
+
return stepCountParts(this.steps.map(({ step }) => step)).map((part) => color[part.status](part.text));
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* The permanent record once the run is over. With a live window
|
|
269
|
+
* (`withSteps`) it was the steps' only home, so the header and every step
|
|
270
|
+
* print here; without one they streamed as they finished, and only why the
|
|
271
|
+
* exploration ended is left to say.
|
|
272
|
+
*/
|
|
273
|
+
record(badge, withSteps) {
|
|
274
|
+
const { pc } = this;
|
|
275
|
+
const lines = withSteps ? ['', this.header(badge, 'Explored'), ...this.steps.flatMap((step) => this.stepLines(step))] : [];
|
|
276
|
+
if (this.steps.length === 0)
|
|
277
|
+
lines.push(`${ROW_INDENT}${pc.dim('no step ran')}`);
|
|
278
|
+
lines.push(`${ROW_INDENT}${pc.dim(`ended: ${ENDED_TEXT[this.ended ?? 'aborted']}`)}`);
|
|
279
|
+
return lines;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* The `Findings` section: a banner, then one block per finding, issues
|
|
283
|
+
* before warnings and the most severe first, each with where it was seen,
|
|
284
|
+
* its screenshot, what was expected against what the screen showed, and
|
|
285
|
+
* the actions that reach it.
|
|
286
|
+
*/
|
|
287
|
+
findingsSection(displayPath, artifactsRoot) {
|
|
288
|
+
const { pc } = this;
|
|
289
|
+
if (this.findings.length === 0)
|
|
290
|
+
return [];
|
|
291
|
+
const issues = this.issues.length;
|
|
292
|
+
const lines = ['', this.banner(`Findings ${this.findings.length}`, issues > 0 ? pc.red : pc.yellow), ''];
|
|
293
|
+
const ordered = orderFindings(this.findings);
|
|
294
|
+
const columns = terminalColumns();
|
|
295
|
+
ordered.forEach((finding, position) => {
|
|
296
|
+
const number = `${String(position + 1).padStart(2)}. `;
|
|
297
|
+
const grade = this.grade(finding);
|
|
298
|
+
lines.push(`${number}${this.severityColor(finding)(grade.padEnd(16))} ${pc.bold(bounded(collapseText(finding.title)))}`);
|
|
299
|
+
const where = [
|
|
300
|
+
...(finding.path === undefined ? [] : [bounded(finding.path)]),
|
|
301
|
+
...(finding.step === undefined ? [] : [`step ${finding.step}`]),
|
|
302
|
+
];
|
|
303
|
+
if (where.length > 0)
|
|
304
|
+
lines.push(`${DETAIL_INDENT}${pc.dim(where.join(' · '))}`);
|
|
305
|
+
lines.push(...this.detail('expected', finding.expected, columns));
|
|
306
|
+
lines.push(...this.detail('actual', finding.actual, columns));
|
|
307
|
+
finding.reproduction.forEach((action, index) => {
|
|
308
|
+
lines.push(...this.detail(index === 0 ? 'steps' : '', `${index + 1}. ${action}`, columns));
|
|
309
|
+
});
|
|
310
|
+
const screenshot = this.screenshot(finding, displayPath, artifactsRoot);
|
|
311
|
+
if (screenshot !== undefined)
|
|
312
|
+
lines.push(`${DETAIL_INDENT}${pc.dim('evidence'.padEnd(DETAIL_LABEL_WIDTH))} ${pc.cyan(screenshot)}`);
|
|
313
|
+
lines.push('');
|
|
314
|
+
});
|
|
315
|
+
return lines;
|
|
316
|
+
}
|
|
317
|
+
/** The report-relative path of a finding's screenshot, shown as the reporter shows paths. */
|
|
318
|
+
screenshot(finding, displayPath, artifactsRoot) {
|
|
319
|
+
if (finding.artifactId === undefined)
|
|
320
|
+
return undefined;
|
|
321
|
+
const artifact = this.artifacts.find((entry) => entry.id === finding.artifactId);
|
|
322
|
+
if (artifact?.path === undefined)
|
|
323
|
+
return undefined;
|
|
324
|
+
return displayPath(artifactsRoot === undefined ? artifact.path : path.join(artifactsRoot, artifact.path));
|
|
325
|
+
}
|
|
326
|
+
/** ` expected text…`, wrapped to the width with continuation lines under the text. */
|
|
327
|
+
detail(label, text, columns) {
|
|
328
|
+
const { pc } = this;
|
|
329
|
+
const gutter = `${DETAIL_INDENT}${label.padEnd(DETAIL_LABEL_WIDTH)} `;
|
|
330
|
+
const blank = ' '.repeat(gutter.length);
|
|
331
|
+
return wrap(collapseText(bounded(text)), Math.max(24, columns - gutter.length)).map((line, index) => `${index === 0 ? `${DETAIL_INDENT}${pc.dim(label.padEnd(DETAIL_LABEL_WIDTH))} ` : blank}${line}`);
|
|
332
|
+
}
|
|
333
|
+
/** The agent's closing assessment, wrapped under its heading. */
|
|
334
|
+
assessment() {
|
|
335
|
+
const { pc } = this;
|
|
336
|
+
if (this.summary === undefined)
|
|
337
|
+
return [];
|
|
338
|
+
const width = Math.max(24, terminalColumns() - ROW_INDENT.length - WIDTH_MARGIN);
|
|
339
|
+
return [` ${pc.bold('Assessment')}`, ...wrap(bounded(this.summary), width).map((line) => `${ROW_INDENT}${line}`)];
|
|
340
|
+
}
|
|
341
|
+
banner(message, color) {
|
|
342
|
+
const { pc } = this;
|
|
343
|
+
const label = pc.bold(pc.inverse(` ${message} `));
|
|
344
|
+
const { before, after } = rule(label, 'center');
|
|
345
|
+
return `${color(before)}${color(label)}${color(after)}`;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
/** Greedy word wrap; a word longer than the width stands on its own line. */
|
|
349
|
+
function wrap(text, width) {
|
|
350
|
+
const lines = [];
|
|
351
|
+
for (const paragraph of text.split('\n')) {
|
|
352
|
+
let line = '';
|
|
353
|
+
for (const word of paragraph.split(/\s+/).filter((part) => part !== '')) {
|
|
354
|
+
if (line === '')
|
|
355
|
+
line = word;
|
|
356
|
+
else if (visibleWidth(line) + 1 + visibleWidth(word) <= width)
|
|
357
|
+
line = `${line} ${word}`;
|
|
358
|
+
else {
|
|
359
|
+
lines.push(line);
|
|
360
|
+
line = word;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
if (line !== '')
|
|
364
|
+
lines.push(line);
|
|
365
|
+
}
|
|
366
|
+
return lines;
|
|
367
|
+
}
|
|
368
|
+
//# sourceMappingURL=list-explore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-explore.js","sourceRoot":"","sources":["../../src/report/list-explore.ts"],"names":[],"mappings":"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"}
|
package/dist/report/list.d.ts
CHANGED
|
@@ -82,6 +82,12 @@ export declare class ListReporter implements Reporter {
|
|
|
82
82
|
* has scrolled away by the time a long run ends.
|
|
83
83
|
*/
|
|
84
84
|
private models;
|
|
85
|
+
/**
|
|
86
|
+
* The exploration an `e2e explore` run reports through `explore` events;
|
|
87
|
+
* while present, its view stands in for the one synthetic test's file
|
|
88
|
+
* block, live rows, failure entry, and test counters.
|
|
89
|
+
*/
|
|
90
|
+
private explore;
|
|
85
91
|
constructor(output?: ListReporterOutput, options?: ListReporterOptions);
|
|
86
92
|
onEvent(event: RunEvent): void;
|
|
87
93
|
/**
|
|
@@ -180,6 +186,21 @@ export declare class ListReporter implements Reporter {
|
|
|
180
186
|
private emptyState;
|
|
181
187
|
/** The live window: the running tree, then the summary. */
|
|
182
188
|
private renderWindow;
|
|
189
|
+
/** The badge of the explored target: an exploration runs on exactly one. */
|
|
190
|
+
private exploreBadge;
|
|
191
|
+
/**
|
|
192
|
+
* One moment of an exploration. The first creates the view and, without a
|
|
193
|
+
* live window, prints the header; from then on a finished step and a
|
|
194
|
+
* finding each print at once without one, and the window shows them with
|
|
195
|
+
* one.
|
|
196
|
+
*/
|
|
197
|
+
private exploreProgress;
|
|
198
|
+
/**
|
|
199
|
+
* An exploration's permanent record: the header and, with a live window,
|
|
200
|
+
* the steps it was the only home of; then the findings with their
|
|
201
|
+
* evidence, and the closing assessment.
|
|
202
|
+
*/
|
|
203
|
+
private printExplore;
|
|
183
204
|
/** vitest's `Failed Tests` section: a banner, then each failure with its code frame. */
|
|
184
205
|
private printFailures;
|
|
185
206
|
/** A full-width red rule with a centered `FAIL`-style label. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/report/list.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAyC,MAAM,kBAAkB,CAAC;AAEtG,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/report/list.ts"],"names":[],"mappings":"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"}
|