@serenity-js/console-reporter 3.0.0-rc.9 → 3.0.1

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 (73) hide show
  1. package/CHANGELOG.md +75 -1171
  2. package/README.md +98 -27
  3. package/lib/index.d.ts +4 -0
  4. package/lib/index.d.ts.map +1 -0
  5. package/lib/index.js +11 -1
  6. package/lib/index.js.map +1 -1
  7. package/lib/stage/crew/console-reporter/ConsoleReporter.d.ts +84 -60
  8. package/lib/stage/crew/console-reporter/ConsoleReporter.d.ts.map +1 -0
  9. package/lib/stage/crew/console-reporter/ConsoleReporter.js +233 -171
  10. package/lib/stage/crew/console-reporter/ConsoleReporter.js.map +1 -1
  11. package/lib/stage/crew/console-reporter/ConsoleReporterConfig.d.ts +13 -0
  12. package/lib/stage/crew/console-reporter/ConsoleReporterConfig.d.ts.map +1 -0
  13. package/lib/stage/crew/console-reporter/ConsoleReporterConfig.js +3 -0
  14. package/lib/stage/crew/console-reporter/ConsoleReporterConfig.js.map +1 -0
  15. package/lib/stage/crew/console-reporter/Printer.d.ts +2 -4
  16. package/lib/stage/crew/console-reporter/Printer.d.ts.map +1 -0
  17. package/lib/stage/crew/console-reporter/Printer.js +0 -3
  18. package/lib/stage/crew/console-reporter/Printer.js.map +1 -1
  19. package/lib/stage/crew/console-reporter/Summary.d.ts +7 -1
  20. package/lib/stage/crew/console-reporter/Summary.d.ts.map +1 -0
  21. package/lib/stage/crew/console-reporter/Summary.js +14 -1
  22. package/lib/stage/crew/console-reporter/Summary.js.map +1 -1
  23. package/lib/stage/crew/console-reporter/SummaryFormatter.d.ts +1 -0
  24. package/lib/stage/crew/console-reporter/SummaryFormatter.d.ts.map +1 -0
  25. package/lib/stage/crew/console-reporter/SummaryFormatter.js +4 -1
  26. package/lib/stage/crew/console-reporter/SummaryFormatter.js.map +1 -1
  27. package/lib/stage/crew/console-reporter/index.d.ts +2 -0
  28. package/lib/stage/crew/console-reporter/index.d.ts.map +1 -0
  29. package/lib/stage/crew/console-reporter/index.js +6 -1
  30. package/lib/stage/crew/console-reporter/index.js.map +1 -1
  31. package/lib/stage/crew/console-reporter/themes/TerminalTheme.d.ts +1 -7
  32. package/lib/stage/crew/console-reporter/themes/TerminalTheme.d.ts.map +1 -0
  33. package/lib/stage/crew/console-reporter/themes/TerminalTheme.js +0 -6
  34. package/lib/stage/crew/console-reporter/themes/TerminalTheme.js.map +1 -1
  35. package/lib/stage/crew/console-reporter/themes/ThemeForColourTerminals.d.ts +7 -21
  36. package/lib/stage/crew/console-reporter/themes/ThemeForColourTerminals.d.ts.map +1 -0
  37. package/lib/stage/crew/console-reporter/themes/ThemeForColourTerminals.js +9 -30
  38. package/lib/stage/crew/console-reporter/themes/ThemeForColourTerminals.js.map +1 -1
  39. package/lib/stage/crew/console-reporter/themes/ThemeForDarkTerminals.d.ts +1 -0
  40. package/lib/stage/crew/console-reporter/themes/ThemeForDarkTerminals.d.ts.map +1 -0
  41. package/lib/stage/crew/console-reporter/themes/ThemeForLightTerminals.d.ts +1 -0
  42. package/lib/stage/crew/console-reporter/themes/ThemeForLightTerminals.d.ts.map +1 -0
  43. package/lib/stage/crew/console-reporter/themes/ThemeForMonochromaticTerminals.d.ts +7 -20
  44. package/lib/stage/crew/console-reporter/themes/ThemeForMonochromaticTerminals.d.ts.map +1 -0
  45. package/lib/stage/crew/console-reporter/themes/ThemeForMonochromaticTerminals.js +6 -29
  46. package/lib/stage/crew/console-reporter/themes/ThemeForMonochromaticTerminals.js.map +1 -1
  47. package/lib/stage/crew/console-reporter/themes/index.d.ts +1 -0
  48. package/lib/stage/crew/console-reporter/themes/index.d.ts.map +1 -0
  49. package/lib/stage/crew/console-reporter/themes/index.js +5 -1
  50. package/lib/stage/crew/console-reporter/themes/index.js.map +1 -1
  51. package/lib/stage/crew/index.d.ts +1 -0
  52. package/lib/stage/crew/index.d.ts.map +1 -0
  53. package/lib/stage/crew/index.js +5 -1
  54. package/lib/stage/crew/index.js.map +1 -1
  55. package/lib/stage/index.d.ts +1 -0
  56. package/lib/stage/index.d.ts.map +1 -0
  57. package/lib/stage/index.js +5 -1
  58. package/lib/stage/index.js.map +1 -1
  59. package/package.json +19 -42
  60. package/src/index.ts +9 -0
  61. package/src/stage/crew/console-reporter/ConsoleReporter.ts +237 -173
  62. package/src/stage/crew/console-reporter/ConsoleReporterConfig.ts +12 -0
  63. package/src/stage/crew/console-reporter/Printer.ts +1 -4
  64. package/src/stage/crew/console-reporter/Summary.ts +23 -4
  65. package/src/stage/crew/console-reporter/SummaryFormatter.ts +5 -10
  66. package/src/stage/crew/console-reporter/index.ts +1 -0
  67. package/src/stage/crew/console-reporter/themes/TerminalTheme.ts +0 -8
  68. package/src/stage/crew/console-reporter/themes/ThemeForColourTerminals.ts +11 -42
  69. package/src/stage/crew/console-reporter/themes/ThemeForDarkTerminals.ts +1 -1
  70. package/src/stage/crew/console-reporter/themes/ThemeForLightTerminals.ts +1 -1
  71. package/src/stage/crew/console-reporter/themes/ThemeForMonochromaticTerminals.ts +6 -30
  72. package/tsconfig.build.json +10 -0
  73. package/tsconfig.eslint.json +0 -10
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConsoleReporter = void 0;
4
- const lib_1 = require("@serenity-js/core/lib");
4
+ const core_1 = require("@serenity-js/core");
5
5
  const events_1 = require("@serenity-js/core/lib/events");
