@overkill-dev/run 0.0.55 → 0.0.56

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.
Files changed (81) hide show
  1. package/engine/async-leak-diagnostics.d.ts.map +1 -1
  2. package/engine/async-leak-diagnostics.js +10 -0
  3. package/engine/async-leak-diagnostics.js.map +1 -1
  4. package/engine/case-execution.d.ts.map +1 -1
  5. package/engine/case-execution.js +2 -0
  6. package/engine/case-execution.js.map +1 -1
  7. package/engine/execution-async-leak-policy.d.ts.map +1 -1
  8. package/engine/execution-async-leak-policy.js +1 -0
  9. package/engine/execution-async-leak-policy.js.map +1 -1
  10. package/engine/execution-global-error-observer.d.ts.map +1 -1
  11. package/engine/execution-global-error-observer.js +3 -0
  12. package/engine/execution-global-error-observer.js.map +1 -1
  13. package/engine/execution-supervision.d.ts.map +1 -1
  14. package/engine/execution-supervision.js +11 -5
  15. package/engine/execution-supervision.js.map +1 -1
  16. package/engine/reporter-dispatcher.d.ts.map +1 -1
  17. package/engine/reporter-dispatcher.js +1 -0
  18. package/engine/reporter-dispatcher.js.map +1 -1
  19. package/engine/run-result.d.ts +6 -0
  20. package/engine/run-result.d.ts.map +1 -1
  21. package/engine/run-result.js +2 -0
  22. package/engine/run-result.js.map +1 -1
  23. package/package.json +2 -1
  24. package/packages/reporter-line/reporter-line.entry-point.js +19 -1
  25. package/packages/reporter-line/reporter-line.entry-point.js.map +1 -1
  26. package/reporters/failure-summary.js +16 -0
  27. package/reporters/failure-summary.js.map +1 -0
  28. package/reporters/human-reporter-rendering.js +214 -0
  29. package/reporters/human-reporter-rendering.js.map +1 -0
  30. package/reporters/line-reporter.js +92 -97
  31. package/reporters/line-reporter.js.map +1 -1
  32. package/reporters/run-timing-summary.js +11 -0
  33. package/reporters/run-timing-summary.js.map +1 -0
  34. package/reporters/terminal.js +5 -1
  35. package/reporters/terminal.js.map +1 -1
  36. package/run/capability-policy.js +5 -0
  37. package/run/capability-policy.js.map +1 -1
  38. package/run/duration-history.d.ts.map +1 -1
  39. package/run/duration-history.js +1 -0
  40. package/run/duration-history.js.map +1 -1
  41. package/run/placement-trace.d.ts +9 -0
  42. package/run/placement-trace.d.ts.map +1 -1
  43. package/run/placement-trace.js.map +1 -1
  44. package/run/run-errors.d.ts.map +1 -1
  45. package/run/run-errors.js +1 -0
  46. package/run/run-errors.js.map +1 -1
  47. package/run/supervised-child-test-plan.js +2 -0
  48. package/run/supervised-child-test-plan.js.map +1 -1
  49. package/run/supervised-run-resource-policy.js +6 -0
  50. package/run/supervised-run-resource-policy.js.map +1 -1
  51. package/run/supervised-run-runtime.js +1 -0
  52. package/run/supervised-run-runtime.js.map +1 -1
  53. package/run/supervised-run-state.d.ts +1 -0
  54. package/run/supervised-run-state.d.ts.map +1 -1
  55. package/run/supervised-run-state.js +17 -5
  56. package/run/supervised-run-state.js.map +1 -1
  57. package/run/supervised-run.js +4 -0
  58. package/run/supervised-run.js.map +1 -1
  59. package/run/worker-pool-collection.js +1 -0
  60. package/run/worker-pool-collection.js.map +1 -1
  61. package/run/worker-pool-dispatch-state.js +59 -0
  62. package/run/worker-pool-dispatch-state.js.map +1 -1
  63. package/run/worker-pool-dynamic-plan.js +62 -0
  64. package/run/worker-pool-dynamic-plan.js.map +1 -0
  65. package/run/worker-pool-execution.js +5 -10
  66. package/run/worker-pool-execution.js.map +1 -1
  67. package/run/worker-pool-lanes.js +6 -6
  68. package/run/worker-pool-lanes.js.map +1 -1
  69. package/run/worker-pool-lease-selection.js +85 -0
  70. package/run/worker-pool-lease-selection.js.map +1 -0
  71. package/run/worker-pool-task-events.js +17 -0
  72. package/run/worker-pool-task-events.js.map +1 -1
  73. package/run/worker-pool-warm-lane-affinity.d.ts +13 -0
  74. package/run/worker-pool-warm-lane-affinity.d.ts.map +1 -0
  75. package/run/worker-pool-warm-lane-affinity.js +147 -0
  76. package/run/worker-pool-warm-lane-affinity.js.map +1 -0
  77. package/run/worker-pool-work-dispatcher.js +53 -135
  78. package/run/worker-pool-work-dispatcher.js.map +1 -1
  79. package/run/worker-pool-worker-plan.js +1 -0
  80. package/run/worker-pool-worker-plan.js.map +1 -1
  81. package/sbom.cdx.json +4 -4
