@serenity-js/mocha 3.20.0 → 3.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.21.0](https://github.com/serenity-js/serenity-js/compare/v3.20.0...v3.21.0) (2024-03-04)
7
+
8
+
9
+ ### Features
10
+
11
+ * **mocha:** support for custom tags ([b86f2bb](https://github.com/serenity-js/serenity-js/commit/b86f2bb98305ba2491e7a2728aa38431ea8f716c))
12
+
13
+
14
+
15
+
16
+
6
17
  # [3.20.0](https://github.com/serenity-js/serenity-js/compare/v3.19.0...v3.20.0) (2024-03-02)
7
18
 
8
19
  **Note:** Version bump only for package @serenity-js/mocha
@@ -1,5 +1,5 @@
1
1
  import type { Serenity } from '@serenity-js/core';
2
- import type { RequirementsHierarchy } from '@serenity-js/core/lib/io';
2
+ import { type RequirementsHierarchy } from '@serenity-js/core/lib/io';
3
3
  import type { MochaOptions } from 'mocha';
4
4
  import { reporters, Runner } from 'mocha';
5
5
  /**
@@ -15,6 +15,7 @@ export declare class SerenityReporterForMocha extends reporters.Base {
15
15
  private currentSceneId;
16
16
  /**
17
17
  * @param {Serenity} serenity
18
+ * @param requirementsHierarchy
18
19
  * @param {mocha~Runner} runner
19
20
  * @param {mocha~MochaOptions} options
20
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SerenityReporterForMocha.d.ts","sourceRoot":"","sources":["../src/SerenityReporterForMocha.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAelD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGtE,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAK1C;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,SAAS,CAAC,IAAI;IAgBpD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IAf1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;IAE9E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IAEnE,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,cAAc,CAA4B;IAElD;;;;OAIG;gBAEkB,QAAQ,EAAE,QAAQ,EAClB,qBAAqB,EAAE,qBAAqB,EAC7D,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY;IA4FnB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAkB1E,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,wBAAwB;IAyBhC,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,wBAAwB;IAsChC,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,IAAI;CAGf"}
1
+ {"version":3,"file":"SerenityReporterForMocha.d.ts","sourceRoot":"","sources":["../src/SerenityReporterForMocha.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAelD,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAUhG,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAK1C;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,SAAS,CAAC,IAAI;IAiBpD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IAhB1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;IAE9E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IAEnE,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,cAAc,CAA4B;IAElD;;;;;OAKG;gBAEkB,QAAQ,EAAE,QAAQ,EAClB,qBAAqB,EAAE,qBAAqB,EAC7D,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY;IA4FnB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAkB1E,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,wBAAwB;IAyBhC,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,wBAAwB;IAsChC,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,IAAI;CAGf"}
@@ -20,6 +20,7 @@ class SerenityReporterForMocha extends mocha_1.reporters.Base {
20
20
  currentSceneId = undefined;
21
21
  /**
22
22
  * @param {Serenity} serenity
23
+ * @param requirementsHierarchy
23
24
  * @param {mocha~Runner} runner
24
25
  * @param {mocha~MochaOptions} options
25
26
  */
@@ -109,19 +110,19 @@ class SerenityReporterForMocha extends mocha_1.reporters.Base {
109
110
  }
110
111
  announceSceneStartsFor(test) {
111
112
  this.currentSceneId = this.serenity.assignNewSceneId();
112
- const scenario = this.testMapper.detailsOf(test);
113
- this.emit(new events_1.SceneStarts(this.currentSceneId, scenario, this.serenity.currentTime()), ...this.requirementsHierarchy.requirementTagsFor(scenario.location.path, scenario.category.value)
114
- .map(tag => new events_1.SceneTagged(this.currentSceneId, tag, this.serenity.currentTime())), new events_1.TestRunnerDetected(this.currentSceneId, new model_1.Name('Mocha'), this.serenity.currentTime()));
113
+ const { scenarioDetails, scenarioTags } = this.testMapper.detailsOf(test);
114
+ this.emit(new events_1.SceneStarts(this.currentSceneId, scenarioDetails, this.serenity.currentTime()), ...this.requirementsHierarchy.requirementTagsFor(scenarioDetails.location.path, scenarioDetails.category.value)
115
+ .map(tag => new events_1.SceneTagged(this.currentSceneId, tag, this.serenity.currentTime())), new events_1.TestRunnerDetected(this.currentSceneId, new model_1.Name('Mocha'), this.serenity.currentTime()), ...scenarioTags.map(tag => new events_1.SceneTagged(this.currentSceneId, tag, this.serenity.currentTime())));
115
116
  }
116
117
  announceSceneFinishedFor(test, runnable) {
117
- const scenario = this.testMapper.detailsOf(test), outcome = this.recorder.outcomeOf(test) || this.outcomeMapper.outcomeOf(test);
118
+ const { scenarioDetails } = this.testMapper.detailsOf(test), outcome = this.recorder.outcomeOf(test) || this.outcomeMapper.outcomeOf(test);
118
119
  this.emit(new events_1.SceneFinishes(this.currentSceneId, this.serenity.currentTime()));
119
120
  return this.serenity.waitForNextCue()
120
121
  .then(() => {
121
- this.emit(new events_1.SceneFinished(this.currentSceneId, scenario, outcome, this.serenity.currentTime()));
122
+ this.emit(new events_1.SceneFinished(this.currentSceneId, scenarioDetails, outcome, this.serenity.currentTime()));
122
123
  this.recorder.erase(test);
123
124
  }, error => {
124
- this.emit(new events_1.SceneFinished(this.currentSceneId, scenario, new model_1.ExecutionFailedWithError(error), this.serenity.currentTime()));
125
+ this.emit(new events_1.SceneFinished(this.currentSceneId, scenarioDetails, new model_1.ExecutionFailedWithError(error), this.serenity.currentTime()));
125
126
  this.recorder.erase(test);
126
127
  // re-throwing an error here would cause Mocha to halt test suite, which we don't want to do
127
128
  // https://github.com/mochajs/mocha/issues/1635
@@ -129,9 +130,9 @@ class SerenityReporterForMocha extends mocha_1.reporters.Base {
129
130
  });
130
131
  }
131
132
  announceSceneSkippedFor(test) {
132
- const scenario = this.testMapper.detailsOf(test), outcome = this.outcomeMapper.outcomeOf(test);
133
+ const { scenarioDetails } = this.testMapper.detailsOf(test), outcome = this.outcomeMapper.outcomeOf(test);
133
134
  this.announceSceneStartsFor(test);
134
- this.emit(new events_1.SceneFinishes(this.currentSceneId, this.serenity.currentTime()), new events_1.SceneFinished(this.currentSceneId, scenario, outcome, this.serenity.currentTime()));
135
+ this.emit(new events_1.SceneFinishes(this.currentSceneId, this.serenity.currentTime()), new events_1.SceneFinished(this.currentSceneId, scenarioDetails, outcome, this.serenity.currentTime()));
135
136
  }
136
137
  announceRetryIfNeeded(test) {
137
138
  if (!this.isRetriable(test)) {
@@ -1 +1 @@
1
- {"version":3,"file":"SerenityReporterForMocha.js","sourceRoot":"","sources":["../src/SerenityReporterForMocha.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SerenityReporterForMocha.js","sourceRoot":"","sources":["../src/SerenityReporterForMocha.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Path } from '@serenity-js/core/lib/io';
2
- import { ScenarioDetails } from '@serenity-js/core/lib/model';
2
+ import { ScenarioDetails, type Tag } from '@serenity-js/core/lib/model';
3
3
  import type { Suite, Test } from 'mocha';
4
4
  /**
5
5
  * @package
@@ -7,7 +7,10 @@ import type { Suite, Test } from 'mocha';
7
7
  export declare class MochaTestMapper {
8
8
  private readonly cwd;
9
9
  constructor(cwd: Path);
10
- detailsOf(test: Test): ScenarioDetails;
10
+ detailsOf(test: Test): {
11
+ scenarioDetails: ScenarioDetails;
12
+ scenarioTags: Tag[];
13
+ };
11
14
  featureNameFor(scenario: Test | Suite): string;
12
15
  private fullNameOf;
13
16
  private nameOf;
@@ -1 +1 @@
1
- {"version":3,"file":"MochaTestMapper.d.ts","sourceRoot":"","sources":["../../src/mappers/MochaTestMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAkB,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEzC;;GAEG;AACH,qBAAa,eAAe;IACZ,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,IAAI;IAG/B,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,eAAe;IA8BtC,cAAc,CAAC,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM;IAQrD,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,MAAM;CAKjB"}
1
+ {"version":3,"file":"MochaTestMapper.d.ts","sourceRoot":"","sources":["../../src/mappers/MochaTestMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAkB,eAAe,EAAE,KAAK,GAAG,EAAQ,MAAM,6BAA6B,CAAC;AAC9F,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEzC;;GAEG;AACH,qBAAa,eAAe;IACZ,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,IAAI;IAG/B,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,eAAe,EAAE,eAAe,CAAC;QAAC,YAAY,EAAE,GAAG,EAAE,CAAA;KAAE;IAmChF,cAAc,CAAC,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM;IAQrD,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,MAAM;CAKjB"}
@@ -27,10 +27,14 @@ class MochaTestMapper {
27
27
  const path = new io_1.Path(fileOf(test));
28
28
  const scenarioName = this.nameOf(test);
29
29
  const title = this.fullNameOf(test);
30
+ const name = scenarioName || title;
30
31
  const featureName = scenarioName
31
32
  ? this.featureNameFor(test)
32
33
  : this.cwd.relative(path).value;
33
- return new model_1.ScenarioDetails(new model_1.Name(scenarioName || title), new model_1.Category(featureName), new io_1.FileSystemLocation(path));
34
+ return {
35
+ scenarioDetails: new model_1.ScenarioDetails(new model_1.Name(model_1.Tags.stripFrom(name)), new model_1.Category(model_1.Tags.stripFrom(featureName)), new io_1.FileSystemLocation(path)),
36
+ scenarioTags: model_1.Tags.from(`${featureName} ${name}`),
37
+ };
34
38
  }
35
39
  featureNameFor(scenario) {
36
40
  const parentTitle = scenario?.parent?.title;
@@ -1 +1 @@
1
- {"version":3,"file":"MochaTestMapper.js","sourceRoot":"","sources":["../../src/mappers/MochaTestMapper.ts"],"names":[],"mappings":";;;AAAA,iDAAoE;AACpE,uDAA8E;AAG9E;;GAEG;AACH,MAAa,eAAe;IACK;IAA7B,YAA6B,GAAS;QAAT,QAAG,GAAH,GAAG,CAAM;IACtC,CAAC;IAEM,SAAS,CAAC,IAAU;QAEvB,SAAS,MAAM,CAAC,CAAC;YACb,QAAQ,IAAI,EAAE;gBACV,KAAK,CAAC,CAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI;oBAC9D,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;gBAClC,KAAK,CAAC,CAAE,CAAC,CAAC,IAAI;oBACV,OAAO,CAAC,CAAC,IAAI,CAAC;gBAClB,KAAK,CAAC,CAAE,CAAC,CAAC,MAAM;oBACZ,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5B;oBACI,MAAM,IAAI,KAAK,CAAC,8BAA+B,CAAE,EAAE,CAAC,CAAC;aAC5D;QACL,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,SAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEpC,MAAM,WAAW,GAAG,YAAY;YAC5B,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC3B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;QAEpC,OAAO,IAAI,uBAAe,CACtB,IAAI,YAAI,CAAC,YAAY,IAAI,KAAK,CAAC,EAC/B,IAAI,gBAAQ,CAAC,WAAW,CAAC,EACzB,IAAI,uBAAkB,CAAC,IAAI,CAAC,CAC/B,CAAC;IACN,CAAC;IAEM,cAAc,CAAC,QAAsB;QACxC,MAAM,WAAW,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;QAE5C,OAAO,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;YACzD,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IACzB,CAAC;IAEO,UAAU,CAAC,QAAsB;QACrC,OAAO,QAAQ,CAAC,MAAM;YAClB,CAAC,CAAC,GAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAE,IAAK,QAAQ,CAAC,KAAM,EAAE,CAAC,IAAI,EAAE;YACpE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IACzB,CAAC;IAEO,MAAM,CAAC,QAAsB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;aAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;aAC3C,IAAI,EAAE,CAAC;IAChB,CAAC;CACJ;AArDD,0CAqDC"}
1
+ {"version":3,"file":"MochaTestMapper.js","sourceRoot":"","sources":["../../src/mappers/MochaTestMapper.ts"],"names":[],"mappings":";;;AAAA,iDAAoE;AACpE,uDAA8F;AAG9F;;GAEG;AACH,MAAa,eAAe;IACK;IAA7B,YAA6B,GAAS;QAAT,QAAG,GAAH,GAAG,CAAM;IACtC,CAAC;IAEM,SAAS,CAAC,IAAU;QAEvB,SAAS,MAAM,CAAC,CAAC;YACb,QAAQ,IAAI,EAAE;gBACV,KAAK,CAAC,CAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI;oBAC9D,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;gBAClC,KAAK,CAAC,CAAE,CAAC,CAAC,IAAI;oBACV,OAAO,CAAC,CAAC,IAAI,CAAC;gBAClB,KAAK,CAAC,CAAE,CAAC,CAAC,MAAM;oBACZ,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5B;oBACI,MAAM,IAAI,KAAK,CAAC,8BAA+B,CAAE,EAAE,CAAC,CAAC;aAC5D;QACL,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,SAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEpC,MAAM,IAAI,GAAG,YAAY,IAAI,KAAK,CAAC;QAEnC,MAAM,WAAW,GAAG,YAAY;YAC5B,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC3B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;QAEpC,OAAO;YACH,eAAe,EAAE,IAAI,uBAAe,CAChC,IAAI,YAAI,CAAC,YAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAC9B,IAAI,gBAAQ,CAAC,YAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EACzC,IAAI,uBAAkB,CAAC,IAAI,CAAC,CAC/B;YACD,YAAY,EAAE,YAAI,CAAC,IAAI,CAAC,GAAI,WAAY,IAAK,IAAK,EAAE,CAAC;SACxD,CAAC;IACN,CAAC;IAEM,cAAc,CAAC,QAAsB;QACxC,MAAM,WAAW,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;QAE5C,OAAO,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;YACzD,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IACzB,CAAC;IAEO,UAAU,CAAC,QAAsB;QACrC,OAAO,QAAQ,CAAC,MAAM;YAClB,CAAC,CAAC,GAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAE,IAAK,QAAQ,CAAC,KAAM,EAAE,CAAC,IAAI,EAAE;YACpE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IACzB,CAAC;IAEO,MAAM,CAAC,QAAsB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;aAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;aAC3C,IAAI,EAAE,CAAC;IAChB,CAAC;CACJ;AA1DD,0CA0DC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/mocha",
3
- "version": "3.20.0",
3
+ "version": "3.21.0",
4
4
  "description": "Serenity/JS adapter for Mocha",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -44,7 +44,7 @@
44
44
  "node": "^16.13 || ^18.12 || ^20"
45
45
  },
46
46
  "dependencies": {
47
- "@serenity-js/core": "3.20.0"
47
+ "@serenity-js/core": "3.21.0"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "mocha": "^10.3.0"
@@ -59,5 +59,5 @@
59
59
  "ts-node": "10.9.2",
60
60
  "typescript": "5.2.2"
61
61
  },
62
- "gitHead": "2089afc60adb2751416fa6d800d4e7af95a99f25"
62
+ "gitHead": "98621d99c073223dc40cc3dc836c4e2ee676aa9c"
63
63
  }
@@ -13,9 +13,16 @@ import {
13
13
  TestSuiteFinished,
14
14
  TestSuiteStarts,
15
15
  } from '@serenity-js/core/lib/events';
16
- import type { RequirementsHierarchy } from '@serenity-js/core/lib/io';
17
- import { FileSystemLocation, Path } from '@serenity-js/core/lib/io';
18
- import { ArbitraryTag, CorrelationId, ExecutionFailedWithError, ExecutionRetriedTag, ExecutionSuccessful, Name, TestSuiteDetails } from '@serenity-js/core/lib/model';
16
+ import { FileSystemLocation, Path, type RequirementsHierarchy } from '@serenity-js/core/lib/io';
17
+ import {
18
+ ArbitraryTag,
19
+ CorrelationId,
20
+ ExecutionFailedWithError,
21
+ ExecutionRetriedTag,
22
+ ExecutionSuccessful,
23
+ Name,
24
+ TestSuiteDetails
25
+ } from '@serenity-js/core/lib/model';
19
26
  import type { MochaOptions, Runnable, Suite, Test } from 'mocha';
20
27
  import { reporters, Runner } from 'mocha';
21
28
 
@@ -37,6 +44,7 @@ export class SerenityReporterForMocha extends reporters.Base {
37
44
 
38
45
  /**
39
46
  * @param {Serenity} serenity
47
+ * @param requirementsHierarchy
40
48
  * @param {mocha~Runner} runner
41
49
  * @param {mocha~MochaOptions} options
42
50
  */
@@ -198,19 +206,23 @@ export class SerenityReporterForMocha extends reporters.Base {
198
206
  private announceSceneStartsFor(test: Test): void {
199
207
  this.currentSceneId = this.serenity.assignNewSceneId()
200
208
 
201
- const scenario = this.testMapper.detailsOf(test);
209
+ const { scenarioDetails, scenarioTags } = this.testMapper.detailsOf(test);
202
210
 
203
211
  this.emit(
204
- new SceneStarts(this.currentSceneId, scenario, this.serenity.currentTime()),
205
- ...this.requirementsHierarchy.requirementTagsFor(scenario.location.path, scenario.category.value)
212
+ new SceneStarts(this.currentSceneId, scenarioDetails, this.serenity.currentTime()),
213
+
214
+ ... this.requirementsHierarchy.requirementTagsFor(scenarioDetails.location.path, scenarioDetails.category.value)
206
215
  .map(tag => new SceneTagged(this.currentSceneId, tag, this.serenity.currentTime())),
216
+
207
217
  new TestRunnerDetected(this.currentSceneId, new Name('Mocha'), this.serenity.currentTime()),
218
+
219
+ ... scenarioTags.map(tag => new SceneTagged(this.currentSceneId, tag, this.serenity.currentTime())),
208
220
  );
209
221
  }
210
222
 
211
223
  private announceSceneFinishedFor(test: Test, runnable: Runnable): Promise<void> {
212
224
  const
213
- scenario = this.testMapper.detailsOf(test),
225
+ { scenarioDetails } = this.testMapper.detailsOf(test),
214
226
  outcome = this.recorder.outcomeOf(test) || this.outcomeMapper.outcomeOf(test);
215
227
 
216
228
  this.emit(
@@ -224,7 +236,7 @@ export class SerenityReporterForMocha extends reporters.Base {
224
236
  .then(() => {
225
237
  this.emit(new SceneFinished(
226
238
  this.currentSceneId,
227
- scenario,
239
+ scenarioDetails,
228
240
  outcome,
229
241
  this.serenity.currentTime(),
230
242
  ));
@@ -233,7 +245,7 @@ export class SerenityReporterForMocha extends reporters.Base {
233
245
  }, error => {
234
246
  this.emit(new SceneFinished(
235
247
  this.currentSceneId,
236
- scenario,
248
+ scenarioDetails,
237
249
  new ExecutionFailedWithError(error),
238
250
  this.serenity.currentTime(),
239
251
  ));
@@ -248,7 +260,7 @@ export class SerenityReporterForMocha extends reporters.Base {
248
260
 
249
261
  private announceSceneSkippedFor(test: Test): void {
250
262
  const
251
- scenario = this.testMapper.detailsOf(test),
263
+ { scenarioDetails } = this.testMapper.detailsOf(test),
252
264
  outcome = this.outcomeMapper.outcomeOf(test);
253
265
 
254
266
  this.announceSceneStartsFor(test);
@@ -260,7 +272,7 @@ export class SerenityReporterForMocha extends reporters.Base {
260
272
  ),
261
273
  new SceneFinished(
262
274
  this.currentSceneId,
263
- scenario,
275
+ scenarioDetails,
264
276
  outcome,
265
277
  this.serenity.currentTime(),
266
278
  )
@@ -1,5 +1,5 @@
1
1
  import { FileSystemLocation, Path } from '@serenity-js/core/lib/io';
2
- import { Category, Name, ScenarioDetails } from '@serenity-js/core/lib/model';
2
+ import { Category, Name, ScenarioDetails, type Tag, Tags } from '@serenity-js/core/lib/model';
3
3
  import type { Suite, Test } from 'mocha';
4
4
 
5
5
  /**
@@ -9,7 +9,7 @@ export class MochaTestMapper {
9
9
  constructor(private readonly cwd: Path) {
10
10
  }
11
11
 
12
- public detailsOf(test: Test): ScenarioDetails {
12
+ public detailsOf(test: Test): { scenarioDetails: ScenarioDetails, scenarioTags: Tag[] } {
13
13
 
14
14
  function fileOf(t) {
15
15
  switch (true) {
@@ -28,15 +28,20 @@ export class MochaTestMapper {
28
28
  const scenarioName = this.nameOf(test);
29
29
  const title = this.fullNameOf(test);
30
30
 
31
+ const name = scenarioName || title;
32
+
31
33
  const featureName = scenarioName
32
34
  ? this.featureNameFor(test)
33
35
  : this.cwd.relative(path).value;
34
36
 
35
- return new ScenarioDetails(
36
- new Name(scenarioName || title),
37
- new Category(featureName),
38
- new FileSystemLocation(path),
39
- );
37
+ return {
38
+ scenarioDetails: new ScenarioDetails(
39
+ new Name(Tags.stripFrom(name)),
40
+ new Category(Tags.stripFrom(featureName)),
41
+ new FileSystemLocation(path),
42
+ ),
43
+ scenarioTags: Tags.from(`${ featureName } ${ name }`),
44
+ };
40
45
  }
41
46
 
42
47
  public featureNameFor(scenario: Test | Suite): string {