@serenity-js/cucumber 2.32.2 → 3.0.0-rc.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,51 @@
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.0.0-rc.0](https://github.com/serenity-js/serenity-js/compare/v2.32.5...v3.0.0-rc.0) (2021-12-08)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **core:** 3.0 RC ([469d54e](https://github.com/serenity-js/serenity-js/commit/469d54e4f81ef430566b93852e3174826f8ef672)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
12
+ * **cucumber:** support for recognising non-Serenity AssertionErrors in older version of Cucumber ([31e9e99](https://github.com/serenity-js/serenity-js/commit/31e9e9919c2fd1e87b3f4405d9b2a6ae0164e893))
13
+
14
+
15
+ ### BREAKING CHANGES
16
+
17
+ * **core:** Introduced @serenity-js/web - a shared library for Serenity/JS Web integration
18
+ modules such as @serenity-js/protractor and @serenity-js/webdriverio. Dropped support for Node 12.
19
+
20
+
21
+
22
+
23
+
24
+ ## [2.32.5](https://github.com/serenity-js/serenity-js/compare/v2.32.4...v2.32.5) (2021-12-08)
25
+
26
+ **Note:** Version bump only for package @serenity-js/cucumber
27
+
28
+
29
+
30
+
31
+
32
+ ## [2.32.4](https://github.com/serenity-js/serenity-js/compare/v2.32.3...v2.32.4) (2021-11-25)
33
+
34
+ **Note:** Version bump only for package @serenity-js/cucumber
35
+
36
+
37
+
38
+
39
+
40
+ ## [2.32.3](https://github.com/serenity-js/serenity-js/compare/v2.32.2...v2.32.3) (2021-11-06)
41
+
42
+
43
+ ### Bug Fixes
44
+
45
+ * **core:** support for NPM 8 ([7cb470c](https://github.com/serenity-js/serenity-js/commit/7cb470c985a7149f058a317dcb14e6294913f9ff))
46
+
47
+
48
+
49
+
50
+
6
51
  ## [2.32.2](https://github.com/serenity-js/serenity-js/compare/v2.32.1...v2.32.2) (2021-10-04)
7
52
 
8
53
  **Note:** Version bump only for package @serenity-js/cucumber
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cucumberEventProtocolAdapter = void 0;
4
+ const core_1 = require("@serenity-js/core");
4
5
  const errors_1 = require("@serenity-js/core/lib/errors");
5
6
  const io_1 = require("@serenity-js/core/lib/io");
6
7
  const model_1 = require("@serenity-js/core/lib/model");
@@ -88,8 +89,10 @@ function cucumberEventProtocolAdapter({ serenity, notifier, mapper, cache }) {
88
89
  }
89
90
  errorFrom(exception) {
90
91
  switch (true) {
91
- case exception instanceof Error:
92
+ case exception instanceof core_1.RuntimeError:
92
93
  return exception;
94
+ case exception instanceof Error && exception.name === 'AssertionError' && exception.message && hasOwnProperty(exception, 'expected') && hasOwnProperty(exception, 'actual'):
95
+ return new errors_1.AssertionError(exception.message, exception.expected, exception.actual, exception);
93
96
  case typeof exception === 'string' && exception.startsWith('Multiple step definitions match'):
94
97
  return new errors_2.AmbiguousStepDefinitionError(exception);
95
98
  default:
@@ -109,4 +112,10 @@ function interleaveStepsAndHooks(steps, stepsLocations) {
109
112
  ? new gherkin_1.Hook(new io_1.FileSystemLocation(new io_1.Path(location.actionLocation.uri), location.actionLocation.line), new model_1.Name('Setup'))
110
113
  : steps.find(matching(location)));
111
114
  }
115
+ /**
116
+ * @private
117
+ */
118
+ function hasOwnProperty(value, fieldName) {
119
+ return Object.prototype.hasOwnProperty.call(value, fieldName);
120
+ }
112
121
  //# sourceMappingURL=CucumberEventProtocolAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CucumberEventProtocolAdapter.js","sourceRoot":"","sources":["../../../src/listeners/legacy/CucumberEventProtocolAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CucumberEventProtocolAdapter.js","sourceRoot":"","sources":["../../../src/listeners/legacy/CucumberEventProtocolAdapter.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,7 @@ import { Outcome } from '@serenity-js/core/lib/model';
5
5
  export declare class ResultMapper {
6
6
  outcomeFor(status: string, maybeError: Error | string | undefined): Outcome;
7
7
  errorFrom(error: Error | string | undefined): Error | undefined;
8
+ private isTimeoutError;
9
+ private isANonSerenityAssertionError;
10
+ private problemIndicationOutcomeFromError;
8
11
  }
@@ -10,7 +10,7 @@ const errors_1 = require("../../../errors");
10
10
  class ResultMapper {
11
11
  outcomeFor(status, maybeError) {
12
12
  const error = this.errorFrom(maybeError);
13
- if (error && /timed out/.test(error.message)) {
13
+ if (this.isTimeoutError(error)) {
14
14
  return new model_1.ExecutionFailedWithError(error);
15
15
  }
16
16
  switch (true) {
@@ -23,11 +23,7 @@ class ResultMapper {
23
23
  }
24
24
  return new model_1.ExecutionFailedWithError(error);
25
25
  case status === 'failed':
26
- switch (true) {
27
- case error instanceof core_1.AssertionError: return new model_1.ExecutionFailedWithAssertionError(error);
28
- case error instanceof core_1.TestCompromisedError: return new model_1.ExecutionCompromised(error);
29
- default: return new model_1.ExecutionFailedWithError(error);
30
- }
26
+ return this.problemIndicationOutcomeFromError(error);
31
27
  case status === 'pending':
32
28
  return new model_1.ImplementationPending(new core_1.ImplementationPendingError('Step not implemented'));
33
29
  case status === 'passed':
@@ -44,6 +40,33 @@ class ResultMapper {
44
40
  default: return void 0;
45
41
  }
46
42
  }
43
+ isTimeoutError(error) {
44
+ return error && /timed out/.test(error.message);
45
+ }
46
+ isANonSerenityAssertionError(error) {
47
+ return error instanceof Error
48
+ && error.name === 'AssertionError'
49
+ && error.message && hasOwnProperty(error, 'expected')
50
+ && hasOwnProperty(error, 'actual');
51
+ }
52
+ problemIndicationOutcomeFromError(error) {
53
+ if (error instanceof core_1.AssertionError) {
54
+ return new model_1.ExecutionFailedWithAssertionError(error);
55
+ }
56
+ if (this.isANonSerenityAssertionError(error)) {
57
+ return new model_1.ExecutionFailedWithAssertionError(new core_1.AssertionError(error.message, error.expected, error.actual, error));
58
+ }
59
+ if (error instanceof core_1.TestCompromisedError) {
60
+ return new model_1.ExecutionCompromised(error);
61
+ }
62
+ return new model_1.ExecutionFailedWithError(error);
63
+ }
47
64
  }
48
65
  exports.ResultMapper = ResultMapper;
66
+ /**
67
+ * @private
68
+ */
69
+ function hasOwnProperty(value, fieldName) {
70
+ return Object.prototype.hasOwnProperty.call(value, fieldName);
71
+ }
49
72
  //# sourceMappingURL=ResultMapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResultMapper.js","sourceRoot":"","sources":["../../../../src/listeners/legacy/notifier/ResultMapper.ts"],"names":[],"mappings":";;;AAAA,4CAAqG;AACrG,uDAQqC;AAErC,4CAA+D;AAE/D;;GAEG;AACH,MAAa,YAAY;IACrB,UAAU,CAAC,MAAc,EAAE,UAAsC;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAC1C,OAAO,IAAI,gCAAwB,CAAC,KAAK,CAAC,CAAC;SAC9C;QAED,QAAQ,IAAI,EAAE;YACV,KAAK,MAAM,KAAK,WAAW;gBACvB,OAAO,IAAI,6BAAqB,CAAC,IAAI,iCAA0B,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAE7F,KAAK,MAAM,KAAK,WAAW;gBACvB,IAAI,CAAE,KAAK,EAAE;oBACT,4FAA4F;oBAC5F,OAAO,IAAI,gCAAwB,CAAC,IAAI,qCAA4B,CAAC,iCAAiC,CAAC,CAAC,CAAC;iBAC5G;gBAED,OAAO,IAAI,gCAAwB,CAAC,KAAK,CAAC,CAAC;YAE/C,KAAK,MAAM,KAAK,QAAQ;gBACpB,QAAQ,IAAI,EAAE;oBACV,KAAK,KAAK,YAAY,qBAAc,CAAC,CAAO,OAAO,IAAI,yCAAiC,CAAC,KAAuB,CAAC,CAAC;oBAClH,KAAK,KAAK,YAAY,2BAAoB,CAAC,CAAC,OAAO,IAAI,4BAAoB,CAAC,KAA6B,CAAC,CAAC;oBAC3G,OAAO,CAAC,CAAoC,OAAO,IAAI,gCAAwB,CAAC,KAAK,CAAC,CAAC;iBAC1F;YAEL,KAAK,MAAM,KAAK,SAAS;gBACrB,OAAO,IAAI,6BAAqB,CAAC,IAAI,iCAA0B,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAE7F,KAAK,MAAM,KAAK,QAAQ;gBACpB,OAAO,IAAI,2BAAmB,EAAE,CAAC;YAErC,KAAK,MAAM,KAAK,SAAS;gBACrB,OAAO,IAAI,wBAAgB,EAAE,CAAC;SACrC;IAEL,CAAC;IAED,SAAS,CAAC,KAAiC;QACvC,QAAQ,OAAO,KAAK,EAAE;YAClB,KAAK,QAAQ,CAAC,CAAG,OAAO,IAAI,KAAK,CAAC,KAAe,CAAC,CAAC;YACnD,KAAK,QAAQ,CAAC,CAAG,OAAO,KAAc,CAAC;YACvC,KAAK,UAAU,CAAC,CAAC,OAAO,KAAc,CAAC;YACvC,OAAO,CAAC,CAAS,OAAO,KAAK,CAAC,CAAC;SAClC;IACL,CAAC;CACJ;AA/CD,oCA+CC"}
1
+ {"version":3,"file":"ResultMapper.js","sourceRoot":"","sources":["../../../../src/listeners/legacy/notifier/ResultMapper.ts"],"names":[],"mappings":";;;AAAA,4CAAqG;AACrG,uDAQqC;AAErC,4CAA+D;AAE/D;;GAEG;AACH,MAAa,YAAY;IAErB,UAAU,CAAC,MAAc,EAAE,UAAsC;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,IAAI,gCAAwB,CAAC,KAAK,CAAC,CAAC;SAC9C;QAED,QAAQ,IAAI,EAAE;YACV,KAAK,MAAM,KAAK,WAAW;gBACvB,OAAO,IAAI,6BAAqB,CAAC,IAAI,iCAA0B,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAE7F,KAAK,MAAM,KAAK,WAAW;gBACvB,IAAI,CAAE,KAAK,EAAE;oBACT,4FAA4F;oBAC5F,OAAO,IAAI,gCAAwB,CAAC,IAAI,qCAA4B,CAAC,iCAAiC,CAAC,CAAC,CAAC;iBAC5G;gBAED,OAAO,IAAI,gCAAwB,CAAC,KAAK,CAAC,CAAC;YAE/C,KAAK,MAAM,KAAK,QAAQ;gBACpB,OAAO,IAAI,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC;YAEzD,KAAK,MAAM,KAAK,SAAS;gBACrB,OAAO,IAAI,6BAAqB,CAAC,IAAI,iCAA0B,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAE7F,KAAK,MAAM,KAAK,QAAQ;gBACpB,OAAO,IAAI,2BAAmB,EAAE,CAAC;YAErC,KAAK,MAAM,KAAK,SAAS;gBACrB,OAAO,IAAI,wBAAgB,EAAE,CAAC;SACrC;IACL,CAAC;IAED,SAAS,CAAC,KAAiC;QACvC,QAAQ,OAAO,KAAK,EAAE;YAClB,KAAK,QAAQ,CAAC,CAAG,OAAO,IAAI,KAAK,CAAC,KAAe,CAAC,CAAC;YACnD,KAAK,QAAQ,CAAC,CAAG,OAAO,KAAc,CAAC;YACvC,KAAK,UAAU,CAAC,CAAC,OAAO,KAAc,CAAC;YACvC,OAAO,CAAC,CAAS,OAAO,KAAK,CAAC,CAAC;SAClC;IACL,CAAC;IAEO,cAAc,CAAC,KAAa;QAChC,OAAO,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAEO,4BAA4B,CAAC,KAAa;QAC9C,OAAO,KAAK,YAAY,KAAK;eACtB,KAAK,CAAC,IAAI,KAAK,gBAAgB;eAC/B,KAAK,CAAC,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC;eAClD,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAEO,iCAAiC,CAAC,KAAa;QACnD,IAAI,KAAK,YAAY,qBAAc,EAAE;YACjC,OAAO,IAAI,yCAAiC,CAAC,KAAuB,CAAC,CAAC;SACzE;QAED,IAAI,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAAE;YAC1C,OAAO,IAAI,yCAAiC,CAAC,IAAI,qBAAc,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;SACxH;QAED,IAAI,KAAK,YAAY,2BAAoB,EAAE;YACvC,OAAO,IAAI,4BAAoB,CAAC,KAA6B,CAAC,CAAC;SAClE;QAED,OAAO,IAAI,gCAAwB,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;CACJ;AAtED,oCAsEC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAU,EAAE,SAAiB;IACjD,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAClE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/cucumber",
3
- "version": "2.32.2",
3
+ "version": "3.0.0-rc.0",
4
4
  "description": "Serenity/JS adapter for Cucumber test runners version 1.x - 7.x",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -41,12 +41,12 @@
41
41
  "url": "https://github.com/serenity-js/serenity-js/issues"
42
42
  },
43
43
  "engines": {
44
- "node": "^12 || ^14 || ^16",
45
- "npm": "^6 || ^7"
44
+ "node": "^14 || ^16",
45
+ "npm": "^6 || ^7 || ^8"
46
46
  },
47
47
  "dependencies": {
48
48
  "@cucumber/messages": "^16.0.1",
49
- "@serenity-js/core": "2.32.2",
49
+ "@serenity-js/core": "3.0.0-rc.0",
50
50
  "cli-table3": "^0.6.0",
51
51
  "gherkin": "5.1.0",
52
52
  "tiny-types": "^1.16.1"
@@ -67,11 +67,11 @@
67
67
  "@cucumber/cucumber": "^7.3.1",
68
68
  "@documentation/esdoc-template": "2.0.0",
69
69
  "@integration/testing-tools": "2.0.0",
70
- "@types/chai": "^4.2.22",
70
+ "@types/chai": "^4.3.0",
71
71
  "@types/mocha": "^9.0.0",
72
- "mocha": "^9.1.1",
73
- "ts-node": "^10.2.1",
74
- "typescript": "^4.4.3"
72
+ "mocha": "^9.1.3",
73
+ "ts-node": "^10.4.0",
74
+ "typescript": "^4.5.2"
75
75
  },
76
76
  "nyc": {
77
77
  "include": [
@@ -96,5 +96,5 @@
96
96
  "cache": true,
97
97
  "all": true
98
98
  },
99
- "gitHead": "327f61fa241cf9fe61913246c5ff579b06e47f26"
99
+ "gitHead": "a63381d088cc068bc3edcbd1eb59a7e609cb6a8c"
100
100
  }
@@ -1,3 +1,4 @@
1
+ import { RuntimeError } from '@serenity-js/core';
1
2
  import { AssertionError, ImplementationPendingError, TestCompromisedError } from '@serenity-js/core/lib/errors';
2
3
  import { ErrorSerialiser, FileSystemLocation, Path } from '@serenity-js/core/lib/io';
3
4
  import {
@@ -174,9 +175,12 @@ export function cucumberEventProtocolAdapter({ serenity, notifier, mapper, cache
174
175
  }
175
176
 
176
177
  errorFrom(exception: Error | string): Error {
178
+
177
179
  switch (true) {
178
- case exception instanceof Error:
180
+ case exception instanceof RuntimeError:
179
181
  return exception as Error;
182
+ case exception instanceof Error && exception.name === 'AssertionError' && exception.message && hasOwnProperty(exception, 'expected') && hasOwnProperty(exception, 'actual'):
183
+ return new AssertionError((exception as any).message, (exception as any).expected, (exception as any).actual, exception as Error);
180
184
  case typeof exception === 'string' && exception.startsWith('Multiple step definitions match'):
181
185
  return new AmbiguousStepDefinitionError(exception as string);
182
186
  default:
@@ -204,3 +208,10 @@ function interleaveStepsAndHooks(steps: Step[], stepsLocations: StepLocations[])
204
208
  : steps.find(matching(location)),
205
209
  );
206
210
  }
211
+
212
+ /**
213
+ * @private
214
+ */
215
+ function hasOwnProperty(value: any, fieldName: string): boolean {
216
+ return Object.prototype.hasOwnProperty.call(value, fieldName);
217
+ }
@@ -6,7 +6,7 @@ import {
6
6
  ExecutionSkipped,
7
7
  ExecutionSuccessful,
8
8
  ImplementationPending,
9
- Outcome,
9
+ Outcome, ProblemIndication,
10
10
  } from '@serenity-js/core/lib/model';
11
11
 
12
12
  import { AmbiguousStepDefinitionError } from '../../../errors';
@@ -15,10 +15,11 @@ import { AmbiguousStepDefinitionError } from '../../../errors';
15
15
  * @package
16
16
  */
17
17
  export class ResultMapper {
18
+
18
19
  outcomeFor(status: string, maybeError: Error | string | undefined): Outcome {
19
20
  const error = this.errorFrom(maybeError);
20
21
 
21
- if (error && /timed out/.test(error.message)) {
22
+ if (this.isTimeoutError(error)) {
22
23
  return new ExecutionFailedWithError(error);
23
24
  }
24
25
 
@@ -35,11 +36,7 @@ export class ResultMapper {
35
36
  return new ExecutionFailedWithError(error);
36
37
 
37
38
  case status === 'failed':
38
- switch (true) {
39
- case error instanceof AssertionError: return new ExecutionFailedWithAssertionError(error as AssertionError);
40
- case error instanceof TestCompromisedError: return new ExecutionCompromised(error as TestCompromisedError);
41
- default: return new ExecutionFailedWithError(error);
42
- }
39
+ return this.problemIndicationOutcomeFromError(error);
43
40
 
44
41
  case status === 'pending':
45
42
  return new ImplementationPending(new ImplementationPendingError('Step not implemented'));
@@ -50,7 +47,6 @@ export class ResultMapper {
50
47
  case status === 'skipped':
51
48
  return new ExecutionSkipped();
52
49
  }
53
-
54
50
  }
55
51
 
56
52
  errorFrom(error: Error | string | undefined): Error | undefined {
@@ -61,4 +57,38 @@ export class ResultMapper {
61
57
  default: return void 0;
62
58
  }
63
59
  }
60
+
61
+ private isTimeoutError(error?: Error) {
62
+ return error && /timed out/.test(error.message);
63
+ }
64
+
65
+ private isANonSerenityAssertionError(error?: Error): error is Error & { name: string, message: string, expected: any, actual: any } {
66
+ return error instanceof Error
67
+ && error.name === 'AssertionError'
68
+ && error.message && hasOwnProperty(error, 'expected')
69
+ && hasOwnProperty(error, 'actual');
70
+ }
71
+
72
+ private problemIndicationOutcomeFromError(error?: Error): ProblemIndication {
73
+ if (error instanceof AssertionError) {
74
+ return new ExecutionFailedWithAssertionError(error as AssertionError);
75
+ }
76
+
77
+ if (this.isANonSerenityAssertionError(error)) {
78
+ return new ExecutionFailedWithAssertionError(new AssertionError(error.message, error.expected, error.actual, error));
79
+ }
80
+
81
+ if (error instanceof TestCompromisedError) {
82
+ return new ExecutionCompromised(error as TestCompromisedError);
83
+ }
84
+
85
+ return new ExecutionFailedWithError(error);
86
+ }
87
+ }
88
+
89
+ /**
90
+ * @private
91
+ */
92
+ function hasOwnProperty(value: any, fieldName: string): boolean {
93
+ return Object.prototype.hasOwnProperty.call(value, fieldName);
64
94
  }
File without changes
@@ -1 +0,0 @@
1
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/listeners/messages/parser/index.ts"],"names":[],"mappings":""}
File without changes