@@ -1,8 +1,26 @@
1
1
  import { createLineReporter as createLineReporterInstance } from "../../reporters/line-reporter.js";
2
+ const defaultColumns = 80;
3
+ function colorOption(options) {
4
+ return options?.color ?? true;
5
+ }
6
+ function wrapOption(options) {
7
+ return options?.wrap ?? true;
8
+ }
9
+ function verboseOption(options) {
10
+ return options?.verbose ?? false;
11
+ }
12
+ function currentColumns() {
13
+ return Number.isSafeInteger(process.stdout.columns) ? process.stdout.columns : defaultColumns;
14
+ }
2
15
  export function createLineReporter(options) {
3
16
  return createLineReporterInstance({
17
+ columns: currentColumns(),
18
+ formatOptions: {
19
+ color: colorOption(options),
20
+ wrap: wrapOption(options)
21
+ },
4
22
  stdoutConsole: console,
5
- verbose: options?.verbose ?? false
23
+ verbose: verboseOption(options)
6
24
  });
7
25
  }
8
26
  //# sourceMappingURL=reporter-line.entry-point.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reporter-line.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/reporter-line/reporter-line.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAOpG,MAAM,UAAU,kBAAkB,CAAC,OAA6B;IAC5D,OAAO,0BAA0B,CAAC;QAC9B,aAAa,EAAE,OAAO;QACtB,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK;KACrC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"reporter-line.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/reporter-line/reporter-line.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAGpG,MAAM,cAAc,GAAG,EAAE,CAAC;AAQ1B,SAAS,WAAW,CAAC,OAAwC;IACzD,OAAO,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,OAAwC;IACxD,OAAO,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,aAAa,CAAC,OAAwC;IAC3D,OAAO,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;AACrC,CAAC;AAED,SAAS,cAAc;IACnB,OAAO,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA6B;IAC5D,OAAO,0BAA0B,CAAC;QAC9B,OAAO,EAAE,cAAc,EAAE;QACzB,aAAa,EAAE;YACX,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC;YAC3B,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC;SAC5B;QACD,aAAa,EAAE,OAAO;QACtB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;KAClC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,16 @@
