@overkill-dev/reporter-line 0.0.33 → 0.0.34

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/package.json CHANGED
@@ -28,15 +28,16 @@
28
28
  "license": "MIT",
29
29
  "name": "@overkill-dev/reporter-line",
30
30
  "peerDependencies": {
31
- "@overkill-dev/engine": "0.0.41"
31
+ "@overkill-dev/engine": "0.0.42"
32
32
  },
33
33
  "repository": {
34
34
  "type": "git",
35
35
  "url": "git+https://github.com/enormora/overkill.git"
36
36
  },
37
37
  "sideEffects": [
38
+ "./reporters/human-reporter-rendering.js",
38
39
  "./reporters/line-reporter.js"
39
40
  ],
40
41
  "type": "module",
41
- "version": "0.0.33"
42
+ "version": "0.0.34"
42
43
  }
@@ -1,6 +1,8 @@
1
1
  import type { DefinedReporter, RealTimeReporter } from '@overkill-dev/engine';
2
2
  export type LineReporterOptions = {
3
+ readonly color?: boolean;
3
4
  readonly verbose: boolean;
5
+ readonly wrap?: boolean;
4
6
  };
5
7
  export declare function createLineReporter(options?: LineReporterOptions): DefinedReporter<RealTimeReporter>;
6
8
  //# sourceMappingURL=reporter-line.entry-point.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reporter-line.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/reporter-line/reporter-line.entry-point.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAiC,CAAC;AAEzF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAKnG"}
1
+ {"version":3,"file":"reporter-line.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/reporter-line/reporter-line.entry-point.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAiC,CAAC;AAIzF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAkBF,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAUnG"}
@@ -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 "@overkill-dev/engine";
3
+ import { formatDefinitionLocations } from "@overkill-dev/engine";
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 "@overkill-dev/engine";
4
4
  import { formatDefinitionLocations } from "@overkill-dev/engine";
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"}
@@ -1,5 +1,5 @@
1
1
  import 'ansi-escapes';
2
- import 'string-width';
2
+ import stringWidth from 'string-width';
3
3
 
4
4
  export function createTerminalLineLogger(dependencies) {
5
5
  const { stdoutConsole } = dependencies;
@@ -10,4 +10,8 @@ export function createTerminalLineLogger(dependencies) {
10
10
  };
11
11
  }
12
12
 
13
+ export function visibleTerminalWidth(value) {
14
+ return stringWidth(value);
15
+ }
16
+
13
17
  //# sourceMappingURL=terminal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../../source/reporters/terminal.ts"],"names":[],"mappings":"AAAA,OAAwB,cAAc,CAAC;AACvC,OAAwB,cAAc,CAAC;AAuCZ;AAE3B,MAAM,UAAU,wBAAwB,CAAC,YAA4C;IACjF,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;IAEvC,OAAO;QACH,IAAI,CAAC,GAAG,MAAM;YACV,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACjC,CAAC;KACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../../source/reporters/terminal.ts"],"names":[],"mappings":"AAAA,OAAwB,cAAc,CAAC;AACvC,OAAO,WAAW,MAAM,cAAc,CAAC;AAuCZ;AAE3B,MAAM,UAAU,wBAAwB,CAAC,YAA4C;IACjF,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;IAEvC,OAAO;QACH,IAAI,CAAC,GAAG,MAAM;YACV,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACjC,CAAC;KACJ,CAAC;AACN,CAAC;;MAMK,UAAU,oBAAoB,CAAC,KAAa;IAC9C,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
package/sbom.cdx.json CHANGED
@@ -16,24 +16,24 @@
16
16
  "component": {
17
17
  "type": "library",
18
18
  "name": "@overkill-dev/reporter-line",
19
- "version": "0.0.33",
20
- "bom-ref": "pkg:npm/@overkill-dev/reporter-line@0.0.33",
21
- "purl": "pkg:npm/@overkill-dev/reporter-line@0.0.33"
19
+ "version": "0.0.34",
20
+ "bom-ref": "pkg:npm/@overkill-dev/reporter-line@0.0.34",
21
+ "purl": "pkg:npm/@overkill-dev/reporter-line@0.0.34"
22
22
  }
23
23
  },
24
24
  "components": [
25
25
  {
26
26
  "type": "library",
27
27
  "name": "@overkill-dev/engine",
28
- "version": "0.0.41",
29
- "bom-ref": "pkg:npm/@overkill-dev/engine@0.0.41",
28
+ "version": "0.0.42",
29
+ "bom-ref": "pkg:npm/@overkill-dev/engine@0.0.42",
30
30
  "scope": "optional",
31
31
  "licenses": [
32
32
  {
33
33
  "expression": "MIT"
34
34
  }
35
35
  ],
36
- "purl": "pkg:npm/@overkill-dev/engine@0.0.41"
36
+ "purl": "pkg:npm/@overkill-dev/engine@0.0.42"
37
37
  },
38
38
  {
39
39
  "type": "library",
@@ -90,12 +90,12 @@
90
90
  ],
91
91
  "dependencies": [
92
92
  {
93
- "ref": "pkg:npm/@overkill-dev/engine@0.0.41"
93
+ "ref": "pkg:npm/@overkill-dev/engine@0.0.42"
94
94
  },
95
95
  {
96
- "ref": "pkg:npm/@overkill-dev/reporter-line@0.0.33",
96
+ "ref": "pkg:npm/@overkill-dev/reporter-line@0.0.34",
97
97
  "dependsOn": [
98
- "pkg:npm/@overkill-dev/engine@0.0.41",
98
+ "pkg:npm/@overkill-dev/engine@0.0.42",
99
99
  "pkg:npm/ansi-escapes@7.3.0",
100
100
  "pkg:npm/figures@6.1.0",
101
101
  "pkg:npm/string-width@8.2.2",