6
6
  const model_1 = require("@serenity-js/core/lib/model");
7
7
  const chalk_1 = require("chalk"); // eslint-disable-line unicorn/import-style
@@ -11,23 +11,29 @@ const Summary_1 = require("./Summary");
11
11
  const SummaryFormatter_1 = require("./SummaryFormatter");
12
12
  const themes_1 = require("./themes");
13
13
  /**
14
- * @desc
15
- * Uses [standard output](https://en.wikipedia.org/wiki/Standard_streams)
16
- * to report on progress of your Serenity/JS acceptance tests.
14
+ * A {@apilink StageCrewMember} that uses [standard output](https://en.wikipedia.org/wiki/Standard_streams)
15
+ * to report on progress of your Serenity/JS acceptance tests.
17
16
  *
18
- * `ConsoleReporter` ships with colour themes for both dark and light terminals,
19
- * as well as a monochromatic theme for those moments when you're in a noir mood
20
- * (or have a terminal that doesn't support colours, like the good old `cmd.exe` on Windows).
17
+ * `ConsoleReporter` ships with colour themes for both dark and light terminals,
18
+ * as well as a monochromatic theme for those moments when you're in a noir mood
19
+ * (or have a terminal that doesn't support colours, like the good old `cmd.exe` on Windows).
21
20
  *
22
- * @example <caption>Registering the reporter programmatically</caption>
21
+ * ## Registering the reporter programmatically
22
+ *
23
+ * ```ts
23
24
  * import { configure } from '@serenity-js/core';
24
25
  * import { ConsoleReporter } from '@serenity-js/console-reporter';
25
26
  *
26
27
  * configure({
27
- * crew: [ ConsoleReporter.withDefaultColourSupport() ],
28
+ * crew: [
29
+ * ConsoleReporter.withDefaultColourSupport()
30
+ * ],
28
31
  * });
32
+ * ```
33
+ *
34
+ * ## Redirecting output to a file
29
35
  *
30
- * @example <caption>Redirecting output to a file</caption>
36
+ * ```ts
31
37
  * import { configure } from '@serenity-js/core';
32
38
  * import { ConsoleReporter } from '@serenity-js/console-reporter';
33
39
  * import { createWriteStream } from 'fs';
@@ -36,208 +42,258 @@ const themes_1 = require("./themes");
36
42
  * outputStream: createWriteStream('./output.log'),
37
43
  * crew: [ ConsoleReporter.withDefaultColourSupport() ],
38
44
  * });
45
+ * ```
46
+ * ## Registering the reporter with WebdriverIO
47
+ *
48
+ * ```ts
49
+ * // wdio.conf.ts
50
+ * import { ConsoleReporter } from '@serenity-js/console-reporter';
51
+ * import { WebdriverIOConfig } from '@serenity-js/webdriverio';
52
+ *
53
+ * export const config: WebdriverIOConfig = {
54
+ *
55
+ * framework: '@serenity-js/webdriverio',
39
56
  *
40
- * @example <caption>Registering the reporter using Protractor configuration</caption>
41
- * // protractor.conf.js
42
- * const { ConsoleReporter } = require('@serenity-js/console-reporter');
57
+ * serenity: {
58
+ * crew: [
59
+ * ConsoleReporter.forDarkTerminals(),
60
+ * ]
61
+ * // other Serenity/JS config
62
+ * },
43
63
  *
44
- * exports.config = {
45
- * framework: 'custom',
46
- * frameworkPath: require.resolve('@serenity-js/protractor/adapter'),
64
+ * // other WebdriverIO config
65
+ * }
66
+ * ```
47
67
  *
48
- * serenity: {
49
- * crew: [
50
- * ConsoleReporter.withDefaultColourSupport(),
51
- * ],
52
- * // other Serenity/JS config
53
- * },
68
+ * ## Registering the reporter with Protractor
54
69
  *
55
- * // other Protractor config
56
- * };
70
+ * ```js
71
+ * // protractor.conf.js
72
+ * const { ConsoleReporter } = require('@serenity-js/console-reporter');
73
+ *
74
+ * exports.config = {
75
+ * framework: 'custom',
76
+ * frameworkPath: require.resolve('@serenity-js/protractor/adapter'),
77
+ *
78
+ * serenity: {
79
+ * crew: [
80
+ * ConsoleReporter.withDefaultColourSupport(),
81
+ * ],
82
+ * // other Serenity/JS config
83
+ * },
84
+ *
85
+ * // other Protractor config
86
+ * }
87
+ * ```
57
88
  *
58
89
  * @public
59
- * @implements {@serenity-js/core/lib/stage~ListensToDomainEvents}
90
+ *
91
+ * @group Stage
60
92
  */