1
+ export function formatFailureSummary(failure) {
2
+ if (failure.kind === 'assertion') {
3
+ return failure.checks[0].summary;
4
+ }
5
+ if (failure.kind === 'body-error') {
6
+ return failure.error.message;
7
+ }
8
+ if (failure.kind === 'cleanup-error') {
9
+ return failure.error.message;
10
+ }
11
+ if (failure.kind === 'timeout') {
12
+ return `Timed out after ${failure.deadlineMilliseconds} ms.`;
13
+ }
14
+ return failure.summary;
15
+ }
16
+ //# sourceMappingURL=failure-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-summary.js","sourceRoot":"","sources":["../../../../source/reporters/failure-summary.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,OAAoB;IACrD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,mBAAmB,OAAO,CAAC,oBAAoB,MAAM,CAAC;IACjE,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,214 @@
1
+ import colors from 'yoctocolors';
2
+ import { formatCaseId } from "../engine/identity.js";
3
+ import { formatDefinitionLocations } from "../engine/reporting-context.js";
4
+ import { formatFailure } from "./line-failure-rendering.js";
5
+ import { formatTimingSummary as formatRunTimingSummary } from "./run-timing-summary.js";
6
+ const colorPalette = [
7
+ colors.cyan,
8
+ colors.green,
9
+ colors.magenta,
10
+ colors.yellow,
11
+ colors.blue
12
+ ];
13
+ function executedCount(result) {
14
+ const { summary } = result;
15
+ return summary.passed + summary.failed + summary.skipped + summary.inconclusive +
16
+ summary.resourceExhausted + summary.crashed + summary.runtimePolicy;
17
+ }
18
+ export const formatTimingSummary = formatRunTimingSummary;
19
+ export function formatCountSummary(result) {
20
+ const { summary } = result;
21
+ const outcomes = [
22
+ `${summary.passed} pass`,
23
+ `${summary.failed} fail`,
24
+ `${summary.skipped} skip`,
25
+ ...summary.inconclusive === 0 ? [] : [`${summary.inconclusive} inconclusive`],
26
+ ...summary.resourceExhausted === 0 ? [] : [`${summary.resourceExhausted} resource-exhausted`],
27
+ ...summary.runtimePolicy === 0 ? [] : [`${summary.runtimePolicy} runtime-policy`],
28
+ ...summary.crashed === 0 ? [] : [`${summary.crashed} crash`]
29
+ ]
30
+ .join(', ');
31
+ const orphanSummary = result.orphans.length === 0 ? '' : `, ${result.orphans.length} orphaned`;
32
+ return `${summary.discovered} discovered, ${summary.planned} planned, ${executedCount(result)} executed ` +
33
+ `(${outcomes})${orphanSummary}`;
34
+ }
35
+ function hashText(value) {
36
+ let hash = 0;
37
+ for (const character of value) {
38
+ hash += character.codePointAt(0) ?? 0;
39
+ }
40
+ return hash;
41
+ }
42
+ function paletteColor(value) {
43
+ return colorPalette[hashText(value) % colorPalette.length] ?? colors.cyan;
44
+ }
45
+ function formatColoredLabel(value, options) {
46
+ if (!options.color) {
47
+ return value;
48
+ }
49
+ return paletteColor(value)(value);
50
+ }
51
+ function runtimeLabel(runtime) {
52
+ if (runtime.variantId !== null) {
53
+ return `${runtime.name}:${runtime.variantId}`;
54
+ }
55
+ const dimensions = Object
56
+ .entries(runtime.dimensions)
57
+ .toSorted(function compareDimension([left], [right]) {
58
+ return left.localeCompare(right);
59
+ })
60
+ .map(function formatDimension([key, value]) {
61
+ return `${key}=${value}`;
62
+ });
63
+ return dimensions.length === 0 ? runtime.name : `${runtime.name}:${dimensions.join(',')}`;
64
+ }
65
+ function runtimePrefixes(runtimes, options) {
66
+ return runtimes
67
+ .map(function formatRuntime(runtime) {
68
+ const label = runtimeLabel(runtime);
69
+ return `[${formatColoredLabel(label, options)}]`;
70
+ })
71
+ .join(' ');
72
+ }
73
+ function suiteLabel(path, topLevel, options) {
74
+ if (!options.color) {
75
+ return path;
76
+ }
77
+ return `${paletteColor(topLevel)(topLevel)}${path.slice(topLevel.length)}`;
78
+ }
79
+ function suitePrefix(suite, options) {
80
+ if (suite.length === 0) {
81
+ return '';
82
+ }
83
+ const path = suite.join(' > ');
84
+ const topLevel = suite[0] ?? path;
85
+ const label = suiteLabel(path, topLevel, options);
86
+ return `[${label}]`;
87
+ }
88
+ export function contextPrefix(runtimes, suite, options) {
89
+ return [runtimePrefixes(runtimes, options), suitePrefix(suite, options)]
90
+ .filter(function present(value) {
91
+ return value.length > 0;
92
+ })
93
+ .join(' ');
94
+ }
95
+ function formatRunnerError(error) {
96
+ const attribution = error.attributedTo === null ? [] : [`test: ${formatCaseId(error.attributedTo)}`];
97
+ const diagnostics = error.diagnostics.map(function formatDiagnostic(diagnostic) {
98
+ return `${diagnostic.label}: ${diagnostic.value}`;
99
+ });
100
+ return [
101
+ `Runner error: ${error.message}`,
102
+ `type: ${error.subtype}`,
103
+ ...attribution,
104
+ ...diagnostics
105
+ ];
106
+ }
107
+ function artifactCaseKey(id) {
108
+ return JSON.stringify([id.file, id.suite, id.title, id.params]);
109
+ }
110
+ function caseArtifacts(result, testResult) {
111
+ const testKey = artifactCaseKey(testResult.id);
112
+ return result.artifacts.filter(function artifactForCase(artifact) {
113
+ return artifact.id.scope.kind === 'case' && artifactCaseKey(artifact.id.scope.case) === testKey;
114
+ });
115
+ }
116
+ function runArtifacts(result) {
117
+ return result.artifacts.filter(function isRunArtifact(artifact) {
118
+ return artifact.id.scope.kind === 'run';
119
+ });
120
+ }
121
+ function artifactLines(artifact) {
122
+ if (artifact.payload.kind !== 'captured-output') {
123
+ return [];
124
+ }
125
+ const suffix = artifact.payload.truncated ? ' truncated' : '';
126
+ const header = `${artifact.payload.stream}${suffix}:`;
127
+ const textLines = artifact.payload.text.length === 0
128
+ ? []
129
+ : artifact.payload.text.replace(/\n$/u, '').split('\n');
130
+ return [header, ...textLines];
131
+ }
132
+ function indentDetail(line) {
133
+ return ` ${line}`;
134
+ }
135
+ function failedTestLines(result, testResult, context, heading) {
136
+ if (testResult.outcome?.kind !== 'fail') {
137
+ return [];
138
+ }
139
+ return [
140
+ heading,
141
+ ...testResult.outcome.failures.flatMap(function formatTestFailure(failure) {
142
+ return formatFailure(failure, context).map(indentDetail);
143
+ }),
144
+ ...caseArtifacts(result, testResult).flatMap(function formatArtifact(artifact) {
145
+ return artifactLines(artifact).map(indentDetail);
146
+ })
147
+ ];
148
+ }
149
+ function passedArtifactLines(result, testResult, heading) {
150
+ return caseArtifacts(result, testResult).flatMap(function formatArtifact(artifact) {
151
+ return [
152
+ heading,
153
+ ...artifactLines(artifact).map(indentDetail)
154
+ ];
155
+ });
156
+ }
157
+ function testProblemHeading(testResult, context) {
158
+ const location = formatDefinitionLocations(testResult.definitionLocations, context).primary;
159
+ const locationText = location === null ? '' : ` (${location})`;
160
+ return `${formatCaseId(testResult.id)}${locationText}`;
161
+ }
162
+ function knownOutcomeProblemLines(input) {
163
+ const { context, heading, options, outcome, result, testResult } = input;
164
+ if (outcome.kind === 'fail') {
165
+ return failedTestLines(result, testResult, context, heading);
166
+ }
167
+ if (outcome.kind === 'inconclusive') {
168
+ return [heading, ` ${outcome.reason}`];
169
+ }
170
+ if (options.verbose && outcome.kind === 'pass') {
171
+ return passedArtifactLines(result, testResult, heading);
172
+ }
173
+ return [];
174
+ }
175
+ function testProblemLines(result, testResult, context, options) {
176
+ const heading = testProblemHeading(testResult, context);
177
+ const { outcome } = testResult;
178
+ if (outcome === null) {
179
+ return [heading, ` ${testResult.verdict}`];
180
+ }
181
+ return knownOutcomeProblemLines({ context, heading, options, outcome, result, testResult });
182
+ }
183
+ function problemTestResult(testResult, verbose) {
184
+ const { outcome } = testResult;
185
+ if (outcome === null) {
186
+ return true;
187
+ }
188
+ if (outcome.kind === 'fail' || outcome.kind === 'inconclusive') {
189
+ return true;
190
+ }
191
+ return verbose && outcome.kind === 'pass';
192
+ }
193
+ export function problemLines(result, context, options) {
194
+ const testLines = result
195
+ .perTest
196
+ .filter(function isProblem(testResult) {
197
+ return problemTestResult(testResult, options.verbose);
198
+ })
199
+ .flatMap(function formatProblem(testResult) {
200
+ return testProblemLines(result, testResult, context, options);
201
+ });
202
+ const runnerErrorLines = result.runnerErrors.flatMap(formatRunnerError);
203
+ const runArtifactLines = result.status === 'failed'
204
+ ? runArtifacts(result).flatMap(artifactLines)
205
+ : [];
206
+ const lines = [...testLines, ...runnerErrorLines, ...runArtifactLines];
207
+ return lines.length === 0 ? [] : [
208
+ 'Problems',
209
+ ...lines.map(function indentProblem(line) {
210
+ return ` ${line}`;
211
+ })
212
+ ];
213
+ }
214
+ //# sourceMappingURL=human-reporter-rendering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"human-reporter-rendering.js","sourceRoot":"","sources":["../../../../source/reporters/human-reporter-rendering.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,15 @@ import figures from 'figures';
2
2
  import colors from 'yoctocolors';
