@serenity-js/mocha 3.15.1 → 3.16.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.16.0](https://github.com/serenity-js/serenity-js/compare/v3.15.1...v3.16.0) (2024-02-01)
7
+
8
+
9
+ ### Features
10
+
11
+ * **mocha:** support for nested requirements reporting ([f8e70ce](https://github.com/serenity-js/serenity-js/commit/f8e70ce8a317ab6e8bdf4d058110f110b4c8deda))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [3.15.1](https://github.com/serenity-js/serenity-js/compare/v3.15.0...v3.15.1) (2024-01-19)
7
18
 
8
19
  **Note:** Version bump only for package @serenity-js/mocha
package/README.md CHANGED
@@ -117,13 +117,12 @@ mocha --reporter=@serenity-js/mocha \
117
117
 
118
118
  #### Using Mocha configuration file
119
119
 
120
- Please note that you can use [Mocha configuration file](https://mochajs.org/#configuring-mocha-nodejs)
120
+ Please note that you can use `.mocharc.yml` [configuration file](https://mochajs.org/#configuring-mocha-nodejs)
121
121
  to simplify your command line execution.
122
122
 
123
123
  For example:
124
124
 
125
- ```yaml
126
- # .mocharc.yml
125
+ ```yaml title=".mocharc.yml"
127
126
  reporter: '@serenity-js/mocha'
128
127
  require:
129
128
  - ts-node/register
@@ -134,6 +133,14 @@ v8-stack-trace-limit: 100
134
133
  # ...other config
135
134
  ```
136
135
 
136
+ #### Configuring a custom requirements hierarchy root
137
+
138
+ ```yaml title=".mocharc.yml"
139
+ reporter: '@serenity-js/mocha'
140
+ reporter-options: # Note: array, not an object
141
+ - 'specDirectory=e2e' # Configure custom requirements hierarchy root, such as "e2e"
142
+ ```
143
+
137
144
  ### Using Serenity/JS Mocha with Protractor
138
145
 
139
146
  Configure your Protractor installation as per instructions in [`@serenity-js/protractor`](https://serenity-js.org/api/protractor/) module.
@@ -154,7 +161,12 @@ exports.config = {
154
161
  },
155
162
 
156
163
  mochaOpts: {
157
- // Mocha-specific configuration
164
+ // Custom requirements hierarchy root, optional
165
+ reporterOptions: [
166
+ 'specDirectory=e2e'
167
+ ],
168
+
169
+ // ... other Mocha-specific configuration
158
170
  },
159
171
 
160
172
  // ... other Protractor-specific configuration
@@ -184,7 +196,12 @@ export const config = {
184
196
  },
185
197
 
186
198
  mochaOpts: {
187
- // Mocha-specific configuration
199
+ // Custom requirements hierarchy root, optional
200
+ reporterOptions: [
201
+ 'specDirectory=e2e'
202
+ ],
203
+
204
+ // ... other Mocha-specific configuration
188
205
  },
189
206
 
190
207
  // ... other Protractor-specific configuration
@@ -1,4 +1,5 @@
1
1
  import type { Serenity } from '@serenity-js/core';
2
+ import type { RequirementsHierarchy } from '@serenity-js/core/lib/io';
2
3
  import type { MochaOptions } from 'mocha';
3
4
  import { reporters, Runner } from 'mocha';
4
5
  /**
@@ -6,6 +7,7 @@ import { reporters, Runner } from 'mocha';
6
7
  */
7
8
  export declare class SerenityReporterForMocha extends reporters.Base {
8
9
  private readonly serenity;
10
+ private readonly requirementsHierarchy;
9
11
  private readonly testMapper;
10
12
  private readonly outcomeMapper;
11
13
  private readonly recorder;
@@ -16,7 +18,7 @@ export declare class SerenityReporterForMocha extends reporters.Base {
16
18
  * @param {mocha~Runner} runner
17
19
  * @param {mocha~MochaOptions} options
18
20
  */
19
- constructor(serenity: Serenity, runner: Runner, options?: MochaOptions);
21
+ constructor(serenity: Serenity, requirementsHierarchy: RequirementsHierarchy, runner: Runner, options?: MochaOptions);
20
22
  done(failures: number, callback?: (failures: number) => void): void;
21
23
  private announceSuiteStartsFor;
22
24
  private announceSuiteFinishedFor;
@@ -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;AA2BlD,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;IAd7B,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,EACnC,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;IAY9B,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,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"}
@@ -12,6 +12,7 @@ const OutcomeRecorder_1 = require("./OutcomeRecorder");
12
12
  */
13
13
  class SerenityReporterForMocha extends mocha_1.reporters.Base {
14
14
  serenity;
15
+ requirementsHierarchy;
15
16
  testMapper;
16
17
  outcomeMapper = new mappers_1.MochaOutcomeMapper();
17
18
  recorder = new OutcomeRecorder_1.OutcomeRecorder();
@@ -22,9 +23,10 @@ class SerenityReporterForMocha extends mocha_1.reporters.Base {
22
23
  * @param {mocha~Runner} runner
23
24
  * @param {mocha~MochaOptions} options
24
25
  */
25
- constructor(serenity, runner, options) {
26
+ constructor(serenity, requirementsHierarchy, runner, options) {
26
27
  super(runner, options);
27
28
  this.serenity = serenity;
29
+ this.requirementsHierarchy = requirementsHierarchy;
28
30
  this.testMapper = new mappers_1.MochaTestMapper(this.serenity.cwd());
29
31
  runner.on(mocha_1.Runner.constants.EVENT_RUN_BEGIN, () => {
30
32
  this.emit(new events_1.TestRunStarts(this.serenity.currentTime()));
@@ -108,7 +110,8 @@ class SerenityReporterForMocha extends mocha_1.reporters.Base {
108
110
  announceSceneStartsFor(test) {
109
111
  this.currentSceneId = this.serenity.assignNewSceneId();
110
112
  const scenario = this.testMapper.detailsOf(test);
111
- this.emit(new events_1.SceneStarts(this.currentSceneId, scenario, this.serenity.currentTime()), new events_1.SceneTagged(this.currentSceneId, new model_1.FeatureTag(scenario.category.value), this.serenity.currentTime()), new events_1.TestRunnerDetected(this.currentSceneId, new model_1.Name('Mocha'), this.serenity.currentTime()));
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()));
112
115
  }
113
116
  announceSceneFinishedFor(test, runnable) {
114
117
  const scenario = this.testMapper.detailsOf(test), outcome = this.recorder.outcomeOf(test) || this.outcomeMapper.outcomeOf(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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE;;;GAGG;AACH,iBAAS,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,wBAAwB,CAEnF;AAED,SAAS,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE;;;GAGG;AACH,iBAAS,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,wBAAwB,CAQnF;AAED,SAAS,SAAS,CAAC"}
package/lib/index.js CHANGED
@@ -1,12 +1,15 @@
1
1
  "use strict";
2
2
  const core_1 = require("@serenity-js/core");
3
+ const io_1 = require("@serenity-js/core/lib/io");
3
4
  const SerenityReporterForMocha_1 = require("./SerenityReporterForMocha");
4
5
  /**
5
6
  * Registers a Mocha reporter that emits {@apilink DomainEvent|Serenity/JS domain events}
6
7
  * and informs Serenity/JS when a test scenario starts, finishes, and with what result.
7
8
  */
8
9
  function bootstrap(runner, options) {
9
- return new SerenityReporterForMocha_1.SerenityReporterForMocha(core_1.serenity, runner, options);
10
+ const cwd = io_1.Path.from(process.cwd());
11
+ const requirementsHierarchy = new io_1.RequirementsHierarchy(new io_1.FileSystem(cwd), options?.reporterOptions?.specDirectory && cwd.resolve(io_1.Path.from(options?.reporterOptions?.specDirectory)));
12
+ return new SerenityReporterForMocha_1.SerenityReporterForMocha(core_1.serenity, requirementsHierarchy, runner, options);
10
13
  }
11
14
  module.exports = bootstrap;
12
15
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4CAA6C;AAG7C,yEAAsE;AAEtE;;;GAGG;AACH,SAAS,SAAS,CAAC,MAAc,EAAE,OAAsB;IACrD,OAAO,IAAI,mDAAwB,CAAC,eAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,iBAAS,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4CAA6C;AAC7C,iDAAmF;AAGnF,yEAAsE;AAEtE;;;GAGG;AACH,SAAS,SAAS,CAAC,MAAc,EAAE,OAAsB;IACrD,MAAM,GAAG,GAAG,SAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACrC,MAAM,qBAAqB,GAAG,IAAI,0BAAqB,CACnD,IAAI,eAAU,CAAC,GAAG,CAAC,EACnB,OAAO,EAAE,eAAe,EAAE,aAAa,IAAI,GAAG,CAAC,OAAO,CAAC,SAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC,CAC7G,CAAC;IAEF,OAAO,IAAI,mDAAwB,CAAC,eAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1F,CAAC;AAED,iBAAS,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/mocha",
3
- "version": "3.15.1",
3
+ "version": "3.16.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.15.1"
47
+ "@serenity-js/core": "3.16.0"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "mocha": "^10.2.0"
@@ -59,5 +59,5 @@
59
59
  "ts-node": "10.9.2",
60
60
  "typescript": "5.1.6"
61
61
  },
62
- "gitHead": "4df79de3820acd9fb18d76843feb0468c55c8e7f"
62
+ "gitHead": "242771e55bd6becc5baeaac03edf945e4cdaf7a4"
63
63
  }
@@ -1,6 +1,5 @@
1
1
  import type { Serenity } from '@serenity-js/core';
2
- import type {
3
- DomainEvent} from '@serenity-js/core/lib/events';
2
+ import type { DomainEvent } from '@serenity-js/core/lib/events';
4
3
  import {
5
4
  RetryableSceneDetected,
6
5
  SceneFinished,
@@ -14,17 +13,9 @@ import {
14
13
  TestSuiteFinished,
15
14
  TestSuiteStarts,
16
15
  } from '@serenity-js/core/lib/events';
16
+ import type { RequirementsHierarchy } from '@serenity-js/core/lib/io';
17
17
  import { FileSystemLocation, Path } from '@serenity-js/core/lib/io';
18
- import {
19
- ArbitraryTag,
20
- CorrelationId,
21
- ExecutionFailedWithError,
22
- ExecutionRetriedTag,
23
- ExecutionSuccessful,
24
- FeatureTag,
25
- Name,
26
- TestSuiteDetails
27
- } from '@serenity-js/core/lib/model';
18
+ import { ArbitraryTag, CorrelationId, ExecutionFailedWithError, ExecutionRetriedTag, ExecutionSuccessful, Name, TestSuiteDetails } from '@serenity-js/core/lib/model';
28
19
  import type { MochaOptions, Runnable, Suite, Test } from 'mocha';
29
20
  import { reporters, Runner } from 'mocha';
30
21
 
@@ -51,6 +42,7 @@ export class SerenityReporterForMocha extends reporters.Base {
51
42
  */
52
43
  constructor(
53
44
  private readonly serenity: Serenity,
45
+ private readonly requirementsHierarchy: RequirementsHierarchy,
54
46
  runner: Runner,
55
47
  options?: MochaOptions,
56
48
  ) {
@@ -210,7 +202,8 @@ export class SerenityReporterForMocha extends reporters.Base {
210
202
 
211
203
  this.emit(
212
204
  new SceneStarts(this.currentSceneId, scenario, this.serenity.currentTime()),
213
- new SceneTagged(this.currentSceneId, new FeatureTag(scenario.category.value), this.serenity.currentTime()),
205
+ ...this.requirementsHierarchy.requirementTagsFor(scenario.location.path, scenario.category.value)
206
+ .map(tag => new SceneTagged(this.currentSceneId, tag, this.serenity.currentTime())),
214
207
  new TestRunnerDetected(this.currentSceneId, new Name('Mocha'), this.serenity.currentTime()),
215
208
  );
216
209
  }
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { serenity } from '@serenity-js/core';
2
+ import { FileSystem, Path, RequirementsHierarchy } from '@serenity-js/core/lib/io';
2
3
  import type { MochaOptions, Runner } from 'mocha';
3
4
 
4
5
  import { SerenityReporterForMocha } from './SerenityReporterForMocha';
@@ -8,7 +9,13 @@ import { SerenityReporterForMocha } from './SerenityReporterForMocha';
8
9
  * and informs Serenity/JS when a test scenario starts, finishes, and with what result.
9
10
  */
10
11
  function bootstrap(runner: Runner, options?: MochaOptions): SerenityReporterForMocha {
11
- return new SerenityReporterForMocha(serenity, runner, options);
12
+ const cwd = Path.from(process.cwd());
13
+ const requirementsHierarchy = new RequirementsHierarchy(
14
+ new FileSystem(cwd),
15
+ options?.reporterOptions?.specDirectory && cwd.resolve(Path.from(options?.reporterOptions?.specDirectory)),
16
+ );
17
+
18
+ return new SerenityReporterForMocha(serenity, requirementsHierarchy, runner, options);
12
19
  }
13
20
 
14
21
  export = bootstrap;