@wdio/cucumber-framework 7.16.0 → 7.16.5
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/README.md +1 -11
- package/build/constants.d.ts +8 -1
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +1 -0
- package/build/cucumberEventListener.d.ts +1 -0
- package/build/cucumberEventListener.d.ts.map +1 -1
- package/build/cucumberEventListener.js +11 -8
- package/build/index.d.ts +8 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +5 -5
- package/build/reporter.d.ts +2 -1
- package/build/reporter.d.ts.map +1 -1
- package/build/reporter.js +2 -1
- package/build/types.d.ts +29 -15
- package/build/types.d.ts.map +1 -1
- package/build/utils.d.ts +6 -0
- package/build/utils.d.ts.map +1 -1
- package/build/utils.js +22 -4
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -5,17 +5,7 @@ WDIO Cucumber Framework Adapter
|
|
|
5
5
|
|
|
6
6
|
## Installation
|
|
7
7
|
|
|
8
|
-
The easiest way is to keep `@wdio/cucumber-framework` as a devDependency in your `package.json
|
|
9
|
-
|
|
10
|
-
```json
|
|
11
|
-
{
|
|
12
|
-
"devDependencies": {
|
|
13
|
-
"@wdio/cucumber-framework": "^6.3.6"
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
You can simple do it by:
|
|
8
|
+
The easiest way is to keep `@wdio/cucumber-framework` as a devDependency in your `package.json`, via:
|
|
19
9
|
|
|
20
10
|
```bash
|
|
21
11
|
npm install @wdio/cucumber-framework --save-dev
|
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,eAmB1B,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"}
|
package/build/constants.js
CHANGED
|
@@ -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;IAuChF,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"}
|
|
@@ -17,11 +17,11 @@ 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 = [];
|
|
23
24
|
eventBroadcaster.on('envelope', (envelope) => {
|
|
24
|
-
var _a;
|
|
25
25
|
if (envelope.gherkinDocument) {
|
|
26
26
|
this.onGherkinDocument(envelope.gherkinDocument);
|
|
27
27
|
}
|
|
@@ -42,16 +42,16 @@ class CucumberEventListener extends events_1.EventEmitter {
|
|
|
42
42
|
this.onTestStepStarted(envelope.testStepStarted);
|
|
43
43
|
}
|
|
44
44
|
else if (envelope.testStepFinished) {
|
|
45
|
+
results.push(envelope.testStepFinished.testStepResult);
|
|
46
|
+
this.onTestStepFinished(envelope.testStepFinished);
|
|
47
|
+
}
|
|
48
|
+
else if (envelope.testCaseFinished) {
|
|
45
49
|
/**
|
|
46
50
|
* only store result if step isn't retried
|
|
47
51
|
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
results.push(envelope.testStepFinished.testStepResult);
|
|
52
|
+
if (envelope.testCaseFinished.willBeRetried) {
|
|
53
|
+
return log.debug(`test case with id ${envelope.testCaseFinished.testCaseStartedId} will be retried, ignoring result`);
|
|
51
54
|
}
|
|
52
|
-
this.onTestStepFinished(envelope.testStepFinished);
|
|
53
|
-
}
|
|
54
|
-
else if (envelope.testCaseFinished) {
|
|
55
55
|
this.onTestCaseFinished(results);
|
|
56
56
|
}
|
|
57
57
|
else if (envelope.testRunFinished) {
|
|
@@ -154,6 +154,7 @@ class CucumberEventListener extends events_1.EventEmitter {
|
|
|
154
154
|
onPickleAccepted(pickleEvent) {
|
|
155
155
|
const id = this._suiteMap.size.toString();
|
|
156
156
|
this._suiteMap.set(pickleEvent.id, id);
|
|
157
|
+
this._pickleMap.set(id, pickleEvent.astNodeIds[0]);
|
|
157
158
|
const scenario = { ...pickleEvent, id };
|
|
158
159
|
this._scenarios.push(scenario);
|
|
159
160
|
}
|
|
@@ -282,7 +283,9 @@ class CucumberEventListener extends events_1.EventEmitter {
|
|
|
282
283
|
scenario.steps = (0, utils_1.addKeywordToStep)(scenario.steps, feature);
|
|
283
284
|
}
|
|
284
285
|
this._currentPickle = { uri, feature, scenario };
|
|
285
|
-
|
|
286
|
+
let reporterScenario = scenario;
|
|
287
|
+
reporterScenario.rule = (0, utils_1.getRule)(doc === null || doc === void 0 ? void 0 : doc.feature, this._pickleMap.get(scenario.id));
|
|
288
|
+
this.emit('before-scenario', scenario.uri, doc === null || doc === void 0 ? void 0 : doc.feature, reporterScenario);
|
|
286
289
|
}
|
|
287
290
|
// {
|
|
288
291
|
// "testStepStarted": {
|
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;
|
|
@@ -43,7 +45,7 @@ declare class CucumberAdapter {
|
|
|
43
45
|
requiredFiles(): string[];
|
|
44
46
|
loadSpecFiles(): void;
|
|
45
47
|
/**
|
|
46
|
-
* set `
|
|
48
|
+
* set `beforeFeature`, `afterFeature`, `beforeScenario`, `afterScenario`, 'beforeStep', 'afterStep'
|
|
47
49
|
* @param {object} config config
|
|
48
50
|
*/
|
|
49
51
|
addWdioHooks(config: Options.Testrunner): void;
|
|
@@ -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
|
@@ -229,7 +229,7 @@ class CucumberAdapter {
|
|
|
229
229
|
mockery_1.default.disable();
|
|
230
230
|
}
|
|
231
231
|
/**
|
|
232
|
-
* set `
|
|
232
|
+
* set `beforeFeature`, `afterFeature`, `beforeScenario`, `afterScenario`, 'beforeStep', 'afterStep'
|
|
233
233
|
* @param {object} config config
|
|
234
234
|
*/
|
|
235
235
|
addWdioHooks(config) {
|
|
@@ -244,18 +244,18 @@ class CucumberAdapter {
|
|
|
244
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 (0, utils_1.executeHooksWithArgs)('beforeScenario', config.beforeScenario, [world]);
|
|
247
|
+
await (0, utils_1.executeHooksWithArgs)('beforeScenario', config.beforeScenario, [world, this]);
|
|
248
248
|
});
|
|
249
249
|
Cucumber.After(async function wdioHookAfterScenario(world) {
|
|
250
|
-
await (0, utils_1.executeHooksWithArgs)('afterScenario', config.afterScenario, [world, getResultObject(world)]);
|
|
250
|
+
await (0, utils_1.executeHooksWithArgs)('afterScenario', config.afterScenario, [world, getResultObject(world), this]);
|
|
251
251
|
});
|
|
252
252
|
Cucumber.BeforeStep(async function wdioHookBeforeStep() {
|
|
253
253
|
const params = eventListener === null || eventListener === void 0 ? void 0 : eventListener.getHookParams();
|
|
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]);
|
|
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, this]);
|
|
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 (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)]);
|
|
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), this]);
|
|
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
package/build/types.d.ts
CHANGED
|
@@ -84,6 +84,16 @@ export interface CucumberOptions {
|
|
|
84
84
|
* @default 30000
|
|
85
85
|
*/
|
|
86
86
|
timeout?: number;
|
|
87
|
+
/**
|
|
88
|
+
* Specify the number of times to retry failing test cases.
|
|
89
|
+
* @default 0
|
|
90
|
+
*/
|
|
91
|
+
retry: number;
|
|
92
|
+
/**
|
|
93
|
+
* Only retries the features or scenarios with tags matching the expression (repeatable).
|
|
94
|
+
* This option requires 'retry' to be specified.
|
|
95
|
+
*/
|
|
96
|
+
retryTagFilter?: RegExp | string;
|
|
87
97
|
/**
|
|
88
98
|
* Enable this to make webdriver.io behave as if scenarios
|
|
89
99
|
* and not steps were the tests.
|
|
@@ -136,37 +146,41 @@ export interface HookFunctionExtension {
|
|
|
136
146
|
/**
|
|
137
147
|
*
|
|
138
148
|
* Runs before a Cucumber Scenario.
|
|
139
|
-
* @param world
|
|
149
|
+
* @param world world object containing information on pickle and test step
|
|
150
|
+
* @param context Cucumber World object
|
|
140
151
|
*/
|
|
141
|
-
beforeScenario?(world: ITestCaseHookParameter): void;
|
|
152
|
+
beforeScenario?(world: ITestCaseHookParameter, context: Object): void;
|
|
142
153
|
/**
|
|
143
154
|
*
|
|
144
155
|
* Runs before a Cucumber Step.
|
|
145
156
|
* @param step step data
|
|
146
157
|
* @param scenario scenario data
|
|
158
|
+
* @param context Cucumber World object
|
|
147
159
|
*/
|
|
148
|
-
beforeStep?(step: PickleStep, scenario: Pickle): void;
|
|
160
|
+
beforeStep?(step: PickleStep, scenario: Pickle, context: Object): void;
|
|
149
161
|
/**
|
|
150
162
|
*
|
|
151
163
|
* Runs after a Cucumber Step.
|
|
152
|
-
* @param step
|
|
153
|
-
* @param scenario
|
|
154
|
-
* @param result
|
|
164
|
+
* @param step step data
|
|
165
|
+
* @param scenario scenario data
|
|
166
|
+
* @param result result object containing
|
|
155
167
|
* @param result.passed true if scenario has passed
|
|
156
168
|
* @param result.error error stack if scenario failed
|
|
157
169
|
* @param result.duration duration of scenario in milliseconds
|
|
170
|
+
* @param context Cucumber World object
|
|
158
171
|
*/
|
|
159
|
-
afterStep?(step: PickleStep, scenario: Pickle, result: Frameworks.PickleResult): void;
|
|
172
|
+
afterStep?(step: PickleStep, scenario: Pickle, result: Frameworks.PickleResult, context: Object): void;
|
|
160
173
|
/**
|
|
161
174
|
*
|
|
162
|
-
* Runs
|
|
163
|
-
* @param world
|
|
164
|
-
* @param result
|
|
165
|
-
* @param result.passed
|
|
166
|
-
* @param result.error
|
|
167
|
-
* @param result.duration
|
|
168
|
-
|
|
169
|
-
|
|
175
|
+
* Runs after a Cucumber Scenario.
|
|
176
|
+
* @param world world object containing information on pickle and test step
|
|
177
|
+
* @param result result object containing
|
|
178
|
+
* @param result.passed true if scenario has passed
|
|
179
|
+
* @param result.error error stack if scenario failed
|
|
180
|
+
* @param result.duration duration of scenario in milliseconds
|
|
181
|
+
* @param context Cucumber World object
|
|
182
|
+
*/
|
|
183
|
+
afterScenario?(world: ITestCaseHookParameter, result: Frameworks.PickleResult, context: Object): void;
|
|
170
184
|
/**
|
|
171
185
|
*
|
|
172
186
|
* Runs after a Cucumber Feature.
|
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2DAA2D,CAAA;AAEvG,MAAM,WAAW,eAAe;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,GAAC,MAAM,CAAC,EAAE,CAAA;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAA;IAC3C,0BAA0B,EAAE,OAAO,CAAA;IACnC,wBAAwB,EAAE,OAAO,CAAA;IACjC,WAAW,EAAE,OAAO,CAAA;IACpB,qBAAqB,EAAE,OAAO,CAAA;CACjC;AAED,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACvB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAA;CAC/B;AAED,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,qBAAqB;IAClC;;;;;OAKG;IACH,aAAa,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEpD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2DAA2D,CAAA;AAEvG,MAAM,WAAW,eAAe;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,GAAC,MAAM,CAAC,EAAE,CAAA;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAA;IAC3C,0BAA0B,EAAE,OAAO,CAAA;IACnC,wBAAwB,EAAE,OAAO,CAAA;IACjC,WAAW,EAAE,OAAO,CAAA;IACpB,qBAAqB,EAAE,OAAO,CAAA;CACjC;AAED,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACvB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAA;CAC/B;AAED,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,qBAAqB;IAClC;;;;;OAKG;IACH,aAAa,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEpD;;;;;OAKG;IACH,cAAc,CAAC,CAAC,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtE;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvE;;;;;;;;;;OAUG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvG;;;;;;;;;OASG;IACH,aAAa,CAAC,CAAC,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtG;;;;;OAKG;IACH,YAAY,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACtD"}
|
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,7 +3,7 @@ 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"));
|
|
@@ -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.16.
|
|
3
|
+
"version": "7.16.5",
|
|
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",
|
|
@@ -22,16 +22,16 @@
|
|
|
22
22
|
"url": "https://github.com/webdriverio/webdriverio/issues"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@cucumber/cucumber": "
|
|
25
|
+
"@cucumber/cucumber": "8.0.0-rc.1",
|
|
26
26
|
"@cucumber/gherkin": "22.0.0",
|
|
27
|
-
"@cucumber/gherkin-streams": "^
|
|
27
|
+
"@cucumber/gherkin-streams": "^4.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
32
|
"@wdio/logger": "7.16.0",
|
|
33
|
-
"@wdio/types": "7.16.
|
|
34
|
-
"@wdio/utils": "7.16.
|
|
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": "18d21befbae2b65b11765b73f9926e724cacad56"
|
|
49
49
|
}
|