@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 +45 -0
- package/lib/listeners/legacy/CucumberEventProtocolAdapter.js +10 -1
- package/lib/listeners/legacy/CucumberEventProtocolAdapter.js.map +1 -1
- package/lib/listeners/legacy/notifier/ResultMapper.d.ts +3 -0
- package/lib/listeners/legacy/notifier/ResultMapper.js +29 -6
- package/lib/listeners/legacy/notifier/ResultMapper.js.map +1 -1
- package/package.json +9 -9
- package/src/listeners/legacy/CucumberEventProtocolAdapter.ts +12 -1
- package/src/listeners/legacy/notifier/ResultMapper.ts +38 -8
- package/lib/listeners/messages/parser/index.d.ts +0 -0
- package/lib/listeners/messages/parser/index.js +0 -1
- package/lib/listeners/messages/parser/index.js.map +0 -1
- package/src/listeners/messages/parser/index.ts +0 -0
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
|
|
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 (
|
|
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
|
-
|
|
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;
|
|
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": "
|
|
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": "^
|
|
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": "
|
|
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.
|
|
70
|
+
"@types/chai": "^4.3.0",
|
|
71
71
|
"@types/mocha": "^9.0.0",
|
|
72
|
-
"mocha": "^9.1.
|
|
73
|
-
"ts-node": "^10.
|
|
74
|
-
"typescript": "^4.
|
|
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": "
|
|
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
|
|
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 (
|
|
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
|
-
|
|
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
|