@wdio/cucumber-framework 7.13.2 → 7.16.3
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/build/constants.d.ts +8 -1
- package/build/constants.d.ts.map +1 -1
- package/build/cucumberEventListener.d.ts +1 -0
- package/build/cucumberEventListener.d.ts.map +1 -1
- package/build/cucumberEventListener.js +8 -4
- package/build/index.d.ts +7 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +12 -12
- package/build/reporter.d.ts +2 -1
- package/build/reporter.d.ts.map +1 -1
- package/build/reporter.js +13 -12
- package/build/utils.d.ts +6 -0
- package/build/utils.d.ts.map +1 -1
- package/build/utils.js +25 -7
- package/package.json +6 -6
package/build/constants.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CucumberOptions } from './types';
|
|
2
|
-
import { PickleStep } from '@cucumber/messages';
|
|
2
|
+
import { Pickle, PickleStep } from '@cucumber/messages';
|
|
3
3
|
export declare const DEFAULT_TIMEOUT = 60000;
|
|
4
4
|
export declare const DEFAULT_OPTS: CucumberOptions;
|
|
5
5
|
export declare const NOOP: () => void;
|
|
@@ -11,4 +11,11 @@ export declare const CUCUMBER_HOOK_DEFINITION_TYPES: readonly ["beforeTestRunHoo
|
|
|
11
11
|
export interface ReporterStep extends PickleStep {
|
|
12
12
|
keyword?: string;
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* The pickle scenario needs to have a rule for the reporters, otherwise reporters like
|
|
16
|
+
* the allure or spec reporter won't show the rule
|
|
17
|
+
*/
|
|
18
|
+
export interface ReporterScenario extends Pickle {
|
|
19
|
+
rule?: string;
|
|
20
|
+
}
|
|
14
21
|
//# sourceMappingURL=constants.d.ts.map
|
package/build/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEvD,eAAO,MAAM,eAAe,QAAQ,CAAA;AAEpC,eAAO,MAAM,YAAY,EAAE,eAkB1B,CAAA;AAGD,eAAO,MAAM,IAAI,YAAiB,CAAA;AAElC,eAAO,MAAM,8BAA8B,mKAKjC,CAAA;AAEV;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,MAAM;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB"}
|
|
@@ -12,6 +12,7 @@ export default class CucumberEventListener extends EventEmitter {
|
|
|
12
12
|
private _currentTestCase?;
|
|
13
13
|
private _currentPickle?;
|
|
14
14
|
private _suiteMap;
|
|
15
|
+
private _pickleMap;
|
|
15
16
|
private _currentDoc;
|
|
16
17
|
private _startedFeatures;
|
|
17
18
|
constructor(eventBroadcaster: EventEmitter, _pickleFilter: PickleFilter);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cucumberEventListener.d.ts","sourceRoot":"","sources":["../src/cucumberEventListener.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAU,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EACH,MAAM,EAAE,QAAQ,EAAY,cAAc,EAAE,eAAe,EAAE,eAAe,EAC5E,eAAe,EAAE,gBAAgB,EACpC,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"cucumberEventListener.d.ts","sourceRoot":"","sources":["../src/cucumberEventListener.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAU,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EACH,MAAM,EAAE,QAAQ,EAAY,cAAc,EAAE,eAAe,EAAE,eAAe,EAC5E,eAAe,EAAE,gBAAgB,EACpC,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAMpC,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,YAAY;IAWd,OAAO,CAAC,aAAa;IAVlE,OAAO,CAAC,iBAAiB,CAAwB;IACjD,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,gBAAgB,CAAe;gBAE1B,gBAAgB,EAAE,YAAY,EAAU,aAAa,EAAE,YAAY;IAwChF,gBAAgB;IAIhB,gBAAgB,CAAC,OAAO,EAAE,MAAM;IAoDhC,iBAAiB,CAAE,eAAe,EAAE,eAAe;IAgCnD,gBAAgB,CAAE,WAAW,EAAE,MAAM;IAgBrC,gBAAgB;IA4EhB,kBAAkB,CAAE,QAAQ,EAAE,QAAQ;IAetC,iBAAiB,CAAE,QAAQ,EAAE,eAAe;IAkD5C,iBAAiB,CAAE,oBAAoB,EAAE,eAAe;IAoCxD,kBAAkB,CAAE,qBAAqB,EAAE,gBAAgB;IA6B3D,kBAAkB,CACd,OAAO,EAAE,cAAc,EAAE;IA4B7B,iBAAiB;IAkBjB,aAAa;IAIb;;;OAGG;IACH,YAAY,CAAE,IAAI,EAAE,YAAY,CAAC,gBAAgB;CAgBpD"}
|
|
@@ -7,7 +7,7 @@ const events_1 = require("events");
|
|
|
7
7
|
const cucumber_1 = require("@cucumber/cucumber");
|
|
8
8
|
const logger_1 = __importDefault(require("@wdio/logger"));
|
|
9
9
|
const utils_1 = require("./utils");
|
|
10
|
-
const log = logger_1.default('CucumberEventListener');
|
|
10
|
+
const log = (0, logger_1.default)('CucumberEventListener');
|
|
11
11
|
class CucumberEventListener extends events_1.EventEmitter {
|
|
12
12
|
constructor(eventBroadcaster, _pickleFilter) {
|
|
13
13
|
super();
|
|
@@ -17,6 +17,7 @@ class CucumberEventListener extends events_1.EventEmitter {
|
|
|
17
17
|
this._testCases = [];
|
|
18
18
|
this._currentPickle = {};
|
|
19
19
|
this._suiteMap = new Map();
|
|
20
|
+
this._pickleMap = new Map();
|
|
20
21
|
this._currentDoc = { comments: [] };
|
|
21
22
|
this._startedFeatures = [];
|
|
22
23
|
let results = [];
|
|
@@ -154,6 +155,7 @@ class CucumberEventListener extends events_1.EventEmitter {
|
|
|
154
155
|
onPickleAccepted(pickleEvent) {
|
|
155
156
|
const id = this._suiteMap.size.toString();
|
|
156
157
|
this._suiteMap.set(pickleEvent.id, id);
|
|
158
|
+
this._pickleMap.set(id, pickleEvent.astNodeIds[0]);
|
|
157
159
|
const scenario = { ...pickleEvent, id };
|
|
158
160
|
this._scenarios.push(scenario);
|
|
159
161
|
}
|
|
@@ -279,10 +281,12 @@ class CucumberEventListener extends events_1.EventEmitter {
|
|
|
279
281
|
* This will aad them
|
|
280
282
|
*/
|
|
281
283
|
if (scenario.steps && feature) {
|
|
282
|
-
scenario.steps = utils_1.addKeywordToStep(scenario.steps, feature);
|
|
284
|
+
scenario.steps = (0, utils_1.addKeywordToStep)(scenario.steps, feature);
|
|
283
285
|
}
|
|
284
286
|
this._currentPickle = { uri, feature, scenario };
|
|
285
|
-
|
|
287
|
+
let reporterScenario = scenario;
|
|
288
|
+
reporterScenario.rule = (0, utils_1.getRule)(doc === null || doc === void 0 ? void 0 : doc.feature, this._pickleMap.get(scenario.id));
|
|
289
|
+
this.emit('before-scenario', scenario.uri, doc === null || doc === void 0 ? void 0 : doc.feature, reporterScenario);
|
|
286
290
|
}
|
|
287
291
|
// {
|
|
288
292
|
// "testStepStarted": {
|
|
@@ -402,7 +406,7 @@ class CucumberEventListener extends events_1.EventEmitter {
|
|
|
402
406
|
/**
|
|
403
407
|
* match based on capability tags
|
|
404
408
|
*/
|
|
405
|
-
.filter(([, fakeId]) => utils_1.filterPickles(caps, this._scenarios.find(s => s.id === fakeId)))
|
|
409
|
+
.filter(([, fakeId]) => (0, utils_1.filterPickles)(caps, this._scenarios.find(s => s.id === fakeId)))
|
|
406
410
|
/**
|
|
407
411
|
* match based on Cucumber pickle filter
|
|
408
412
|
*/
|
package/build/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="expect-webdriverio/types/standalone" />
|
|
2
3
|
import { EventEmitter } from 'events';
|
|
3
4
|
import * as Cucumber from '@cucumber/cucumber';
|
|
4
5
|
import { After, AfterAll, AfterStep, Before, BeforeAll, BeforeStep, defineParameterType, defineStep, Given, setDefaultTimeout, setDefinitionFunctionWrapper, setWorldConstructor, Then, When } from '@cucumber/cucumber';
|
|
5
6
|
import { Long } from 'long';
|
|
6
7
|
import type { Capabilities, Options } from '@wdio/types';
|
|
8
|
+
import type ExpectWebdriverIO from 'expect-webdriverio';
|
|
7
9
|
import { CucumberOptions, StepDefinitionOptions, HookFunctionExtension as HookFunctionExtensionImport } from './types';
|
|
8
10
|
declare class CucumberAdapter {
|
|
9
11
|
private _cid;
|
|
@@ -76,5 +78,10 @@ declare global {
|
|
|
76
78
|
interface HookFunctionExtension extends HookFunctionExtensionImport {
|
|
77
79
|
}
|
|
78
80
|
}
|
|
81
|
+
namespace NodeJS {
|
|
82
|
+
interface Global {
|
|
83
|
+
expect: ExpectWebdriverIO.Expect;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
79
86
|
}
|
|
80
87
|
//# sourceMappingURL=index.d.ts.map
|
package/build/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":";;AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAMrC,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EACH,KAAK,EACL,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,IAAI,EACJ,IAAI,EACP,MAAM,oBAAoB,CAAA;AAK3B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAc,MAAM,aAAa,CAAA;AACpE,OAAO,KAAK,iBAAiB,MAAM,oBAAoB,CAAA;AAIvD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,qBAAqB,IAAI,2BAA2B,EAAE,MAAM,SAAS,CAAA;AAatH,cAAM,eAAe;IAoBb,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IAvBrB,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gCAAgC,CAAU;IAClD,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,mBAAmB,CAAoB;IAC/C,OAAO,CAAC,aAAa,CAAuB;IAE5C,aAAa,CAAC,EAAE,QAAQ,CAAA;IAExB;;;OAGG;IACH,KAAK,CAAC,EAAE,IAAI,CAAA;gBAGA,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,UAAU,EAC3B,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,YAAY,CAAC,gBAAgB,EAC5C,SAAS,EAAE,YAAY;IA0B7B,IAAI;IAmCV,QAAQ;IAIF,GAAG;IAkET;;;;;;;;OAQG;IACH,uBAAuB;IAYvB,aAAa;IAUb,aAAa;IAsBb;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU;IAkDvC;;;OAGG;IACH,SAAS,CAAE,MAAM,EAAE,OAAO,CAAC,UAAU;IAwBrC;;;;;;;;;OASG;IACH,QAAQ,CACJ,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,OAAO,CAAC,UAAU,EAC1B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,qBAAqB,EAC9B,aAAa,EAAE,QAAQ,UAEA,SAAS,KAAK,WAAW,GAAG,EAAE;CAkB5D;AAGD,QAAA,MAAM,cAAc,EAAE;IAAE,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAO,CAAA;AAa9C,eAAe,cAAc,CAAA;AAC7B,OAAO,EACH,eAAe,EACf,cAAc,EACd,KAAK,EACL,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,IAAI,EACJ,IAAI,EACP,CAAA;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,WAAW,CAAC;QAClB,UAAU,YAAa,SAAQ,eAAe;SAAG;QACjD,UAAU,qBAAsB,SAAQ,2BAA2B;SAAG;KACzE;IACD,UAAU,MAAM,CAAC;QACb,UAAU,MAAM;YACZ,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAA;SACnC;KACJ;CACJ"}
|
package/build/index.js
CHANGED
|
@@ -107,7 +107,7 @@ class CucumberAdapter {
|
|
|
107
107
|
this._hasTests = this._cucumberReporter.eventListener.getPickleIds(this._capabilities).length > 0;
|
|
108
108
|
}
|
|
109
109
|
catch (runtimeError) {
|
|
110
|
-
await utils_1.executeHooksWithArgs('after', this._config.after, [runtimeError, this._capabilities, this._specs]);
|
|
110
|
+
await (0, utils_1.executeHooksWithArgs)('after', this._config.after, [runtimeError, this._capabilities, this._specs]);
|
|
111
111
|
throw runtimeError;
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
@@ -140,7 +140,7 @@ class CucumberAdapter {
|
|
|
140
140
|
* we need to somehow identify is function is step or hook
|
|
141
141
|
* so we wrap every user hook function
|
|
142
142
|
*/
|
|
143
|
-
utils_2.setUserHookNames(Cucumber.supportCodeLibraryBuilder);
|
|
143
|
+
(0, utils_2.setUserHookNames)(Cucumber.supportCodeLibraryBuilder);
|
|
144
144
|
Cucumber.setDefaultTimeout(this._cucumberOpts.timeout);
|
|
145
145
|
const supportCodeLibrary = Cucumber.supportCodeLibraryBuilder.finalize();
|
|
146
146
|
/**
|
|
@@ -168,11 +168,11 @@ class CucumberAdapter {
|
|
|
168
168
|
result = this._cucumberReporter.failedCount;
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
|
-
catch (
|
|
172
|
-
runtimeError =
|
|
171
|
+
catch (err) {
|
|
172
|
+
runtimeError = err;
|
|
173
173
|
result = 1;
|
|
174
174
|
}
|
|
175
|
-
await utils_1.executeHooksWithArgs('after', this._config.after, [runtimeError || result, this._capabilities, this._specs]);
|
|
175
|
+
await (0, utils_1.executeHooksWithArgs)('after', this._config.after, [runtimeError || result, this._capabilities, this._specs]);
|
|
176
176
|
/**
|
|
177
177
|
* in case the spec has a runtime error throw after the wdio hook
|
|
178
178
|
*/
|
|
@@ -204,7 +204,7 @@ class CucumberAdapter {
|
|
|
204
204
|
});
|
|
205
205
|
}
|
|
206
206
|
requiredFiles() {
|
|
207
|
-
return this._cucumberOpts.require.reduce((files, requiredFile) => files.concat(is_glob_1.default(requiredFile)
|
|
207
|
+
return this._cucumberOpts.require.reduce((files, requiredFile) => files.concat((0, is_glob_1.default)(requiredFile)
|
|
208
208
|
? glob_1.default.sync(requiredFile)
|
|
209
209
|
: [requiredFile]), []);
|
|
210
210
|
}
|
|
@@ -237,25 +237,25 @@ class CucumberAdapter {
|
|
|
237
237
|
const eventListener = (_a = this._cucumberReporter) === null || _a === void 0 ? void 0 : _a.eventListener;
|
|
238
238
|
Cucumber.BeforeAll(async function wdioHookBeforeFeature() {
|
|
239
239
|
const params = eventListener === null || eventListener === void 0 ? void 0 : eventListener.getHookParams();
|
|
240
|
-
await utils_1.executeHooksWithArgs('beforeFeature', config.beforeFeature, [params === null || params === void 0 ? void 0 : params.uri, params === null || params === void 0 ? void 0 : params.feature]);
|
|
240
|
+
await (0, utils_1.executeHooksWithArgs)('beforeFeature', config.beforeFeature, [params === null || params === void 0 ? void 0 : params.uri, params === null || params === void 0 ? void 0 : params.feature]);
|
|
241
241
|
});
|
|
242
242
|
Cucumber.AfterAll(async function wdioHookAfterFeature() {
|
|
243
243
|
const params = eventListener === null || eventListener === void 0 ? void 0 : eventListener.getHookParams();
|
|
244
|
-
await utils_1.executeHooksWithArgs('afterFeature', config.afterFeature, [params === null || params === void 0 ? void 0 : params.uri, params === null || params === void 0 ? void 0 : params.feature]);
|
|
244
|
+
await (0, utils_1.executeHooksWithArgs)('afterFeature', config.afterFeature, [params === null || params === void 0 ? void 0 : params.uri, params === null || params === void 0 ? void 0 : params.feature]);
|
|
245
245
|
});
|
|
246
246
|
Cucumber.Before(async function wdioHookBeforeScenario(world) {
|
|
247
|
-
await utils_1.executeHooksWithArgs('beforeScenario', config.beforeScenario, [world]);
|
|
247
|
+
await (0, utils_1.executeHooksWithArgs)('beforeScenario', config.beforeScenario, [world]);
|
|
248
248
|
});
|
|
249
249
|
Cucumber.After(async function wdioHookAfterScenario(world) {
|
|
250
|
-
await utils_1.executeHooksWithArgs('afterScenario', config.afterScenario, [world, getResultObject(world)]);
|
|
250
|
+
await (0, utils_1.executeHooksWithArgs)('afterScenario', config.afterScenario, [world, getResultObject(world)]);
|
|
251
251
|
});
|
|
252
252
|
Cucumber.BeforeStep(async function wdioHookBeforeStep() {
|
|
253
253
|
const params = eventListener === null || eventListener === void 0 ? void 0 : eventListener.getHookParams();
|
|
254
|
-
await utils_1.executeHooksWithArgs('beforeStep', config.beforeStep, [params === null || params === void 0 ? void 0 : params.step, params === null || params === void 0 ? void 0 : params.scenario]);
|
|
254
|
+
await (0, utils_1.executeHooksWithArgs)('beforeStep', config.beforeStep, [params === null || params === void 0 ? void 0 : params.step, params === null || params === void 0 ? void 0 : params.scenario]);
|
|
255
255
|
});
|
|
256
256
|
Cucumber.AfterStep(async function wdioHookAfterStep(world) {
|
|
257
257
|
const params = eventListener === null || eventListener === void 0 ? void 0 : eventListener.getHookParams();
|
|
258
|
-
await utils_1.executeHooksWithArgs('afterStep', config.afterStep, [params === null || params === void 0 ? void 0 : params.step, params === null || params === void 0 ? void 0 : params.scenario, getResultObject(world)]);
|
|
258
|
+
await (0, utils_1.executeHooksWithArgs)('afterStep', config.afterStep, [params === null || params === void 0 ? void 0 : params.step, params === null || params === void 0 ? void 0 : params.scenario, getResultObject(world)]);
|
|
259
259
|
});
|
|
260
260
|
}
|
|
261
261
|
/**
|
package/build/reporter.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { PickleFilter } from '@cucumber/cucumber';
|
|
|
4
4
|
import { Feature, Pickle, PickleStep, TestStep, TestStepResult } from '@cucumber/messages';
|
|
5
5
|
import CucumberEventListener from './cucumberEventListener';
|
|
6
6
|
import type { ReporterOptions } from './types';
|
|
7
|
+
import { ReporterScenario } from './constants';
|
|
7
8
|
declare class CucumberReporter {
|
|
8
9
|
private _options;
|
|
9
10
|
private _cid;
|
|
@@ -18,7 +19,7 @@ declare class CucumberReporter {
|
|
|
18
19
|
private _testStart?;
|
|
19
20
|
constructor(eventBroadcaster: EventEmitter, pickleFilter: PickleFilter, _options: ReporterOptions, _cid: string, _specs: string[], _reporter: EventEmitter);
|
|
20
21
|
handleBeforeFeature(uri: string, feature: Feature): void;
|
|
21
|
-
handleBeforeScenario(uri: string, feature: Feature, scenario:
|
|
22
|
+
handleBeforeScenario(uri: string, feature: Feature, scenario: ReporterScenario): void;
|
|
22
23
|
handleBeforeStep(uri: string, feature: Feature, scenario: Pickle, step: PickleStep | TestStep): void;
|
|
23
24
|
handleAfterStep(uri: string, feature: Feature, scenario: Pickle, step: PickleStep | TestStep, result: TestStepResult): void;
|
|
24
25
|
afterHook(uri: string, feature: Feature, scenario: Pickle, step: TestStep, result: TestStepResult): void;
|
package/build/reporter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAU,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAoC,MAAM,oBAAoB,CAAA;AAE5H,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,cAAM,gBAAgB;IAad,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IAfd,aAAa,EAAE,qBAAqB,CAAA;IACpC,WAAW,SAAI;IAEtB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,aAAa,CAAC,CAAM;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAM;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAM;gBAGrB,gBAAgB,EAAE,YAAY,EAC9B,YAAY,EAAE,YAAY,EAClB,QAAQ,EAAE,eAAe,EACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,YAAY;IAkBnC,mBAAmB,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAclD,oBAAoB,CAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAU,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAoC,MAAM,oBAAoB,CAAA;AAE5H,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,cAAM,gBAAgB;IAad,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IAfd,aAAa,EAAE,qBAAqB,CAAA;IACpC,WAAW,SAAI;IAEtB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,aAAa,CAAC,CAAM;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAM;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAM;gBAGrB,gBAAgB,EAAE,YAAY,EAC9B,YAAY,EAAE,YAAY,EAClB,QAAQ,EAAE,eAAe,EACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,YAAY;IAkBnC,mBAAmB,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAclD,oBAAoB,CAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,gBAAgB;IAgB9B,gBAAgB,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,GAAG,QAAQ;IAS/B,eAAe,CACX,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,GAAG,QAAQ,EAC3B,MAAM,EAAE,cAAc;IAS1B,SAAS,CACL,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,cAAc;IAkB1B,SAAS,CACL,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,cAAc;IAyF1B,mBAAmB,CACf,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc;IAiB1B,kBAAkB,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAWjD,IAAI,CAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAUjC,QAAQ,CAAE,iBAAiB,EAAE,OAAO,GAAG,MAAM;CAMhD;AAED,eAAe,gBAAgB,CAAA"}
|
package/build/reporter.js
CHANGED
|
@@ -29,7 +29,7 @@ class CucumberReporter {
|
|
|
29
29
|
handleBeforeFeature(uri, feature) {
|
|
30
30
|
this._featureStart = new Date();
|
|
31
31
|
this.emit('suite:start', {
|
|
32
|
-
uid: utils_1.getFeatureId(uri, feature),
|
|
32
|
+
uid: (0, utils_1.getFeatureId)(uri, feature),
|
|
33
33
|
title: this.getTitle(feature),
|
|
34
34
|
type: 'feature',
|
|
35
35
|
file: uri,
|
|
@@ -44,20 +44,21 @@ class CucumberReporter {
|
|
|
44
44
|
this.emit(this._scenarioLevelReport ? 'test:start' : 'suite:start', {
|
|
45
45
|
uid: scenario.id,
|
|
46
46
|
title: this.getTitle(scenario),
|
|
47
|
-
parent: utils_1.getFeatureId(uri, feature),
|
|
47
|
+
parent: (0, utils_1.getFeatureId)(uri, feature),
|
|
48
48
|
type: 'scenario',
|
|
49
49
|
file: uri,
|
|
50
|
-
tags: scenario.tags
|
|
50
|
+
tags: scenario.tags,
|
|
51
|
+
rule: scenario.rule
|
|
51
52
|
});
|
|
52
53
|
}
|
|
53
54
|
handleBeforeStep(uri, feature, scenario, step) {
|
|
54
55
|
this._testStart = new Date();
|
|
55
|
-
const type = utils_1.getStepType(step);
|
|
56
|
-
const payload = utils_1.buildStepPayload(uri, feature, scenario, step, { type });
|
|
56
|
+
const type = (0, utils_1.getStepType)(step);
|
|
57
|
+
const payload = (0, utils_1.buildStepPayload)(uri, feature, scenario, step, { type });
|
|
57
58
|
this.emit(`${type}:start`, payload);
|
|
58
59
|
}
|
|
59
60
|
handleAfterStep(uri, feature, scenario, step, result) {
|
|
60
|
-
const type = utils_1.getStepType(step);
|
|
61
|
+
const type = (0, utils_1.getStepType)(step);
|
|
61
62
|
if (type === 'hook') {
|
|
62
63
|
return this.afterHook(uri, feature, scenario, step, result);
|
|
63
64
|
}
|
|
@@ -70,7 +71,7 @@ class CucumberReporter {
|
|
|
70
71
|
error = new Error(result.message.split('\n')[0]);
|
|
71
72
|
error.stack = result.message;
|
|
72
73
|
}
|
|
73
|
-
const payload = utils_1.buildStepPayload(uri, feature, scenario, step, {
|
|
74
|
+
const payload = (0, utils_1.buildStepPayload)(uri, feature, scenario, step, {
|
|
74
75
|
type: 'hook',
|
|
75
76
|
state: result.status,
|
|
76
77
|
error,
|
|
@@ -148,14 +149,14 @@ class CucumberReporter {
|
|
|
148
149
|
file: uri
|
|
149
150
|
};
|
|
150
151
|
const payload = step
|
|
151
|
-
? utils_1.buildStepPayload(uri, feature, scenario, step, {
|
|
152
|
+
? (0, utils_1.buildStepPayload)(uri, feature, scenario, step, {
|
|
152
153
|
type: 'step',
|
|
153
154
|
...common
|
|
154
155
|
})
|
|
155
156
|
: {
|
|
156
157
|
type: 'scenario',
|
|
157
158
|
uid: scenario.id,
|
|
158
|
-
parent: utils_1.getFeatureId(uri, feature),
|
|
159
|
+
parent: (0, utils_1.getFeatureId)(uri, feature),
|
|
159
160
|
tags: scenario.tags,
|
|
160
161
|
...common
|
|
161
162
|
};
|
|
@@ -169,7 +170,7 @@ class CucumberReporter {
|
|
|
169
170
|
this.emit('suite:end', {
|
|
170
171
|
uid: scenario.id,
|
|
171
172
|
title: this.getTitle(scenario),
|
|
172
|
-
parent: utils_1.getFeatureId(uri, feature),
|
|
173
|
+
parent: (0, utils_1.getFeatureId)(uri, feature),
|
|
173
174
|
type: 'scenario',
|
|
174
175
|
file: uri,
|
|
175
176
|
duration: Date.now() - ((_a = this._scenarioStart) === null || _a === void 0 ? void 0 : _a.getTime()),
|
|
@@ -179,7 +180,7 @@ class CucumberReporter {
|
|
|
179
180
|
handleAfterFeature(uri, feature) {
|
|
180
181
|
var _a;
|
|
181
182
|
this.emit('suite:end', {
|
|
182
|
-
uid: utils_1.getFeatureId(uri, feature),
|
|
183
|
+
uid: (0, utils_1.getFeatureId)(uri, feature),
|
|
183
184
|
title: this.getTitle(feature),
|
|
184
185
|
type: 'feature',
|
|
185
186
|
file: uri,
|
|
@@ -188,7 +189,7 @@ class CucumberReporter {
|
|
|
188
189
|
});
|
|
189
190
|
}
|
|
190
191
|
emit(event, payload) {
|
|
191
|
-
let message = utils_1.formatMessage({ payload });
|
|
192
|
+
let message = (0, utils_1.formatMessage)({ payload });
|
|
192
193
|
message.cid = this._cid;
|
|
193
194
|
message.specs = this._specs;
|
|
194
195
|
message.uid = payload.uid;
|
package/build/utils.d.ts
CHANGED
|
@@ -75,6 +75,12 @@ export declare function setUserHookNames(options: typeof supportCodeLibraryBuild
|
|
|
75
75
|
* @param {*} testCase
|
|
76
76
|
*/
|
|
77
77
|
export declare function filterPickles(capabilities: Capabilities.RemoteCapability, pickle?: Pickle): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* The reporters need to have the rule.
|
|
80
|
+
* They are NOT available on the scenario, they ARE on the feature.
|
|
81
|
+
* This will add them to it
|
|
82
|
+
*/
|
|
83
|
+
export declare function getRule(feature: Feature, scenarioId: string): string | undefined;
|
|
78
84
|
/**
|
|
79
85
|
* The reporters need to have the keywords, like `Given|When|Then`. They are NOT available
|
|
80
86
|
* on the scenario, they ARE on the feature.
|
package/build/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAuB,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACrH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAkC,YAAY,EAAE,MAAM,aAAa,CAAA;AAK1E;;GAEG;AACH,wBAAgB,kBAAkB,CAAE,EAAE,QAAQ,EAAE,EAAE,UAAU;;;;cAoB3D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAE,EAAE,OAAY,EAAE,EAAE,GAAG,OAgBnD;AAED,aAAK,QAAQ;IACT,IAAI,SAAS;IACb,IAAI,SAAS;CAChB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAE,IAAI,EAAE,QAAQ,YAE1C;AAED,wBAAgB,YAAY,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,UAE1D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAE,OAAO,oBAAY,EAAE,IAAI,oBAAY,EAAE,IAAI,EAAC,MAAM,UAGnF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE;IACJ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAAA;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;;;;;;;;;;;;;UAPS,MAAM;;;;;EAqBnB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAE,OAAO,EAAE,OAAO,yBAAyB,QAe1E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAE,YAAY,EAAE,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,MAAM,WA+B1F;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,kBA4BvE"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAuB,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACrH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAkC,YAAY,EAAE,MAAM,aAAa,CAAA;AAK1E;;GAEG;AACH,wBAAgB,kBAAkB,CAAE,EAAE,QAAQ,EAAE,EAAE,UAAU;;;;cAoB3D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAE,EAAE,OAAY,EAAE,EAAE,GAAG,OAgBnD;AAED,aAAK,QAAQ;IACT,IAAI,SAAS;IACb,IAAI,SAAS;CAChB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAE,IAAI,EAAE,QAAQ,YAE1C;AAED,wBAAgB,YAAY,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,UAE1D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAE,OAAO,oBAAY,EAAE,IAAI,oBAAY,EAAE,IAAI,EAAC,MAAM,UAGnF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE;IACJ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAAA;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;;;;;;;;;;;;;UAPS,MAAM;;;;;EAqBnB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAE,OAAO,EAAE,OAAO,yBAAyB,QAe1E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAE,YAAY,EAAE,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,MAAM,WA+B1F;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAS3D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,kBA4BvE"}
|
package/build/utils.js
CHANGED
|
@@ -3,12 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.addKeywordToStep = exports.filterPickles = exports.setUserHookNames = exports.buildStepPayload = exports.getTestStepTitle = exports.getFeatureId = exports.getStepType = exports.formatMessage = exports.createStepArgument = void 0;
|
|
6
|
+
exports.addKeywordToStep = exports.getRule = exports.filterPickles = exports.setUserHookNames = exports.buildStepPayload = exports.getTestStepTitle = exports.getFeatureId = exports.getStepType = exports.formatMessage = exports.createStepArgument = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const utils_1 = require("@wdio/utils");
|
|
9
9
|
const logger_1 = __importDefault(require("@wdio/logger"));
|
|
10
10
|
const constants_1 = require("./constants");
|
|
11
|
-
const log = logger_1.default('@wdio/cucumber-framework:utils');
|
|
11
|
+
const log = (0, logger_1.default)('@wdio/cucumber-framework:utils');
|
|
12
12
|
/**
|
|
13
13
|
* NOTE: this function is exported for testing only
|
|
14
14
|
*/
|
|
@@ -115,7 +115,7 @@ function setUserHookNames(options) {
|
|
|
115
115
|
const userHookFn = function (...args) {
|
|
116
116
|
return hookFn.apply(this, args);
|
|
117
117
|
};
|
|
118
|
-
testRunHookDefinition.code = (utils_1.isFunctionAsync(hookFn)) ? userHookAsyncFn : userHookFn;
|
|
118
|
+
testRunHookDefinition.code = ((0, utils_1.isFunctionAsync)(hookFn)) ? userHookAsyncFn : userHookFn;
|
|
119
119
|
}
|
|
120
120
|
});
|
|
121
121
|
});
|
|
@@ -144,7 +144,7 @@ function filterPickles(capabilities, pickle) {
|
|
|
144
144
|
try {
|
|
145
145
|
acc[splitItem.substring(0, pos)] = eval(splitItem.substring(pos + 1));
|
|
146
146
|
}
|
|
147
|
-
catch (
|
|
147
|
+
catch (err) {
|
|
148
148
|
log.error(`Couldn't use tag "${splitItem}" for filtering because it is malformed`);
|
|
149
149
|
}
|
|
150
150
|
}
|
|
@@ -158,6 +158,24 @@ function filterPickles(capabilities, pickle) {
|
|
|
158
158
|
.every((key) => match(capabilities[key], filter[key]))));
|
|
159
159
|
}
|
|
160
160
|
exports.filterPickles = filterPickles;
|
|
161
|
+
/**
|
|
162
|
+
* The reporters need to have the rule.
|
|
163
|
+
* They are NOT available on the scenario, they ARE on the feature.
|
|
164
|
+
* This will add them to it
|
|
165
|
+
*/
|
|
166
|
+
function getRule(feature, scenarioId) {
|
|
167
|
+
var _a, _b;
|
|
168
|
+
const rules = (_a = feature.children) === null || _a === void 0 ? void 0 : _a.filter((child) => Object.keys(child)[0] === 'rule');
|
|
169
|
+
const rule = rules.find((rule) => {
|
|
170
|
+
var _a, _b;
|
|
171
|
+
let scenarioRule = (_b = (_a = rule.rule) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.find((child) => { var _a; return ((_a = child.scenario) === null || _a === void 0 ? void 0 : _a.id) === scenarioId; });
|
|
172
|
+
if (scenarioRule) {
|
|
173
|
+
return rule;
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
return (_b = rule === null || rule === void 0 ? void 0 : rule.rule) === null || _b === void 0 ? void 0 : _b.name;
|
|
177
|
+
}
|
|
178
|
+
exports.getRule = getRule;
|
|
161
179
|
/**
|
|
162
180
|
* The reporters need to have the keywords, like `Given|When|Then`. They are NOT available
|
|
163
181
|
* on the scenario, they ARE on the feature.
|
|
@@ -173,10 +191,10 @@ function addKeywordToStep(steps, feature) {
|
|
|
173
191
|
// See https://github.com/cucumber/cucumber/blob/master/messages/messages.md
|
|
174
192
|
const astNodeId = step.astNodeIds[0];
|
|
175
193
|
const rules = feature.children.filter((child) => Object.keys(child)[0] === 'rule');
|
|
176
|
-
|
|
194
|
+
let featureChildren = feature.children.filter((child) => Object.keys(child)[0] !== 'rule');
|
|
177
195
|
const rulesChildrens = rules.map((child) => { var _a; return (_a = child.rule) === null || _a === void 0 ? void 0 : _a.children; }).flat();
|
|
178
|
-
|
|
179
|
-
|
|
196
|
+
featureChildren = featureChildren.concat(rulesChildrens);
|
|
197
|
+
featureChildren.find((child) =>
|
|
180
198
|
// @ts-ignore
|
|
181
199
|
child[Object.keys(child)[0]].steps.find((featureScenarioStep) => {
|
|
182
200
|
if (featureScenarioStep.id === astNodeId.toString()) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wdio/cucumber-framework",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.16.3",
|
|
4
4
|
"description": "A WebdriverIO plugin. Adapter for Cucumber.js testing framework.",
|
|
5
5
|
"author": "Christian Bromann <christian@saucelabs.com>",
|
|
6
6
|
"homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-cucumber-framework",
|
|
@@ -23,15 +23,15 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@cucumber/cucumber": "7.3.1",
|
|
26
|
-
"@cucumber/gherkin": "
|
|
26
|
+
"@cucumber/gherkin": "22.0.0",
|
|
27
27
|
"@cucumber/gherkin-streams": "^3.0.0",
|
|
28
28
|
"@cucumber/messages": "17.1.1",
|
|
29
29
|
"@types/is-glob": "^4.0.1",
|
|
30
30
|
"@types/long": "^4.0.1",
|
|
31
31
|
"@types/mockery": "^1.4.29",
|
|
32
|
-
"@wdio/logger": "7.
|
|
33
|
-
"@wdio/types": "7.
|
|
34
|
-
"@wdio/utils": "7.
|
|
32
|
+
"@wdio/logger": "7.16.0",
|
|
33
|
+
"@wdio/types": "7.16.3",
|
|
34
|
+
"@wdio/utils": "7.16.3",
|
|
35
35
|
"expect-webdriverio": "^3.0.0",
|
|
36
36
|
"glob": "^7.1.2",
|
|
37
37
|
"is-glob": "^4.0.0",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
47
|
"types": "./build/index.d.ts",
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "23e2af933060e829f03d7518089c377571c654e3"
|
|
49
49
|
}
|