3
3
  import { defineReporter } from "../engine/reporter.js";
4
4
  import { formatDefinitionLocations } from "../engine/reporting-context.js";
5
- import { formatFailure } from "./line-failure-rendering.js";
5
+ import { formatFailureSummary } from "./failure-summary.js";
6
6
  import { formatRunFactSummary } from "./run-fact-summary.js";
7
- import { createTerminalLineLogger } from "./terminal.js";
7
+ import { createTerminalLineLogger, visibleTerminalWidth } from "./terminal.js";
8
+ import { contextPrefix, formatCountSummary, formatTimingSummary, problemLines } from "./human-reporter-rendering.js";
8
9
  const successSymbol = colors.green(figures.tick);
9
10
  const errorSymbol = colors.red(figures.cross);
10
11
  const infoSymbol = colors.cyan(figures.info);
11
12
  const microsecondsPerMillisecond = 1000;
13
+ const minimumColumnWidth = 1;
12
14
  function indent(depth) {
13
15
  return ' '.repeat(depth);
14
16
  }
@@ -27,10 +29,75 @@ function outcomeReason(outcome) {
27
29
  function formatDuration(durationMicroseconds) {
28
30
  return `${durationMicroseconds / microsecondsPerMillisecond} ms`;
29
31
  }
30
- function formatTestResult(id, outcome, durationMicroseconds) {
32
+ function nextWrapTextState(state, word, textColumns) {
33
+ const candidate = state.line.length === 0 ? word : `${state.line} ${word}`;
34
+ if (state.line.length > 0 && visibleTerminalWidth(candidate) > textColumns) {
35
+ return { line: word, lines: [...state.lines, state.line] };
36
+ }
37
+ return { ...state, line: candidate };
38
+ }
39
+ function wrapTextParts(value, columns) {
40
+ const leadingWhitespace = /^\s*/u.exec(value)?.[0] ?? '';
41
+ const text = value.slice(leadingWhitespace.length);
42
+ const textColumns = Math.max(minimumColumnWidth, columns - visibleTerminalWidth(leadingWhitespace));
43
+ const initialState = { line: '', lines: [] };
44
+ const state = text
45
+ .split(' ')
46
+ .reduce(function wrapWord(currentState, word) {
47
+ return nextWrapTextState(currentState, word, textColumns);
48
+ }, initialState);
49
+ return [...state.lines, state.line].map(function indentWrappedLine(wrappedLine) {
50
+ return `${leadingWhitespace}${wrappedLine}`;
51
+ });
52
+ }
53
+ function wrapText(value, columns) {
54
+ if (visibleTerminalWidth(value) <= columns) {
55
+ return [value];
56
+ }
57
+ return wrapTextParts(value, columns);
58
+ }
59
+ function logSingleValueLine(terminal, columns, value) {
60
+ const lines = wrapText(value, Math.max(minimumColumnWidth, columns));
61
+ for (const line of lines) {
62
+ terminal.line(line);
63
+ }
64
+ }
65
+ function logMultiValueLine(terminal, columns, values) {
66
+ const [symbol = '', ...messageValues] = values;
67
+ const message = messageValues.join(' ');
68
+ const continuationIndent = ' '.repeat(visibleTerminalWidth(symbol) + 1);
69
+ const firstLineColumns = Math.max(minimumColumnWidth, columns - visibleTerminalWidth(continuationIndent));
70
+ const [firstLine = '', ...continuationLines] = wrapText(message, firstLineColumns);
71
+ terminal.line(symbol, firstLine);
72
+ for (const continuationLine of continuationLines) {
73
+ terminal.line(`${continuationIndent}${continuationLine}`);
74
+ }
75
+ }
76
+ function logWrappedLine(terminal, columns, formatOptions, ...values) {
77
+ if (!formatOptions.wrap || values.length === 0) {
78
+ terminal.line(...values);
79
+ }
80
+ else if (values.length === 1) {
81
+ logSingleValueLine(terminal, columns, values[0] ?? '');
82
+ }
83
+ else {
84
+ logMultiValueLine(terminal, columns, values);
85
+ }
86
+ }
87
+ function outcomeDetail(outcome) {
31
88
  const reason = outcomeReason(outcome);
32
- const detail = reason === null ? '' : `: ${reason}`;
33
- const message = `${formatCaseTitle(id)}${detail} (${formatDuration(durationMicroseconds)})`;
89
+ if (reason !== null) {
90
+ return `: ${reason}`;
91
+ }
92
+ if (outcome.kind !== 'fail') {
93
+ return '';
94
+ }
95
+ return `: ${formatFailureSummary(outcome.failures[0])}`;
96
+ }
97
+ function formatTestResult(id, outcome, durationMicroseconds, prefix) {
98
+ const context = prefix.length === 0 ? '' : `${prefix} `;
99
+ const message = `${context}${formatCaseTitle(id)}${outcomeDetail(outcome)} ` +
100
+ `(${formatDuration(durationMicroseconds)})`;
34
101
  if (outcome.kind === 'fail') {
35
102
  return [errorSymbol, message];
36
103
  }
@@ -39,16 +106,14 @@ function formatTestResult(id, outcome, durationMicroseconds) {
39
106
  }
40
107
  return [infoSymbol, message];
41
108
  }
42
- function formatTerminalTestResult(id, verdict, durationMicroseconds) {
43
- const message = `${formatCaseTitle(id)} (${formatDuration(durationMicroseconds)})`;
109
+ function formatTerminalTestResult(id, verdict, durationMicroseconds, prefix) {
110
+ const context = prefix.length === 0 ? '' : `${prefix} `;
111
+ const message = `${context}${formatCaseTitle(id)} (${formatDuration(durationMicroseconds)})`;
44
112
  if (verdict === 'resource-exhausted') {
45
113
  return [errorSymbol, `${message}: resource exhausted`];
46
114
  }
47
115
  return [errorSymbol, `${message}: crashed`];
48
116
  }
49
- function formatSuiteName(event) {
50
- return event.suitePath.at(-1)?.title ?? '';
51
- }
52
117
  function formatOrphanLines(orphan, context) {
53
118
  const sourceLocations = formatDefinitionLocations(orphan.definitionLocations, context);
54
119
  const location = sourceLocations.primary === null ? '' : ` (${sourceLocations.primary})`;
@@ -59,30 +124,9 @@ function formatOrphanLines(orphan, context) {
59
124
  })
60
125
  ];
61
126
  }
62
- function logFailures(terminal, suiteDepth, outcome, context) {
63
- for (const failure of outcome.failures) {
64
- for (const line of formatFailure(failure, context)) {
65
- terminal.line(`${indent(suiteDepth + 1)}${line}`);
66
- }
67
- }
68
- }
69
127
  function logSummary(terminal, result) {
70
- const { summary } = result;
71
- const executed = summary.passed + summary.failed + summary.skipped + summary.inconclusive +
72
- summary.crashed + summary.resourceExhausted;
73
- const outcomes = [
74
- `${summary.passed} pass`,
75
- `${summary.failed} fail`,
76
- `${summary.skipped} skip`,
77
- ...summary.inconclusive === 0 ? [] : [`${summary.inconclusive} inconclusive`],
78
- ...summary.resourceExhausted === 0 ? [] : [`${summary.resourceExhausted} resource-exhausted`],
79
- ...summary.crashed === 0 ? [] : [`${summary.crashed} crash`]
80
- ]
81
- .join(', ');
82
- const orphanSummary = result.orphans.length === 0 ? '' : `, ${result.orphans.length} orphaned`;
83
- const countSummary = `${summary.discovered} discovered, ${summary.planned} planned, ${executed} executed`;
84
128
  const symbol = result.status === 'failed' ? errorSymbol : successSymbol;
85
- terminal.line(symbol, `${countSummary} (${outcomes})${orphanSummary} in ${formatDuration(result.timings.summary.totalWallTimeMicroseconds)}`);
129
+ terminal.line(symbol, `${formatCountSummary(result)} in ${formatDuration(result.timings.summary.totalWallTimeMicroseconds)} (${formatTimingSummary(result)})`);
86
130
  }
87
131
  function logOrphans(terminal, orphans, context) {
88
132
  if (orphans.length === 0) {
@@ -96,77 +140,33 @@ function logOrphans(terminal, orphans, context) {
96
140
  }
97
141
  }
98
142
  }
99
- function outputArtifactLines(artifact) {
100
- if (artifact.payload.kind !== 'captured-output') {
101
- return [];
102
- }
103
- const suffix = artifact.payload.truncated ? ' truncated' : '';
104
- const header = `${artifact.payload.stream}${suffix}:`;
105
- const textLines = artifact.payload.text.length === 0 ? [] : artifact.payload.text.replace(/\n$/u, '').split('\n');
106
- return [header, ...textLines];
107
- }
108
- function logOutputArtifacts(terminal, suiteDepth, artifacts) {
109
- for (const artifact of artifacts) {
110
- for (const line of outputArtifactLines(artifact)) {
111
- terminal.line(`${indent(suiteDepth + 1)}${line}`);
112
- }
113
- }
114
- }
115
- function shouldLogTestArtifacts(event, verbose) {
116
- return event.verdict !== 'pass' || verbose;
117
- }
118
143
  function failureLocation(event, definitionLocations) {
119
144
  if (event.outcome?.kind !== 'fail' || definitionLocations.primary === null) {
120
145
  return '';
121
146
  }
122
147
  return ` (${definitionLocations.primary})`;
123
148
  }
124
- function nonGreenRun(result) {
125
- return result.runnerErrors.length > 0 ||
126
- result.summary.crashed > 0 ||
127
- result.summary.failed > 0 ||
128
- result.summary.inconclusive > 0 ||
129
- result.summary.resourceExhausted > 0 ||
130
- result.summary.runtimePolicy > 0;
131
- }
132
- function runArtifacts(result) {
133
- return result.artifacts.filter(function isRunArtifact(artifact) {
134
- return artifact.id.scope.kind === 'run';
135
- });
136
- }
137
149
  function runStartLine(event) {
138
150
  const summary = formatRunFactSummary(event.facts);
139
151
  const details = summary === null ? '' : ` (${summary})`;
140
152
  return `Test run started: ${event.root.title}${details}`;
141
153
  }
142
154
  export function createLineReporter(dependencies) {
143
- const { stdoutConsole, verbose } = dependencies;
155
+ const { columns, formatOptions, stdoutConsole, verbose } = dependencies;
144
156
  return defineReporter(function createLineRuntimeReporter(context) {
145
157
  const terminal = createTerminalLineLogger({ stdoutConsole });
146
- let suiteDepth = 0;
147
- function logFailureDetails(event, definitionLocations) {
148
- if (event.outcome?.kind !== 'fail') {
149
- return;
150
- }
151
- for (const detailLine of definitionLocations.details) {
152
- terminal.line(`${indent(suiteDepth + 1)}${detailLine}`);
158
+ const wrappedTerminal = {
159
+ line(...values) {
160
+ logWrappedLine(terminal, columns, formatOptions, ...values);
153
161
  }
154
- logFailures(terminal, suiteDepth, event.outcome, context);
155
- }
162
+ };
156
163
  function logTestEnd(event) {
164
+ const prefix = contextPrefix(event.workId?.runtimes ?? [], event.case.suite, formatOptions);
157
165
  const [symbol, message] = event.outcome === null
158
- ? formatTerminalTestResult(event.case, event.verdict, event.durationMicroseconds)
159
- : formatTestResult(event.case, event.outcome, event.durationMicroseconds);
166
+ ? formatTerminalTestResult(event.case, event.verdict, event.durationMicroseconds, prefix)
167
+ : formatTestResult(event.case, event.outcome, event.durationMicroseconds, prefix);
160
168
  const definitionLocations = formatDefinitionLocations(event.definitionLocations, context);
161
- terminal.line(symbol, `${indent(suiteDepth)}${message}${failureLocation(event, definitionLocations)}`);
162
- logFailureDetails(event, definitionLocations);
163
- if (shouldLogTestArtifacts(event, verbose)) {
164
- logOutputArtifacts(terminal, suiteDepth, event.artifacts);
165
- }
166
- }
167
- function logSuiteStart(event) {
168
- terminal.line(infoSymbol, `${indent(suiteDepth)}${formatSuiteName(event)}`);
169
- suiteDepth += 1;
169
+ wrappedTerminal.line(symbol, `${message}${failureLocation(event, definitionLocations)}`);
170
170
  }
171
171
  return {
172
172
  dispose: null,
@@ -175,27 +175,22 @@ export function createLineReporter(dependencies) {
175
175
  sinks: [{ kind: 'stdout-raw' }],
176
176
  async onEvent(event) {
177
177
  if (event.kind === 'run-start') {
178
- terminal.line(infoSymbol, runStartLine(event));
179
- }
180
- else if (event.kind === 'suite-start') {
181
- logSuiteStart(event);
182
- }
183
- else if (event.kind === 'suite-end') {
184
- suiteDepth = Math.max(0, suiteDepth - 1);
178
+ wrappedTerminal.line(infoSymbol, runStartLine(event));
185
179
  }
186
180
  else if (event.kind === 'test-end') {
187
181
  logTestEnd(event);
188
182
  }
189
183
  else if (event.kind === 'runner-error') {
190
- terminal.line(errorSymbol, `Runner error: ${event.error.message}`);
184
+ wrappedTerminal.line(errorSymbol, `Runner error: ${event.error.message}`);
191
185
  }
192
186
  },
193
187
  async onFinish(finalResult) {
194
- logSummary(terminal, finalResult);
195
- if (nonGreenRun(finalResult) || verbose) {
196
- logOutputArtifacts(terminal, 0, runArtifacts(finalResult));
188
+ const lines = problemLines(finalResult, context, { verbose });
189
+ for (const line of lines) {
190
+ wrappedTerminal.line(line);
197
191
  }
198
- logOrphans(terminal, finalResult.orphans, context);
192
+ logSummary(wrappedTerminal, finalResult);
193
+ logOrphans(wrappedTerminal, finalResult.orphans, context);
199
194
  }
200
195
  };
201
196
  });
@@ -1 +1 @@
1
- {"version":3,"file":"line-reporter.js","sourceRoot":"","sources":["../../../../source/reporters/line-reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"line-reporter.js","sourceRoot":"","sources":["../../../../source/reporters/line-reporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ const microsecondsPerMillisecond = 1000;
2
+ function milliseconds(microseconds) {
3
+ return Math.round(microseconds / microsecondsPerMillisecond);
4
+ }
5
+ export function formatTimingSummary(result) {
6
+ const { summary } = result.timings;
7
+ return `total ${milliseconds(summary.totalWallTimeMicroseconds)} ms, ` +
8
+ `execution ${milliseconds(summary.testExecutionWallTimeMicroseconds)} ms, ` +
9
+ `overhead ${milliseconds(summary.runnerOverheadWallTimeMicroseconds)} ms`;
10
+ }
11
+ //# sourceMappingURL=run-timing-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-timing-summary.js","sourceRoot":"","sources":["../../../../source/reporters/run-timing-summary.ts"],"names":[],"mappings":"AAEA,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAExC,SAAS,YAAY,CAAC,YAAoB;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,0BAA0B,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;IAEnC,OAAO,SAAS,YAAY,CAAC,OAAO,CAAC,yBAAyB,CAAC,OAAO;QAClE,aAAa,YAAY,CAAC,OAAO,CAAC,iCAAiC,CAAC,OAAO;QAC3E,YAAY,YAAY,CAAC,OAAO,CAAC,kCAAkC,CAAC,KAAK,CAAC;AAClF,CAAC"}