@wdio/cucumber-framework 8.11.0 → 8.12.1
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/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +5 -4
- package/build/reporter.d.ts.map +1 -1
- package/build/reporter.js +3 -0
- package/build/utils.d.ts +1 -5
- package/build/utils.d.ts.map +1 -1
- package/build/utils.js +5 -30
- package/package.json +3 -3
package/build/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ declare class CucumberAdapter {
|
|
|
22
22
|
private _eventDataCollector;
|
|
23
23
|
private _pickleFilter;
|
|
24
24
|
private getHookParams?;
|
|
25
|
+
private gherkinParser;
|
|
25
26
|
constructor(_cid: string, _config: Options.Testrunner, _specs: string[], _capabilities: Capabilities.RemoteCapability, _reporter: EventEmitter);
|
|
26
27
|
readFiles(filePaths?: Options.Testrunner['specs']): (string | string[])[];
|
|
27
28
|
getGherkinDocuments(files?: Options.Testrunner['specs']): (GherkinDocument | GherkinDocument[])[];
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAO1C,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAU9C,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAA2C,MAAM,oBAAoB,CAAA;AACrG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAc,MAAM,aAAa,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,qBAAqB,IAAI,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAE9H,QAAA,MACI,KAAK,8lBACL,QAAQ,sKACR,SAAS,8lBACT,MAAM,8lBACN,SAAS,sKACT,UAAU,8lBAEV,KAAK,sFACL,IAAI,sFACJ,IAAI,sFAEJ,SAAS,6BACT,KAAK,yBAML,iBAAiB,kCACjB,4BAA4B,0BAC5B,mBAAmB,qBACnB,mBAAmB,2HACnB,UAAU,oFAIF,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAO1C,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAU9C,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAA2C,MAAM,oBAAoB,CAAA;AACrG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAc,MAAM,aAAa,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,qBAAqB,IAAI,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAE9H,QAAA,MACI,KAAK,8lBACL,QAAQ,sKACR,SAAS,8lBACT,MAAM,8lBACN,SAAS,sKACT,UAAU,8lBAEV,KAAK,sFACL,IAAI,sFACJ,IAAI,sFAEJ,SAAS,6BACT,KAAK,yBAML,iBAAiB,kCACjB,4BAA4B,0BAC5B,mBAAmB,qBACnB,mBAAmB,2HACnB,UAAU,oFAIF,CAAA;AAuBZ,cAAM,eAAe;IAcb,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IAjBrB,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,CAA2B;IACtD,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,aAAa,CAAC,CAAU;IAChC,OAAO,CAAC,aAAa,CAAqC;gBAG9C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,UAAU,EAC3B,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,YAAY,CAAC,gBAAgB,EAC5C,SAAS,EAAE,YAAY;IAoDnC,SAAS,CAAC,SAAS,GAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAM,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE;IAQ7E,mBAAmB,CAAC,KAAK,GAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAM,GAAG,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE;IAoBrG,0BAA0B,CACtB,KAAK,GAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAM,EACvC,aAAa,SAAiD,GAC/D,OAAO,KAAK;IA+BT,IAAI;IAwCV,QAAQ;IAIF,GAAG;IAkET;;;;;;;;OAQG;IACH,uBAAuB;IAYvB,aAAa;IAUP,aAAa;IAgCnB;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU;IAkDvC;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU;IAwBpC;;;;;;;;;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,WAAW,GAAG,EAAE;CAkBvD;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,SAAS,EACT,mBAAmB,EACnB,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,IAAI,EACJ,IAAI,EACJ,KAAK,EACR,CAAA;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,WAAW,CAAC;QAClB,UAAU,YAAa,SAAQ,eAAe;SAAI;QAClD,UAAU,qBAAsB,SAAQ,2BAA2B;SAAI;KAC1E;CACJ"}
|
package/build/index.js
CHANGED
|
@@ -17,9 +17,6 @@ import { DEFAULT_OPTS } from './constants.js';
|
|
|
17
17
|
import { setUserHookNames, shouldRun } from './utils.js';
|
|
18
18
|
const { After, AfterAll, AfterStep, Before, BeforeAll, BeforeStep, Given, Then, When, DataTable, World, PickleFilter, Runtime, Status, setDefaultTimeout, setDefinitionFunctionWrapper, setWorldConstructor, defineParameterType, defineStep, parseGherkinMessageStream, supportCodeLibraryBuilder, } = Cucumber;
|
|
19
19
|
const uuidFn = IdGenerator.uuid();
|
|
20
|
-
const builder = new Gherkin.AstBuilder(uuidFn);
|
|
21
|
-
const matcher = new Gherkin.GherkinClassicTokenMatcher();
|
|
22
|
-
const gherkinParser = new Gherkin.Parser(builder, matcher);
|
|
23
20
|
const require = createRequire(import.meta.url);
|
|
24
21
|
// EventDataCollector is not exported from main package
|
|
25
22
|
// Cannot import from path mapping without require
|
|
@@ -50,6 +47,7 @@ class CucumberAdapter {
|
|
|
50
47
|
_eventDataCollector;
|
|
51
48
|
_pickleFilter;
|
|
52
49
|
getHookParams;
|
|
50
|
+
gherkinParser;
|
|
53
51
|
constructor(_cid, _config, _specs, _capabilities, _reporter) {
|
|
54
52
|
this._cid = _cid;
|
|
55
53
|
this._config = _config;
|
|
@@ -67,6 +65,9 @@ class CucumberAdapter {
|
|
|
67
65
|
this._cucumberFeaturesWithLineNumbers = this._config.cucumberFeaturesWithLineNumbers || [];
|
|
68
66
|
this._eventBroadcaster = new EventEmitter();
|
|
69
67
|
this._eventDataCollector = new EventDataCollector(this._eventBroadcaster);
|
|
68
|
+
const builder = new Gherkin.AstBuilder(uuidFn);
|
|
69
|
+
const matcher = new Gherkin.GherkinClassicTokenMatcher(this._config.cucumberOpts?.featureDefaultLanguage || 'en');
|
|
70
|
+
this.gherkinParser = new Gherkin.Parser(builder, matcher);
|
|
70
71
|
this._specs = this._specs.map((spec) => (
|
|
71
72
|
/**
|
|
72
73
|
* as Cucumber doesn't support file:// formats yet we have to
|
|
@@ -105,7 +106,7 @@ class CucumberAdapter {
|
|
|
105
106
|
const docs = [specContent]
|
|
106
107
|
.flat(1)
|
|
107
108
|
.map((content, ctIdx) => ({
|
|
108
|
-
...gherkinParser.parse(content),
|
|
109
|
+
...this.gherkinParser.parse(content),
|
|
109
110
|
uri: Array.isArray(specContent)
|
|
110
111
|
? files[idx][ctIdx]
|
|
111
112
|
: files[idx],
|
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,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAoC,MAAM,oBAAoB,CAAA;AAEjI,OAAO,qBAAqB,MAAM,4BAA4B,CAAA;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAa7B,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,CAAC,OAAO,YAAY,CAAC,EACvC,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;
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAoC,MAAM,oBAAoB,CAAA;AAEjI,OAAO,qBAAqB,MAAM,4BAA4B,CAAA;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAa7B,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,CAAC,OAAO,YAAY,CAAC,EACvC,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;IAsB1B,SAAS,CACL,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,cAAc;IA+F1B,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;CAQhD"}
|
package/build/reporter.js
CHANGED
|
@@ -75,6 +75,9 @@ export default class CucumberReporter {
|
|
|
75
75
|
error = new Error(result.message.split('\n')[0]);
|
|
76
76
|
error.stack = result.message;
|
|
77
77
|
}
|
|
78
|
+
if (result.status === Status.FAILED) {
|
|
79
|
+
this.failedCount++;
|
|
80
|
+
}
|
|
78
81
|
const payload = buildStepPayload(uri, feature, scenario, step, {
|
|
79
82
|
type: 'hook',
|
|
80
83
|
state: result.status,
|
package/build/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type TagExpressionParser from '@cucumber/tag-expressions';
|
|
2
2
|
import type { supportCodeLibraryBuilder } from '@cucumber/cucumber';
|
|
3
|
-
import type { PickleStep, TestStep, Feature, Pickle, TestStepResultStatus, GherkinDocument
|
|
3
|
+
import type { PickleStep, TestStep, Feature, Pickle, TestStepResultStatus, GherkinDocument } from '@cucumber/messages';
|
|
4
4
|
import type { Capabilities } from '@wdio/types';
|
|
5
5
|
import type { ReporterStep } from './constants.js';
|
|
6
6
|
/**
|
|
@@ -88,10 +88,6 @@ export declare function getRule(feature: Feature, scenarioId: string): string |
|
|
|
88
88
|
* This will aad them
|
|
89
89
|
*/
|
|
90
90
|
export declare function addKeywordToStep(steps: ReporterStep[], feature: Feature): ReporterStep[];
|
|
91
|
-
export declare function hasTags(msg: GherkinDocument | FeatureChild | RuleChild, { tagParser, lineOnFile }: {
|
|
92
|
-
tagParser: ReturnType<typeof TagExpressionParser>;
|
|
93
|
-
lineOnFile: number | undefined;
|
|
94
|
-
}): boolean;
|
|
95
91
|
export declare function shouldRun(doc: GherkinDocument, tagParser: ReturnType<typeof TagExpressionParser>): boolean;
|
|
96
92
|
export {};
|
|
97
93
|
//# sourceMappingURL=utils.d.ts.map
|
package/build/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,mBAAmB,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,mBAAmB,MAAM,2BAA2B,CAAA;AAKhE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,KAAK,EAGR,UAAU,EACV,QAAQ,EACR,OAAO,EACP,MAAM,EACN,oBAAoB,EACpB,eAAe,EAClB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAKlD;;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;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,WAShG"}
|
package/build/utils.js
CHANGED
|
@@ -2,6 +2,8 @@ import path from 'node:path';
|
|
|
2
2
|
import logger from '@wdio/logger';
|
|
3
3
|
import { isFunctionAsync } from '@wdio/utils';
|
|
4
4
|
import { CUCUMBER_HOOK_DEFINITION_TYPES } from './constants.js';
|
|
5
|
+
import { compile } from '@cucumber/gherkin';
|
|
6
|
+
import { IdGenerator } from '@cucumber/messages';
|
|
5
7
|
const log = logger('@wdio/cucumber-framework:utils');
|
|
6
8
|
/**
|
|
7
9
|
* NOTE: this function is exported for testing only
|
|
@@ -185,38 +187,11 @@ export function addKeywordToStep(steps, feature) {
|
|
|
185
187
|
return step;
|
|
186
188
|
});
|
|
187
189
|
}
|
|
188
|
-
export function hasTags(msg, { tagParser, lineOnFile }) {
|
|
189
|
-
const type = (msg.feature
|
|
190
|
-
?? msg.rule
|
|
191
|
-
?? msg.scenario);
|
|
192
|
-
if (type) {
|
|
193
|
-
const matches = tagParser.evaluate(type.tags.map(t => t.name));
|
|
194
|
-
return lineOnFile
|
|
195
|
-
// Evaluate only specific line
|
|
196
|
-
? type.location.line === lineOnFile && matches
|
|
197
|
-
: matches;
|
|
198
|
-
}
|
|
199
|
-
return false;
|
|
200
|
-
}
|
|
201
190
|
export function shouldRun(doc, tagParser) {
|
|
202
191
|
if (!doc.feature) {
|
|
203
192
|
return false;
|
|
204
193
|
}
|
|
205
|
-
const
|
|
206
|
-
const
|
|
207
|
-
|
|
208
|
-
: undefined;
|
|
209
|
-
return (
|
|
210
|
-
// Check if Feature has matching tags
|
|
211
|
-
hasTags(doc, { tagParser, lineOnFile })
|
|
212
|
-
// Check if some root Scenarios have matching tags
|
|
213
|
-
|| doc.feature.children.filter(c => c.scenario).some(child => hasTags(child, { tagParser, lineOnFile }))
|
|
214
|
-
// Check if some Rules have matching tags
|
|
215
|
-
|| doc.feature.children.filter(c => c.rule).some(child => hasTags(child, { tagParser, lineOnFile }))
|
|
216
|
-
// Check if some Scenarios within Rules have matching tags
|
|
217
|
-
|| doc.feature.children
|
|
218
|
-
.filter(c => c.rule)
|
|
219
|
-
.map(c => c.rule.children.filter(c => c.scenario))
|
|
220
|
-
.flat(1)
|
|
221
|
-
.some(child => hasTags(child, { tagParser, lineOnFile })));
|
|
194
|
+
const pickles = compile(doc, '', IdGenerator.uuid());
|
|
195
|
+
const tags = pickles.map((pickle) => pickle.tags.map((tag) => tag.name));
|
|
196
|
+
return tags.some((tag) => tagParser.evaluate(tag));
|
|
222
197
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wdio/cucumber-framework",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.12.1",
|
|
4
4
|
"description": "A WebdriverIO plugin. Adapter for Cucumber.js testing framework.",
|
|
5
5
|
"author": "Christian Bromann <mail@bromann.dev>",
|
|
6
6
|
"homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-cucumber-framework",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@types/node": "^20.1.0",
|
|
47
47
|
"@wdio/logger": "8.11.0",
|
|
48
48
|
"@wdio/types": "8.10.4",
|
|
49
|
-
"@wdio/utils": "8.
|
|
49
|
+
"@wdio/utils": "8.12.1",
|
|
50
50
|
"glob": "^10.2.2",
|
|
51
51
|
"is-glob": "^4.0.0",
|
|
52
52
|
"mockery": "^2.1.0"
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"publishConfig": {
|
|
59
59
|
"access": "public"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "be1e7959a7599e2afe33e60856be9a7ca16eb3aa"
|
|
62
62
|
}
|