@serenity-js/serenity-bdd 3.31.4 → 3.31.6

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,31 @@
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.31.6](https://github.com/serenity-js/serenity-js/compare/v3.31.5...v3.31.6) (2025-01-16)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **serenity-bdd:** correctly escape HTML entities in activity descriptions ([386c8ae](https://github.com/serenity-js/serenity-js/commit/386c8aef1805d795c4bf2771f49c40c4c2e0c705)), closes [#2695](https://github.com/serenity-js/serenity-js/issues/2695)
12
+ * **serenity-bdd:** upgraded Serenity BDD CLI to 4.2.12 ([243729d](https://github.com/serenity-js/serenity-js/commit/243729d8b2eb03f24827a88818044efde58b43c8))
13
+
14
+
15
+
16
+
17
+
18
+ ## [3.31.5](https://github.com/serenity-js/serenity-js/compare/v3.31.4...v3.31.5) (2025-01-11)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **deps:** update dependency typescript to v5.7.3 ([cd87dd8](https://github.com/serenity-js/serenity-js/commit/cd87dd80ea55e73bac48afd9c670191a10dc97c4))
24
+ * **serenity-bdd:** corrected reporting of retried examples in Cucumber scenario outlines ([30c7f77](https://github.com/serenity-js/serenity-js/commit/30c7f772256b9a6bf764331ae03c0ac4b8a25c77)), closes [#2448](https://github.com/serenity-js/serenity-js/issues/2448) [#2676](https://github.com/serenity-js/serenity-js/issues/2676)
25
+ * **serenity-bdd:** upgraded Serenity BDD CLI to 4.2.11 ([30cd640](https://github.com/serenity-js/serenity-js/commit/30cd640d3e1ac8af41eee614a1eaf1abf7d5bd7b))
26
+
27
+
28
+
29
+
30
+
6
31
  ## [3.31.4](https://github.com/serenity-js/serenity-js/compare/v3.31.3...v3.31.4) (2025-01-01)
7
32
 
8
33
  **Note:** Version bump only for package @serenity-js/serenity-bdd
@@ -17,7 +17,7 @@ exports.defaults = void 0;
17
17
  * @public
18
18
  */
19
19
  exports.defaults = {
20
- artifact: 'net.serenity-bdd:serenity-cli:jar:4.1.20',
20
+ artifact: 'net.serenity-bdd:serenity-cli:jar:4.2.12',
21
21
  repository: 'https://repo1.maven.org/maven2/',
22
22
  cacheDir: 'node_modules/@serenity-js/serenity-bdd/cache',
23
23
  sourceDir: 'target/site/serenity',
@@ -1 +1 @@
1
- {"version":3,"file":"scenarioParameterResult.d.ts","sourceRoot":"","sources":["../../../../../../../src/stage/crew/serenity-bdd-reporter/processors/scene-sequence/transformations/scenarioParameterResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG5E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAEhF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,aAC9D,0BAA0B,KAAG,0BAA0B,CAY3E"}
1
+ {"version":3,"file":"scenarioParameterResult.d.ts","sourceRoot":"","sources":["../../../../../../../src/stage/crew/serenity-bdd-reporter/processors/scene-sequence/transformations/scenarioParameterResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG5E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAEhF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,aAC9D,0BAA0B,KAAG,0BAA0B,CAW3E"}
@@ -4,7 +4,7 @@ exports.scenarioParameterResult = scenarioParameterResult;
4
4
  const mappers_1 = require("../../mappers");
5
5
  function scenarioParameterResult(scenario, outcome) {
6
6
  return (context) => {
7
- const index = context.parameters.findIndex(p => p.line === scenario.location.line);
7
+ const index = context.parameters.findLastIndex(p => p.line === scenario.location.line);
8
8
  if (index > -1) {
9
9
  const outcomeReport = (0, mappers_1.outcomeReportFrom)(outcome);
10
10
  context.report.dataTable.rows[index].result = outcomeReport.result;
@@ -1 +1 @@
1
- {"version":3,"file":"scenarioParameterResult.js","sourceRoot":"","sources":["../../../../../../../src/stage/crew/serenity-bdd-reporter/processors/scene-sequence/transformations/scenarioParameterResult.ts"],"names":[],"mappings":";;AAKA,0DAaC;AAhBD,2CAAkD;AAGlD,SAAgB,uBAAuB,CAAC,QAAyB,EAAE,OAAgB;IAC/E,OAAO,CAAC,OAAmC,EAA8B,EAAE;QAEvE,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEnF,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,aAAa,GAAG,IAAA,2BAAiB,EAAC,OAAO,CAAC,CAAC;YAEjD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QACvE,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"scenarioParameterResult.js","sourceRoot":"","sources":["../../../../../../../src/stage/crew/serenity-bdd-reporter/processors/scene-sequence/transformations/scenarioParameterResult.ts"],"names":[],"mappings":";;AAKA,0DAYC;AAfD,2CAAkD;AAGlD,SAAgB,uBAAuB,CAAC,QAAyB,EAAE,OAAgB;IAC/E,OAAO,CAAC,OAAmC,EAA8B,EAAE;QACvE,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEvF,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,aAAa,GAAG,IAAA,2BAAiB,EAAC,OAAO,CAAC,CAAC;YAEjD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QACvE,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC,CAAA;AACL,CAAC"}
@@ -10,7 +10,7 @@ function activityFinished(activityId, name, outcome, finishedAt) {
10
10
  return (context) => {
11
11
  const linkedStep = context.steps.get(activityId.value);
12
12
  const outcomeReport = (0, mappers_1.outcomeReportFrom)(outcome);
13
- linkedStep.step.description = name.value;
13
+ linkedStep.step.description = (0, mappers_1.escapeHtml)(name.value);
14
14
  linkedStep.step.result = outcomeReport.result;
15
15
  linkedStep.step.exception = outcomeReport.error;
16
16
  linkedStep.step.duration = core_1.Timestamp.fromJSON(linkedStep.step.startTime).diff(finishedAt).inMilliseconds();
@@ -1 +1 @@
1
- {"version":3,"file":"activityFinished.js","sourceRoot":"","sources":["../../../../../../src/stage/crew/serenity-bdd-reporter/processors/transformations/activityFinished.ts"],"names":[],"mappings":";;AASA,4CAeC;AAxBD,4CAA8C;AAG9C,wCAA+C;AAG/C;;GAEG;AACH,SAAgB,gBAAgB,CAA2C,UAAyB,EAAE,IAAU,EAAE,OAAgB,EAAE,UAAqB;IACrJ,OAAO,CAAC,OAAgB,EAAW,EAAE;QAEjC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,IAAA,2BAAiB,EAAC,OAAO,CAAC,CAAC;QAEjD,UAAU,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;QACzC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QAC9C,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC;QAChD,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG,gBAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,CAAC;QAE3G,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC,gBAAgB,CAAC;QAExD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"activityFinished.js","sourceRoot":"","sources":["../../../../../../src/stage/crew/serenity-bdd-reporter/processors/transformations/activityFinished.ts"],"names":[],"mappings":";;AASA,4CAeC;AAxBD,4CAA8C;AAG9C,wCAA2D;AAG3D;;GAEG;AACH,SAAgB,gBAAgB,CAA2C,UAAyB,EAAE,IAAU,EAAE,OAAgB,EAAE,UAAqB;IACrJ,OAAO,CAAC,OAAgB,EAAW,EAAE;QAEjC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,IAAA,2BAAiB,EAAC,OAAO,CAAC,CAAC;QAEjD,UAAU,CAAC,IAAI,CAAC,WAAW,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QAC9C,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC;QAChD,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG,gBAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,CAAC;QAE3G,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC,gBAAgB,CAAC;QAExD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAA;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"activityStarted.d.ts","sourceRoot":"","sources":["../../../../../../src/stage/crew/serenity-bdd-reporter/processors/transformations/activityStarted.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGvE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAE5E;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAS,wBAAwB,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CA6BpK"}
1
+ {"version":3,"file":"activityStarted.d.ts","sourceRoot":"","sources":["../../../../../../src/stage/crew/serenity-bdd-reporter/processors/transformations/activityStarted.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAIvE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAE5E;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAS,wBAAwB,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CA6BpK"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.activityStarted = activityStarted;
4
+ const mappers_1 = require("../mappers");
4
5
  /**
5
6
  * @package
6
7
  */
@@ -14,7 +15,7 @@ function activityStarted(activityId, name, startedAt) {
14
15
  */
15
16
  // level: 0,
16
17
  // precondition: false,
17
- description: name.value,
18
+ description: (0, mappers_1.escapeHtml)(name.value),
18
19
  startTime: startedAt.toISOString(),
19
20
  children: [],
20
21
  reportData: [],
@@ -1 +1 @@
1
- {"version":3,"file":"activityStarted.js","sourceRoot":"","sources":["../../../../../../src/stage/crew/serenity-bdd-reporter/processors/transformations/activityStarted.ts"],"names":[],"mappings":";;AASA,0CA6BC;AAhCD;;GAEG;AACH,SAAgB,eAAe,CAA2C,UAAyB,EAAE,IAAU,EAAE,SAAoB;IACjI,OAAO,CAAC,OAAgB,EAAW,EAAE;QAEjC,MAAM,IAAI,GAAmB;YACzB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;YAC9B;;;eAGG;YACH,YAAY;YACZ,uBAAuB;YACvB,WAAW,EAAE,IAAI,CAAC,KAAK;YACvB,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;YAClC,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,SAAS;SACpB,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE;YAChC,IAAI;YACJ,gBAAgB,EAAE,OAAO,CAAC,iBAAiB;SAC9C,CAAC,CAAC;QAEH,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC;QAEvC,OAAO,OAAO,CAAC;IACnB,CAAC,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"activityStarted.js","sourceRoot":"","sources":["../../../../../../src/stage/crew/serenity-bdd-reporter/processors/transformations/activityStarted.ts"],"names":[],"mappings":";;AAUA,0CA6BC;AAnCD,wCAAwC;AAGxC;;GAEG;AACH,SAAgB,eAAe,CAA2C,UAAyB,EAAE,IAAU,EAAE,SAAoB;IACjI,OAAO,CAAC,OAAgB,EAAW,EAAE;QAEjC,MAAM,IAAI,GAAmB;YACzB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;YAC9B;;;eAGG;YACH,YAAY;YACZ,uBAAuB;YACvB,WAAW,EAAE,IAAA,oBAAU,EAAC,IAAI,CAAC,KAAK,CAAC;YACnC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;YAClC,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,SAAS;SACpB,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE;YAChC,IAAI;YACJ,gBAAgB,EAAE,OAAO,CAAC,iBAAiB;SAC9C,CAAC,CAAC;QAEH,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC;QAEvC,OAAO,OAAO,CAAC;IACnB,CAAC,CAAA;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/serenity-bdd",
3
- "version": "3.31.4",
3
+ "version": "3.31.6",
4
4
  "description": "Serenity/JS reporting module that produces detailed Serenity BDD test reports and living documentation, enhancing transparency and traceability of test results",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -54,9 +54,9 @@
54
54
  "node": "^18.12 || ^20 || ^22"
55
55
  },
56
56
  "dependencies": {
57
- "@serenity-js/assertions": "3.31.4",
58
- "@serenity-js/core": "3.31.4",
59
- "@serenity-js/rest": "3.31.4",
57
+ "@serenity-js/assertions": "3.31.6",
58
+ "@serenity-js/core": "3.31.6",
59
+ "@serenity-js/rest": "3.31.6",
60
60
  "ansi-regex": "5.0.1",
61
61
  "axios": "1.7.9",
62
62
  "chalk": "4.1.2",
@@ -73,11 +73,11 @@
73
73
  "@types/progress": "2.0.7",
74
74
  "c8": "10.1.3",
75
75
  "if-env": "1.0.4",
76
- "memfs": "4.15.3",
76
+ "memfs": "4.17.0",
77
77
  "mocha": "11.0.1",
78
78
  "mocha-multi": "1.1.7",
79
79
  "ts-node": "10.9.2",
80
- "typescript": "5.7.2"
80
+ "typescript": "5.7.3"
81
81
  },
82
- "gitHead": "d5fcf456e93632909688f9d01b1f1743dfddc8b2"
82
+ "gitHead": "12b753cea9d88582782eab086b2889de62cd7530"
83
83
  }
@@ -14,7 +14,7 @@
14
14
  * @public
15
15
  */
16
16
  export const defaults = {
17
- artifact: 'net.serenity-bdd:serenity-cli:jar:4.1.20',
17
+ artifact: 'net.serenity-bdd:serenity-cli:jar:4.2.12',
18
18
  repository: 'https://repo1.maven.org/maven2/',
19
19
  cacheDir: 'node_modules/@serenity-js/serenity-bdd/cache',
20
20
  sourceDir: 'target/site/serenity',
@@ -5,8 +5,7 @@ import type { SceneSequenceReportContext } from '../SceneSequenceReportContext';
5
5
 
6
6
  export function scenarioParameterResult(scenario: ScenarioDetails, outcome: Outcome) {
7
7
  return (context: SceneSequenceReportContext): SceneSequenceReportContext => {
8
-
9
- const index = context.parameters.findIndex(p => p.line === scenario.location.line);
8
+ const index = context.parameters.findLastIndex(p => p.line === scenario.location.line);
10
9
 
11
10
  if (index > -1) {
12
11
  const outcomeReport = outcomeReportFrom(outcome);
@@ -1,7 +1,7 @@
1
1
  import { Timestamp } from '@serenity-js/core';
2
2
  import type { CorrelationId, Name, Outcome } from '@serenity-js/core/lib/model';
3
3
 
4
- import { outcomeReportFrom } from '../mappers';
4
+ import { escapeHtml, outcomeReportFrom } from '../mappers';
5
5
  import type { SerenityBDDReportContext } from '../SerenityBDDReportContext';
6
6
 
7
7
  /**
@@ -13,7 +13,7 @@ export function activityFinished<Context extends SerenityBDDReportContext>(activ
13
13
  const linkedStep = context.steps.get(activityId.value);
14
14
  const outcomeReport = outcomeReportFrom(outcome);
15
15
 
16
- linkedStep.step.description = name.value;
16
+ linkedStep.step.description = escapeHtml(name.value);
17
17
  linkedStep.step.result = outcomeReport.result;
18
18
  linkedStep.step.exception = outcomeReport.error;
19
19
  linkedStep.step.duration = Timestamp.fromJSON(linkedStep.step.startTime).diff(finishedAt).inMilliseconds();
@@ -2,6 +2,7 @@ import type { Timestamp } from '@serenity-js/core';
2
2
  import type { CorrelationId, Name } from '@serenity-js/core/lib/model';
3
3
 
4
4
  import type { TestStepSchema } from '../../serenity-bdd-report-schema';
5
+ import { escapeHtml } from '../mappers';
5
6
  import type { SerenityBDDReportContext } from '../SerenityBDDReportContext';
6
7
 
7
8
  /**
@@ -18,7 +19,7 @@ export function activityStarted<Context extends SerenityBDDReportContext>(activi
18
19
  */
19
20
  // level: 0,
20
21
  // precondition: false,
21
- description: name.value,
22
+ description: escapeHtml(name.value),
22
23
  startTime: startedAt.toISOString(),
23
24
  children: [],
24
25
  reportData: [],