@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 +11 -0
- package/README.md +22 -5
- package/lib/SerenityReporterForMocha.d.ts +3 -1
- package/lib/SerenityReporterForMocha.d.ts.map +1 -1
- package/lib/SerenityReporterForMocha.js +5 -2
- package/lib/SerenityReporterForMocha.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -1
- package/lib/index.js.map +1 -1
- package/package.json +3 -3
- package/src/SerenityReporterForMocha.ts +6 -13
- package/src/index.ts +8 -1
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 [
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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;
|
|
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()),
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"SerenityReporterForMocha.js","sourceRoot":"","sources":["../src/SerenityReporterForMocha.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
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;
|
|
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.
|
|
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.
|
|
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": "
|
|
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
|
-
|
|
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
|
-
|
|
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;
|