@wdio/cucumber-framework 8.16.10 → 8.16.12
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 +0 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +11 -30
- package/build/utils.d.ts +1 -3
- package/build/utils.d.ts.map +1 -1
- package/build/utils.js +0 -10
- package/package.json +4 -5
package/build/index.d.ts
CHANGED
|
@@ -24,7 +24,6 @@ declare class CucumberAdapter {
|
|
|
24
24
|
constructor(_cid: string, _config: Options.Testrunner, _specs: string[], _capabilities: Capabilities.RemoteCapability, _reporter: EventEmitter, _eventEmitter: EventEmitter, _generateSkipTags?: boolean, _cucumberFormatter?: string);
|
|
25
25
|
readFiles(filePaths?: Options.Testrunner['specs']): (string | string[])[];
|
|
26
26
|
getGherkinDocuments(files?: Options.Testrunner['specs']): (GherkinDocument | GherkinDocument[])[];
|
|
27
|
-
filterSpecsByTagExpression(specs?: Options.Testrunner['specs'], tagExpression?: string): typeof specs;
|
|
28
27
|
generateDynamicSkipTags(): string[];
|
|
29
28
|
init(): Promise<this>;
|
|
30
29
|
hasTests(): boolean;
|
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;
|
|
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;AAO9C,OAAO,KAAK,EACR,eAAe,EACf,qBAAqB,IAAI,2BAA2B,EAEvD,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAW,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAc,MAAM,aAAa,CAAA;AAUpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8DAA8D,CAAA;AAE7G,eAAO,MAAM,aAAa,YAAY,CAAA;AAItC,QAAA,MACI,KAAK,0lBACL,QAAQ,sKACR,SAAS,0lBAET,MAAM,0lBACN,SAAS,sKACT,UAAU,0lBAEV,KAAK,sFACL,IAAI,sFACJ,IAAI,sFAEJ,SAAS,6BAET,KAAK,yBAIL,iBAAiB,kCACjB,4BAA4B,0BAC5B,mBAAmB,qBACnB,mBAAmB,2HACnB,UAAU,oFAEF,CAAA;AAoBZ,cAAM,eAAe;IAUb,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,kBAAkB;IAhB9B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAA2B;IAEhD,OAAO,CAAC,SAAS,CAAO;IAExB,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,EACvB,aAAa,EAAE,YAAY,EAC3B,iBAAiB,GAAE,OAAc,EACjC,kBAAkB,GAAE,MAA+G;IAyD/I,SAAS,CACL,SAAS,GAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAM,GAC5C,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE;IAUxB,mBAAmB,CACf,KAAK,GAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAM,GACxC,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE;IAkB1C,uBAAuB;IAWjB,IAAI;IA6BV,QAAQ;IAIF,GAAG;IAmFT;;;;;;;;OAQG;IACH,uBAAuB;IAgBjB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE;IAQpC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE;IA0BtC,SAAS;IAWf;;;OAGG;IACH,wBAAwB,CACpB,MAAM,EAAE,OAAO,CAAC,UAAU,EAC1B,yBAAyB,EAAE,yBAAyB;CA8E3D;AAGD,QAAA,MAAM,cAAc,EAAE;IAAE,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAO,CAAA;AAa9C,eAAe,cAAc,CAAA;AAC7B,OAAO,EACH,eAAe,EACf,cAAc,EAEd,KAAK,EACL,QAAQ,EACR,SAAS,EAET,MAAM,EACN,SAAS,EACT,UAAU,EAEV,KAAK,EACL,IAAI,EACJ,IAAI,EAEJ,SAAS,EAET,KAAK,EAEL,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACb,CAAA;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,WAAW,CAAC;QAClB,UAAU,YAAa,SAAQ,eAAe;SAAG;QACjD,UAAU,qBAAsB,SAAQ,2BAA2B;SAAG;KACzE;CACJ"}
|
package/build/index.js
CHANGED
|
@@ -11,10 +11,9 @@ import { executeHooksWithArgs } from '@wdio/utils';
|
|
|
11
11
|
import * as Cucumber from '@cucumber/cucumber';
|
|
12
12
|
import Gherkin from '@cucumber/gherkin';
|
|
13
13
|
import { IdGenerator } from '@cucumber/messages';
|
|
14
|
-
import TagExpressionParser from '@cucumber/tag-expressions';
|
|
15
14
|
import { DEFAULT_OPTS } from './constants.js';
|
|
16
|
-
import { generateSkipTagsFromCapabilities
|
|
17
|
-
import { loadConfiguration, runCucumber } from '@cucumber/cucumber/api';
|
|
15
|
+
import { generateSkipTagsFromCapabilities } from './utils.js';
|
|
16
|
+
import { loadConfiguration, loadSources, runCucumber } from '@cucumber/cucumber/api';
|
|
18
17
|
export const FILE_PROTOCOL = 'file://';
|
|
19
18
|
const log = logger('@wdio/cucumber-framework');
|
|
20
19
|
const { After, AfterAll, AfterStep, Before, BeforeAll, BeforeStep, Given, When, Then, DataTable, World, Status, setDefaultTimeout, setDefinitionFunctionWrapper, setWorldConstructor, defineParameterType, defineStep, supportCodeLibraryBuilder, } = Cucumber;
|
|
@@ -110,30 +109,6 @@ class CucumberAdapter {
|
|
|
110
109
|
return etc.length ? docs : doc;
|
|
111
110
|
});
|
|
112
111
|
}
|
|
113
|
-
filterSpecsByTagExpression(specs = [], tagExpression = this._cucumberOpts.tags ?? '') {
|
|
114
|
-
if (!tagExpression) {
|
|
115
|
-
return specs;
|
|
116
|
-
}
|
|
117
|
-
const tagParser = TagExpressionParser(tagExpression);
|
|
118
|
-
const filteredSpecs = this.getGherkinDocuments([this._specs])
|
|
119
|
-
.map((specDoc) => {
|
|
120
|
-
const [doc, ...etc] = [specDoc]
|
|
121
|
-
.flat(1)
|
|
122
|
-
.filter((doc) => shouldRun(doc, tagParser));
|
|
123
|
-
const ret = Array.isArray(specDoc)
|
|
124
|
-
? // Return group only if its not empty
|
|
125
|
-
doc && [doc, ...etc]
|
|
126
|
-
: doc;
|
|
127
|
-
return ret;
|
|
128
|
-
})
|
|
129
|
-
.filter((doc) => !!doc)
|
|
130
|
-
.map((doc) => {
|
|
131
|
-
// Get URIs from Gherkin documents to run
|
|
132
|
-
const [uri, ...etc] = [doc].flat(1).map((doc) => doc.uri);
|
|
133
|
-
return Array.isArray(doc) ? [uri, ...etc] : uri;
|
|
134
|
-
});
|
|
135
|
-
return filteredSpecs;
|
|
136
|
-
}
|
|
137
112
|
generateDynamicSkipTags() {
|
|
138
113
|
return this.getGherkinDocuments([this._specs])
|
|
139
114
|
.map((specDoc) => {
|
|
@@ -151,13 +126,19 @@ class CucumberAdapter {
|
|
|
151
126
|
// Filter the specs according to the tag expression
|
|
152
127
|
// Some workers would only spawn to then skip the spec (Feature) file
|
|
153
128
|
// Filtering at this stage can prevent the spawning of a massive number of workers
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
129
|
+
const { plan } = await loadSources({
|
|
130
|
+
paths: this._specs,
|
|
131
|
+
defaultDialect: this._cucumberOpts.language,
|
|
132
|
+
order: this._cucumberOpts.order,
|
|
133
|
+
names: this._cucumberOpts.name,
|
|
134
|
+
tagExpression: this._cucumberOpts.tags,
|
|
135
|
+
});
|
|
136
|
+
this._specs = plan?.map((pl) => path.resolve(pl.uri));
|
|
157
137
|
// Filter the specs according to line numbers
|
|
158
138
|
if (this._config.cucumberFeaturesWithLineNumbers?.length > 0) {
|
|
159
139
|
this._specs = this._config.cucumberFeaturesWithLineNumbers;
|
|
160
140
|
}
|
|
141
|
+
this._specs = [...new Set(this._specs)];
|
|
161
142
|
this._cucumberOpts.paths = this._specs;
|
|
162
143
|
this._hasTests = this._specs.length > 0;
|
|
163
144
|
return this;
|
package/build/utils.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { PickleStep, TestStep, Feature, Pickle, TestStepResultStatus, GherkinDocument } from '@cucumber/messages';
|
|
1
|
+
import type { PickleStep, TestStep, Feature, Pickle, TestStepResultStatus } from '@cucumber/messages';
|
|
3
2
|
import type { Capabilities } from '@wdio/types';
|
|
4
3
|
import type { ReporterStep } from './types.js';
|
|
5
4
|
/**
|
|
@@ -74,7 +73,6 @@ export declare function getRule(feature: Feature, scenarioId: string): string |
|
|
|
74
73
|
* This will aad them
|
|
75
74
|
*/
|
|
76
75
|
export declare function addKeywordToStep(steps: ReporterStep[], feature: Feature): ReporterStep[];
|
|
77
|
-
export declare function shouldRun(doc: GherkinDocument, tagParser: ReturnType<typeof TagExpressionParser>): boolean;
|
|
78
76
|
/**
|
|
79
77
|
* Generates skip tags based on capabilities and provided tags.
|
|
80
78
|
*
|
package/build/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGR,UAAU,EACV,QAAQ,EACR,OAAO,EACP,MAAM,EACN,oBAAoB,EACvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAI9C;;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,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;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,YAAY,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CA6CxH;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAG1E"}
|
package/build/utils.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import logger from '@wdio/logger';
|
|
3
|
-
import { compile } from '@cucumber/gherkin';
|
|
4
|
-
import { IdGenerator } from '@cucumber/messages';
|
|
5
3
|
const log = logger('@wdio/cucumber-framework:utils');
|
|
6
4
|
/**
|
|
7
5
|
* NOTE: this function is exported for testing only
|
|
@@ -128,14 +126,6 @@ export function addKeywordToStep(steps, feature) {
|
|
|
128
126
|
return step;
|
|
129
127
|
});
|
|
130
128
|
}
|
|
131
|
-
export function shouldRun(doc, tagParser) {
|
|
132
|
-
if (!doc.feature) {
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
const pickles = compile(doc, '', IdGenerator.uuid());
|
|
136
|
-
const tags = pickles.map((pickle) => pickle.tags.map((tag) => tag.name));
|
|
137
|
-
return tags.some((tag) => tagParser.evaluate(tag));
|
|
138
|
-
}
|
|
139
129
|
/**
|
|
140
130
|
* Generates skip tags based on capabilities and provided tags.
|
|
141
131
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wdio/cucumber-framework",
|
|
3
|
-
"version": "8.16.
|
|
3
|
+
"version": "8.16.12",
|
|
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",
|
|
@@ -41,11 +41,10 @@
|
|
|
41
41
|
"@cucumber/cucumber": "9.5.1",
|
|
42
42
|
"@cucumber/gherkin": "26.2.0",
|
|
43
43
|
"@cucumber/messages": "22.0.0",
|
|
44
|
-
"@cucumber/tag-expressions": "5.0.6",
|
|
45
44
|
"@types/node": "^20.1.0",
|
|
46
45
|
"@wdio/logger": "8.11.0",
|
|
47
|
-
"@wdio/types": "8.16.
|
|
48
|
-
"@wdio/utils": "8.16.
|
|
46
|
+
"@wdio/types": "8.16.12",
|
|
47
|
+
"@wdio/utils": "8.16.12",
|
|
49
48
|
"glob": "^10.2.2",
|
|
50
49
|
"is-glob": "^4.0.0"
|
|
51
50
|
},
|
|
@@ -55,5 +54,5 @@
|
|
|
55
54
|
"publishConfig": {
|
|
56
55
|
"access": "public"
|
|
57
56
|
},
|
|
58
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "6a010586db579a5019b490172f8ffc3939c9e852"
|
|
59
58
|
}
|