61
93
  class ConsoleReporter {
62
- /**
63
- * @param {Printer} printer
64
- * @param {TerminalTheme} theme
65
- * @param {@serenity-js/core/lib/stage~Stage} [stage=null]
66
- */
67
- constructor(printer, theme, stage) {
68
- this.printer = printer;
69
- this.theme = theme;
70
- this.stage = stage;
71
- this.startTimes = new StartTimes();
72
- this.artifacts = new ActivityRelatedArtifacts();
73
- this.summary = new Summary_1.Summary();
74
- this.firstError = new FirstError();
75
- (0, tiny_types_1.ensure)('printer', printer, (0, tiny_types_1.isDefined)());
76
- (0, tiny_types_1.ensure)('theme', theme, (0, tiny_types_1.isDefined)());
77
- this.summaryFormatter = new SummaryFormatter_1.SummaryFormatter(this.theme);
94
+ static fromJSON(config) {
95
+ return new ConsoleReporterBuilder(ConsoleReporter.theme(config.theme));
78
96
  }
79
97
  /**
80
- * @desc
81
- * Instantiates a `ConsoleReporter` that auto-detects
82
- * your terminal's support for colours and use a colour theme
83
- * for dark terminals if successful.
84
- *
85
- * Please note that spawning your test process from another process
86
- * (by using [npm-failsafe](https://www.npmjs.com/package/npm-failsafe), for example)
87
- * causes the `ConsoleReporter` to use the monochromatic colour scheme,
88
- * as colour support can't be detected in child processes.
98
+ * Instantiates a `ConsoleReporter` that auto-detects
99
+ * your terminal's support for colours and uses a colour theme
100
+ * for dark terminals if successful.
89
101
  *
90
- * If the above describes your setup, use {@link ConsoleReporter#forDarkTerminals}
91
- * or {@link ConsoleReporter#forLightTerminals} to make the sub-process produce colour output.
92
- *
93
- * @returns {@serenity-js/core/lib/stage~StageCrewMemberBuilder}
102
+ * Please note that spawning your test process from another process
103
+ * (by using [npm-failsafe](https://www.npmjs.com/package/npm-failsafe), for example)
104
+ * causes the `ConsoleReporter` to use the monochromatic colour scheme,
105
+ * as colour support can't be detected in child processes.
94
106
  */
95
107
  static withDefaultColourSupport() {
96
- return new ConsoleReporterBuilder(new themes_1.ThemeForDarkTerminals(new chalk_1.Instance( /* auto-detect */)));
108
+ return new ConsoleReporterBuilder(ConsoleReporter.theme('auto'));
97
109
  }
98
110
  /**
99
- * @desc
100
- * Instantiates a `ConsoleReporter` with a monochromatic colour theme.
101
- * Good for terminals with no colour support (like the `cmd.exe` on Windows),
102
- * or for when you need to pipe the output to a text file and want
103
- * to avoid printing control characters.
104
- *
105
- * @returns {@serenity-js/core/lib/stage~StageCrewMemberBuilder}
111
+ * Instantiates a `ConsoleReporter` with a monochromatic colour theme.
112
+ * Good for terminals with no colour support (like the `cmd.exe` on Windows),
113
+ * or for times when you need to pipe the output to a text file and want
114
+ * to avoid printing control characters.
106
115
  */
107
116
  static forMonochromaticTerminals() {
108
- return new ConsoleReporterBuilder(new themes_1.ThemeForMonochromaticTerminals());
117
+ return new ConsoleReporterBuilder(ConsoleReporter.theme('mono'));
109
118
  }
110
119
  /**
111
- * @desc
112
- * Instantiates a `ConsoleReporter` with a colour theme optimised for terminals with dark backgrounds.
113
- *
114
- * @returns {@serenity-js/core/lib/stage~StageCrewMemberBuilder}
120
+ * Instantiates a `ConsoleReporter` with a colour theme optimised for terminals with dark backgrounds.
115
121
  */
116
122
  static forDarkTerminals() {
117
- return new ConsoleReporterBuilder(new themes_1.ThemeForDarkTerminals(new chalk_1.Instance({ level: 2 })));
123
+ return new ConsoleReporterBuilder(ConsoleReporter.theme('dark'));
118
124
  }
119
125
  /**
120
- * @desc
121
- * Instantiates a `ConsoleReporter` with a colour theme optimised for terminals with light backgrounds.
122
- *
123
- * @returns {@serenity-js/core/lib/stage~StageCrewMemberBuilder}
126
+ * Instantiates a `ConsoleReporter` with a colour theme optimised for terminals with light backgrounds.
124
127
  */
125
128
  static forLightTerminals() {
126
- return new ConsoleReporterBuilder(new themes_1.ThemeForLightTerminals(new chalk_1.Instance({ level: 2 })));
129
+ return new ConsoleReporterBuilder(ConsoleReporter.theme('light'));
130
+ }
131
+ static theme(theme) {
132
+ switch (theme) {
133
+ case 'dark':
134
+ return new themes_1.ThemeForDarkTerminals(new chalk_1.Instance({ level: 2 }));
135
+ case 'light':
136
+ return new themes_1.ThemeForLightTerminals(new chalk_1.Instance({ level: 2 }));
137
+ case 'mono':
138
+ return new themes_1.ThemeForMonochromaticTerminals();
139
+ default:
140
+ return new themes_1.ThemeForDarkTerminals(new chalk_1.Instance( /* auto-detect */));
141
+ }
142
+ }
143
+ /**
144
+ * @param {Printer} printer
145
+ * @param {TerminalTheme} theme
146
+ * @param {Stage} [stage=undefined]
147
+ */
148
+ constructor(printer, theme, stage) {
149
+ this.printer = printer;
150
+ this.theme = theme;
151
+ this.stage = stage;
152
+ this.startTimes = new StartTimes();
153
+ this.artifacts = new ActivityRelatedArtifacts();
154
+ this.summary = new Summary_1.Summary();
155
+ this.firstErrors = new Map();
156
+ this.eventQueues = new core_1.DomainEventQueues();
157
+ (0, tiny_types_1.ensure)('printer', printer, (0, tiny_types_1.isDefined)());
158
+ (0, tiny_types_1.ensure)('theme', theme, (0, tiny_types_1.isDefined)());
159
+ this.summaryFormatter = new SummaryFormatter_1.SummaryFormatter(this.theme);
127
160
  }
128
161
  /**
129
- * @desc
130
- * Handles {@link @serenity-js/core/lib/events~DomainEvent} objects emitted by the {@link @serenity-js/core/lib/stage~StageCrewMember}.
162
+ * Handles {@apilink DomainEvent} objects emitted by the {@apilink Stage}.
131
163
  *
132
- * @see {@link @serenity-js/core/lib/stage~StageCrewMember}
164
+ * @see {@apilink StageCrewMember}
133
165
  *
134
- * @listens {@serenity-js/core/lib/events~DomainEvent}
166
+ * @listens {DomainEvent}
135
167
  *
136
- * @param {@serenity-js/core/lib/events~DomainEvent} event
137
- * @returns {void}
168
+ * @param {DomainEvent} event
138
169
  */
139
170
  notifyOf(event) {
140
- (0, tiny_types_1.match)(event)
141
- .when(events_1.SceneStarts, (e) => {
142
- this.firstError = new FirstError();
143
- this.startTimes.recordStartOf(e);
144
- // Print scenario header
145
- this.printer.println(this.theme.separator('-'));
146
- this.printer.println(e.details.location.path.value, e.details.location.line ? `:${e.details.location.line}` : '');
147
- this.printer.println();
148
- this.printer.println(this.theme.heading(e.details.category.value, ': ', e.details.name.value));
149
- this.printer.println();
150
- })
151
- // todo: add SceneTagged ...
152
- .when(events_1.TaskStarts, (e) => {
153
- this.printer.indent();
154
- if (!this.firstError.alreadyRecorded()) {
155
- this.printer.println(e.details.name.value);
156
- }
157
- })
158
- .when(events_1.InteractionStarts, (e) => {
159
- this.startTimes.recordStartOf(e);
160
- })
161
- .when(events_1.InteractionFinished, (e) => {
162
- this.printer.indent();
163
- this.printer.println(this.formattedOutcome(e));
164
- this.printer.indent();
165
- if (e.outcome instanceof model_1.ProblemIndication) {
166
- this.firstError.recordIfNeeded(e.outcome.error);
167
- if (!(e.outcome.error instanceof lib_1.AssertionError)) {
168
- this.printer.println(this.theme.outcome(e.outcome, `${e.outcome.error}`));
169
- }
171
+ if (event instanceof events_1.TestRunStarts) {
172
+ this.summary.recordTestRunStartedAt(event.timestamp);
173
+ }
174
+ if (this.isSceneSpecific(event)) {
175
+ this.eventQueues.enqueue(event);
176
+ }
177
+ if (event instanceof events_1.SceneStarts) {
178
+ this.firstErrors.set(event.sceneId.value, new FirstError());
179
+ this.startTimes.recordStartOf(event);
180
+ }
181
+ if (event instanceof events_1.SceneFinished) {
182
+ this.printScene(event.sceneId);
183
+ }
184
+ if (event instanceof events_1.TestRunFinished) {
185
+ this.summary.recordTestRunFinishedAt(event.timestamp);
186
+ this.printSummary(this.summary);
187
+ if (event.outcome instanceof model_1.ProblemIndication) {
188
+ this.printTestRunErrorOutcome(event.outcome);
170
189
  }
171
- const artifactGeneratedEvents = this.artifacts.recordedFor(e.activityId);
172
- if (artifactGeneratedEvents.some(a => a instanceof model_1.AssertionReport || a instanceof model_1.LogEntry)) {
190
+ }
191
+ }
192
+ printTestRunErrorOutcome(outcome) {
193
+ this.printer.println(this.theme.outcome(outcome, outcome.error.stack));
194
+ }
195
+ printScene(sceneId) {
196
+ const events = this.eventQueues.drainQueueFor(sceneId);
197
+ for (const event of events) {
198
+ (0, tiny_types_1.match)(event)
199
+ .when(events_1.SceneStarts, (e) => {
200
+ const category = e.details.name.value ? `${e.details.category.value}: ` : '';
201
+ // Print scenario header
202
+ this.printer.println(this.theme.separator('-'));
203
+ this.printer.println(e.details.location.path.value, e.details.location.line ? `:${e.details.location.line}` : '');
173
204
  this.printer.println();
174
- }
175
- artifactGeneratedEvents.forEach(artifactGenerated => {
176
- if (artifactGenerated.artifact instanceof model_1.AssertionReport) {
177
- const details = artifactGenerated.artifact.map((artifactContents) => this.theme.diff(artifactContents.expected, artifactContents.actual));
178
- this.printer.println();
179
- this.printer.println(details);
180
- this.printer.println();
181
- }
182
- if (artifactGenerated.artifact instanceof model_1.LogEntry) {
183
- const details = artifactGenerated.artifact.map((artifactContents) => artifactContents.data);
184
- if (artifactGenerated.name.value !== details) {
185
- this.printer.println(this.theme.log(artifactGenerated.name.value, ':'));
186
- }
187
- this.printer.println(details);
188
- this.printer.println();
205
+ this.printer.println(this.theme.heading(category, e.details.name.value));
206
+ this.printer.println();
207
+ })
208
+ .when(events_1.TaskStarts, (e) => {
209
+ var _a;
210
+ this.printer.indent();
211
+ if (!((_a = this.firstErrors.get(e.sceneId.value)) === null || _a === void 0 ? void 0 : _a.alreadyRecorded())) {
212
+ this.printer.println(e.details.name.value);
189
213
  }
190
- });
191
- this.printer.outdent();
192
- this.printer.outdent();
193
- })
194
- .when(events_1.ActivityRelatedArtifactGenerated, (e) => {
195
- this.artifacts.record(e);
196
- })
197
- .when(events_1.TaskFinished, (e) => {
198
- this.printer.outdent();
199
- if (e.outcome instanceof model_1.ProblemIndication) {
214
+ })
215
+ .when(events_1.InteractionStarts, (e) => {
216
+ this.startTimes.recordStartOf(e);
217
+ })
218
+ .when(events_1.InteractionFinished, (e) => {
219
+ var _a;
200
220
  this.printer.indent();
221
+ this.printer.println(this.formattedOutcome(e));
201
222
  this.printer.indent();
202
- if (!this.firstError.alreadyRecorded()) {
203
- this.printer.println(this.theme.outcome(e.outcome, this.iconFrom(e.outcome), `${e.outcome.error}`));
223
+ if (e.outcome instanceof model_1.ProblemIndication) {
224
+ (_a = this.firstErrors.get(e.sceneId.value)) === null || _a === void 0 ? void 0 : _a.recordIfNeeded(e.outcome.error);
225
+ if (!(e.outcome.error instanceof core_1.AssertionError)) {
226
+ this.printer.println(this.theme.outcome(e.outcome, `${e.outcome.error}`));
227
+ }
204
228
  }
229
+ const artifactGeneratedEvents = this.artifacts.recordedFor(e.activityId);
230
+ if (artifactGeneratedEvents.some(a => a instanceof model_1.LogEntry)) {
231
+ this.printer.println();
232
+ }
233
+ artifactGeneratedEvents.forEach(artifactGenerated => {
234
+ if (artifactGenerated.artifact instanceof model_1.LogEntry) {
235
+ const details = artifactGenerated.artifact.map((artifactContents) => artifactContents.data);
236
+ if (artifactGenerated.name.value !== details) {
237
+ this.printer.println(this.theme.log(artifactGenerated.name.value, ':'));
238
+ }
239
+ this.printer.println(details);
240
+ this.printer.println();
241
+ }
242
+ });
205
243
  this.printer.outdent();
206
244
  this.printer.outdent();
207
- this.firstError.recordIfNeeded(e.outcome.error);
208
- }
209
- else if (!(e.outcome instanceof model_1.ExecutionSuccessful)) {
210
- this.printer.indent();
211
- this.printer.println(this.iconFrom(e.outcome), e.details.name.value);
245
+ })
246
+ .when(events_1.ActivityRelatedArtifactGenerated, (e) => {
247
+ this.artifacts.record(e);
248
+ })
249
+ .when(events_1.TaskFinished, (e) => {
212
250
  this.printer.outdent();
213
- }
214
- })
215
- .when(events_1.SceneFinished, (e) => {
216
- var _a;
217
- this.summary.record(e.details, e.outcome, this.startTimes.eventDurationOf(e));
218
- this.printer.println();
219
- this.printer.println(this.theme.outcome(e.outcome, this.formattedOutcome(e, this.deCamelCased(e.outcome.constructor.name))));
220
- if (e.outcome instanceof model_1.ProblemIndication) {
221
- this.printer.println();
222
- this.printer.indent();
223
- if (e.outcome instanceof model_1.ImplementationPending) {
224
- this.printer.println(`${e.outcome.error.name}: ${e.outcome.error.message}`);
251
+ if (e.outcome instanceof model_1.ProblemIndication) {
252
+ this.printer.indent();
253
+ this.printer.indent();
254
+ if (!this.firstErrors.get(e.sceneId.value).alreadyRecorded()) {
255
+ this.printer.println(this.theme.outcome(e.outcome, this.iconFrom(e.outcome), `${e.outcome.error}`));
256
+ }
257
+ this.printer.outdent();
258
+ this.printer.outdent();
259
+ this.firstErrors.get(e.sceneId.value).recordIfNeeded(e.outcome.error);
225
260
  }
226
- else if ((_a = e.outcome.error) === null || _a === void 0 ? void 0 : _a.stack) {
227
- this.printer.println(e.outcome.error.stack);
261
+ else if (!(e.outcome instanceof model_1.ExecutionSuccessful)) {
262
+ this.printer.indent();
263
+ this.printer.println(this.iconFrom(e.outcome), e.details.name.value);
264
+ this.printer.outdent();
228
265
  }
229
- this.printer.outdent();
230
- }
231
- this.artifacts.clear();
232
- })
233
- .when(events_1.TestRunFinished, (_) => {
234
- this.printer.println(this.theme.separator('='));
235
- this.printer.print(this.summaryFormatter.format(this.summary.aggregated()));
236
- this.printer.println(this.theme.separator('='));
237
- })
238
- .else((_) => {
239
- return void 0;
240
- });
266
+ })
267
+ .when(events_1.SceneFinished, (e) => {
268
+ var _a;
269
+ this.summary.record(e.details, e.outcome, this.startTimes.eventDurationOf(e));
270
+ this.printer.println();
271
+ this.printer.println(this.theme.outcome(e.outcome, this.formattedOutcome(e, this.deCamelCased(e.outcome.constructor.name))));
272
+ if (e.outcome instanceof model_1.ProblemIndication) {
273
+ this.printer.println();
274
+ this.printer.indent();
275
+ if (e.outcome instanceof model_1.ImplementationPending) {
276
+ this.printer.println(`${e.outcome.error.name}: ${e.outcome.error.message}`);
277
+ }
278
+ else if ((_a = e.outcome.error) === null || _a === void 0 ? void 0 : _a.stack) {
279
+ this.printer.println(e.outcome.error.stack);
280
+ }
281
+ this.printer.outdent();
282
+ }
283
+ this.artifacts.clear();
284
+ })
285
+ .else((_) => {
286
+ return void 0;
287
+ });
288
+ }
289
+ }
290
+ printSummary(summary) {
291
+ this.printer.println(this.theme.separator('='));
292
+ this.printer.print(this.summaryFormatter.format(summary.aggregated()));
293
+ this.printer.println(this.theme.separator('='));
294
+ }
295
+ isSceneSpecific(event) {
296
+ return Object.prototype.hasOwnProperty.call(event, 'sceneId');
241
297
  }
242
298
  formattedOutcome(event, description = event.details.name.value) {
243
299
  const icon = `${this.iconFrom(event.outcome)}`, message = `${description} (${this.startTimes.eventDurationOf(event)})`;
@@ -282,10 +338,16 @@ class StartTimes {
282
338
  this.times = {};
283
339
  }
284
340
  recordStartOf(event) {
285
- this.times[event.details.toString()] = event.timestamp;
341
+ this.times[this.keyFor(event)] = event.timestamp;
286
342
  }
287
343
  eventDurationOf(event) {
288
- return event.timestamp.diff(this.times[event.details.toString()]);
344
+ if (!this.times[this.keyFor(event)]) {
345
+ throw new core_1.LogicError((0, core_1.d) `StartTime missing for event ${event}`);
346
+ }
347
+ return event.timestamp.diff(this.times[this.keyFor(event)]);
348
+ }
349
+ keyFor(event) {
350
+ return event.details.toString();
289
351
  }
290
352
  }
291
353
  class FirstError {
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleReporter.js","sourceRoot":"","sources":["../../../../src/stage/crew/console-reporter/ConsoleReporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConsoleReporter.js","sourceRoot":"","sources":["../../../../src/stage/crew/console-reporter/ConsoleReporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Used to configure the {@apilink ConsoleReporter}.
3
+ *
4
+ * @group Stage
5
+ */
6
+ export interface ConsoleReporterConfig {
7
+ /**
8
+ * Choose a colour theme optimised for light, dark, or monochromatic terminals.
9
+ * Or, use 'auto' to automatically pick the most suitable one.
10
+ */
11
+ theme: 'light' | 'dark' | 'mono' | 'auto';
12
+ }
13
+ //# sourceMappingURL=ConsoleReporterConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleReporterConfig.d.ts","sourceRoot":"","sources":["../../../../src/stage/crew/console-reporter/ConsoleReporterConfig.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;OAGG;IACH,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAC5C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ConsoleReporterConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleReporterConfig.js","sourceRoot":"","sources":["../../../../src/stage/crew/console-reporter/ConsoleReporterConfig.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { OutputStream } from '@serenity-js/core/lib/io';
1
+ import { OutputStream } from '@serenity-js/core/lib/adapter';
2
2
  /**
3
3
  * @desc
4
4
  * A simple abstraction around the standard output stream
@@ -9,9 +9,6 @@ import { OutputStream } from '@serenity-js/core/lib/io';
9
9
  export declare class Printer {
10
10
  private readonly stdout;
11
11
  private indentation;
12
- /**
13
- * @param {@serenity-js/core/lib/io~OutputStream} stdout
14
- */
15
12
  constructor(stdout?: OutputStream);
16
13
  /**
17
14
  * @desc
@@ -50,3 +47,4 @@ export declare class Printer {
50
47
  */
51
48
  outdent(): void;
52
49
  }
50
+ //# sourceMappingURL=Printer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Printer.d.ts","sourceRoot":"","sources":["../../../../src/stage/crew/console-reporter/Printer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D;;;;;;GAMG;AACH,qBAAa,OAAO;IAGJ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,WAAW,CAAsB;gBAEZ,MAAM,GAAE,YAA6B;IAGlE;;;;;;;;;;OAUG;IACH,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI7B;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAM3B;;;;;OAKG;IACH,MAAM,IAAI,IAAI;IAId;;;;;OAKG;IACH,OAAO,IAAI,IAAI;CAGlB"}
@@ -9,9 +9,6 @@ exports.Printer = void 0;
9
9
  * @public
10
10
  */
11
11
  class Printer {
12
- /**
13
- * @param {@serenity-js/core/lib/io~OutputStream} stdout
14
- */
15
12
  constructor(stdout = process.stdout) {
16
13
  this.stdout = stdout;
17
14
  this.indentation = new Indentation(2);
@@ -1 +1 @@
1
- {"version":3,"file":"Printer.js","sourceRoot":"","sources":["../../../../src/stage/crew/console-reporter/Printer.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,MAAa,OAAO;IAGhB;;OAEG;IACH,YAA6B,SAAuB,OAAO,CAAC,MAAM;QAArC,WAAM,GAAN,MAAM,CAA+B;QAL1D,gBAAW,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAMzC,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,GAAG,IAAW;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,IAAW;QAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAE,EAAE,CAAC,CAC9D,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACH,MAAM;QACF,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACH,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;CACJ;AA1DD,0BA0DC;AAED;;GAEG;AACH,MAAM,WAAW;IAGb,YAA6B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QAFjC,YAAO,GAAG,CAAC,CAAC;IAGpB,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;SAC7B;IACL,CAAC;IAED,QAAQ,CAAC,GAAG,SAAmB;QAC3B,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;aACpB,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;YACb,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;YACjC,CAAC,CAAC,EAAE,CACP;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;CACJ"}
1
+ {"version":3,"file":"Printer.js","sourceRoot":"","sources":["../../../../src/stage/crew/console-reporter/Printer.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,MAAa,OAAO;IAGhB,YAA6B,SAAuB,OAAO,CAAC,MAAM;QAArC,WAAM,GAAN,MAAM,CAA+B;QAF1D,gBAAW,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAGzC,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,GAAG,IAAW;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,IAAW;QAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAE,EAAE,CAAC,CAC9D,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACH,MAAM;QACF,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACH,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;CACJ;AAvDD,0BAuDC;AAED;;GAEG;AACH,MAAM,WAAW;IAGb,YAA6B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QAFjC,YAAO,GAAG,CAAC,CAAC;IAGpB,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;SAC7B;IACL,CAAC;IAED,QAAQ,CAAC,GAAG,SAAmB;QAC3B,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;aACpB,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;YACb,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;YACjC,CAAC,CAAC,EAAE,CACP;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;CACJ"}
@@ -1,12 +1,16 @@
1
- import { Duration } from '@serenity-js/core';
1
+ import { Duration, Timestamp } from '@serenity-js/core';
2
2
  import { Outcome, ScenarioDetails } from '@serenity-js/core/lib/model';
3
3
  /**
4
4
  * @package
5
5
  */
6
6
  export declare class Summary {
7
7
  private readonly records;
8
+ private testRunStartedAt;
9
+ private testRunFinishedAt;
8
10
  record(details: ScenarioDetails, outcome: Outcome, duration: Duration): void;
9
11
  aggregated(): AggregatedCategories;
12
+ recordTestRunStartedAt(timestamp: Timestamp): void;
13
+ recordTestRunFinishedAt(timestamp: Timestamp): void;
10
14
  }
11
15
  /**
12
16
  * @package
@@ -16,6 +20,7 @@ export interface AggregatedCategories {
16
20
  [categoryName: string]: AggregatedCategory;
17
21
  };
18
22
  totalTime: Duration;
23
+ realTime: Duration;
19
24
  numberOfScenarios: number;
20
25
  }
21
26
  /**
@@ -31,3 +36,4 @@ export interface AggregatedCategory {
31
36
  };
32
37
  totalTime: Duration;
33
38
  }
39
+ //# sourceMappingURL=Summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Summary.d.ts","sourceRoot":"","sources":["../../../../src/stage/crew/console-reporter/Summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAQH,OAAO,EACP,eAAe,EAClB,MAAM,6BAA6B,CAAC;AAErC;;GAEG;AACH,qBAAa,OAAO;IAChB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAE/C,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,iBAAiB,CAA8B;IAEvD,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAI5E,UAAU,IAAI,oBAAoB;IAmClC,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIlD,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;CAGtD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE;QAAC,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAC,CAAC;IACzD,SAAS,EAAE,QAAQ,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QAAC,CAAC,WAAW,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAC,CAAC;IACnE,SAAS,EAAE,QAAQ,CAAC;CACvB"}