@qavajs/playwright-runner-adapter 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +15 -3
- package/adapter/cucumber.spec.js +2 -2
- package/adapter/cucumber.spec.js.map +1 -1
- package/adapter/tags.js +26 -0
- package/adapter/tags.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.js +5 -2
- package/package.json +15 -7
- package/src/cucumber.spec.ts +2 -2
- package/src/tags.ts +20 -0
- package/tsconfig.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,14 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how
|
|
|
10
10
|
:pencil: - chore
|
|
11
11
|
:microscope: - experimental
|
|
12
12
|
|
|
13
|
+
## [1.4.0]
|
|
14
|
+
- :rocket: moved `@cucumber/cucumber` to dependencies
|
|
15
|
+
- :beetle: removed duplicated tags
|
|
16
|
+
|
|
17
|
+
## [1.3.0]
|
|
18
|
+
- :rocket: added `tags` function to translate cucumber tag expression to grep parameter
|
|
19
|
+
- :rocket: improved tags displaying in annotation
|
|
20
|
+
|
|
13
21
|
## [1.2.0]
|
|
14
22
|
- :rocket: reworked hooks via playwright hooks
|
|
15
23
|
- :rocket: display proper location in sources
|
package/README.md
CHANGED
|
@@ -5,7 +5,9 @@ Adapter to run cucumber tests via playwright test runner
|
|
|
5
5
|
|
|
6
6
|
## Installation
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
```
|
|
9
|
+
npm install @qavajs/playwright-runner-adapter
|
|
10
|
+
```
|
|
9
11
|
|
|
10
12
|
## Basic Configuration
|
|
11
13
|
|
|
@@ -37,8 +39,7 @@ And then fixtures can be connected with world instance via _init_ property.
|
|
|
37
39
|
```typescript
|
|
38
40
|
import { test as base, expect as baseExpect } from '@playwright/test';
|
|
39
41
|
import { SettingsPage } from './settings-page';
|
|
40
|
-
import { setWorldConstructor } from '@
|
|
41
|
-
import { PlaywrightWorld } from '@qavajs/playwright-runner-adapter/PlaywrightWorld';
|
|
42
|
+
import { setWorldConstructor, PlaywrightWorld } from '@qavajs/playwright-runner-adapter';
|
|
42
43
|
|
|
43
44
|
type MyFixtures = {
|
|
44
45
|
settingsPage: SettingsPage;
|
|
@@ -74,7 +75,18 @@ class ExtendedPlaywrightWorld extends PlaywrightWorld {
|
|
|
74
75
|
}
|
|
75
76
|
```
|
|
76
77
|
|
|
78
|
+
### Tag expression
|
|
79
|
+
It is possible to use regular tag expressions via `tags` util function
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
import { tags } from '@qavajs/playwright-runner-adapter';
|
|
83
|
+
export default defineConfig({
|
|
84
|
+
grep: tags('@oneTag and @anotherTag')
|
|
85
|
+
})
|
|
86
|
+
```
|
|
87
|
+
|
|
77
88
|
## Limitation
|
|
78
89
|
- ES modules are not supported (at least for node <= 22, where experimental ESM require is introduced)
|
|
90
|
+
- `setParallelCanAssign` is not supported (use playwright projects and `fullyParallel` property)
|
|
79
91
|
|
|
80
92
|
|
package/adapter/cucumber.spec.js
CHANGED
|
@@ -47,11 +47,11 @@ for (const feature of features) {
|
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
49
|
for (const testCase of tests) {
|
|
50
|
-
const tag = testCase.tags.map((tag) => tag.name);
|
|
50
|
+
const tag = [...new Set(testCase.tags.map((tag) => tag.name))];
|
|
51
51
|
const annotation = [
|
|
52
52
|
{ type: 'name', description: testCase.name },
|
|
53
53
|
{ type: 'testId', description: testCase.id },
|
|
54
|
-
{ type: 'tags', description: JSON.stringify(
|
|
54
|
+
{ type: 'tags', description: JSON.stringify(tag) }
|
|
55
55
|
];
|
|
56
56
|
test(testCase.name, { tag, annotation: annotation }, async () => {
|
|
57
57
|
const testInfo = test.info();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cucumber.spec.js","sourceRoot":"","sources":["../src/cucumber.spec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cucumber.spec.js","sourceRoot":"","sources":["../src/cucumber.spec.ts"],"names":[],"mappings":"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"}
|
package/adapter/tags.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.tags = tags;
|
|
7
|
+
const tag_expressions_1 = __importDefault(require("@cucumber/tag-expressions"));
|
|
8
|
+
/**
|
|
9
|
+
* Translate cucumber tag expression to playwright grep
|
|
10
|
+
* @param {string} tagExpression
|
|
11
|
+
* @example
|
|
12
|
+
* import { tags } from '@qavajs/playwright-runner-adapter';
|
|
13
|
+
* export default defineConfig({
|
|
14
|
+
* grep: tags('@oneTag and @anotherTag')
|
|
15
|
+
* })
|
|
16
|
+
*/
|
|
17
|
+
function tags(tagExpression) {
|
|
18
|
+
const expressionNode = (0, tag_expressions_1.default)(tagExpression);
|
|
19
|
+
return {
|
|
20
|
+
test(testName) {
|
|
21
|
+
const tokens = testName.split(' ');
|
|
22
|
+
return expressionNode.evaluate(tokens);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../src/tags.ts"],"names":[],"mappings":";;;;;AAWA,oBAQC;AAnBD,gFAA6C;AAE7C;;;;;;;;GAQG;AACH,SAAgB,IAAI,CAAC,aAAqB;IACtC,MAAM,cAAc,GAAG,IAAA,yBAAK,EAAC,aAAa,CAAC,CAAC;IAC5C,OAAO;QACH,IAAI,CAAC,QAAgB;YACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,OAAO,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;KACM,CAAC;AAChB,CAAC"}
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
const { PlaywrightWorld } = require('./adapter/PlaywrightWorld');
|
|
2
2
|
const { defineCucumber } = require('./adapter/defineCucumber');
|
|
3
|
-
|
|
3
|
+
const { tags } = require('./adapter/tags');
|
|
4
|
+
const cucumber = require('@cucumber/cucumber');
|
|
4
5
|
module.exports = {
|
|
5
6
|
PlaywrightWorld,
|
|
6
|
-
defineCucumber
|
|
7
|
+
defineCucumber,
|
|
8
|
+
tags,
|
|
9
|
+
...cucumber
|
|
7
10
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qavajs/playwright-runner-adapter",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "adapter for playwright test runner",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc",
|
|
@@ -9,14 +9,22 @@
|
|
|
9
9
|
},
|
|
10
10
|
"author": "Alexandr Galichenko",
|
|
11
11
|
"license": "MIT",
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "git+https://github.com/qavajs/playwright-runner-adapter.git"
|
|
15
|
+
},
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/qavajs/playwright-runner-adapter/issues"
|
|
18
|
+
},
|
|
12
19
|
"dependencies": {
|
|
13
|
-
"@cucumber/gherkin": "^
|
|
14
|
-
"
|
|
20
|
+
"@cucumber/gherkin": "^32.1.0",
|
|
21
|
+
"@cucumber/tag-expressions": "^6.1.2",
|
|
22
|
+
"glob": "^11.0.1",
|
|
23
|
+
"@cucumber/cucumber": "^11.2.0"
|
|
15
24
|
},
|
|
16
25
|
"devDependencies": {
|
|
17
|
-
"@
|
|
18
|
-
"@
|
|
19
|
-
"
|
|
20
|
-
"typescript": "^5.7.3"
|
|
26
|
+
"@playwright/test": "^1.52.0",
|
|
27
|
+
"@types/node": "^22.14.1",
|
|
28
|
+
"typescript": "^5.8.3"
|
|
21
29
|
}
|
|
22
30
|
}
|
package/src/cucumber.spec.ts
CHANGED
|
@@ -60,11 +60,11 @@ for (const feature of features) {
|
|
|
60
60
|
});
|
|
61
61
|
|
|
62
62
|
for (const testCase of tests) {
|
|
63
|
-
const tag = testCase.tags.map((tag: { name: string }) => tag.name);
|
|
63
|
+
const tag = [...new Set(testCase.tags.map((tag: { name: string }) => tag.name))];
|
|
64
64
|
const annotation = [
|
|
65
65
|
{ type: 'name', description: testCase.name },
|
|
66
66
|
{ type: 'testId', description: testCase.id },
|
|
67
|
-
{ type: 'tags', description: JSON.stringify(
|
|
67
|
+
{ type: 'tags', description: JSON.stringify(tag) }
|
|
68
68
|
];
|
|
69
69
|
test(testCase.name, { tag, annotation: annotation }, async () => {
|
|
70
70
|
const testInfo = test.info();
|
package/src/tags.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import parse from '@cucumber/tag-expressions'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Translate cucumber tag expression to playwright grep
|
|
5
|
+
* @param {string} tagExpression
|
|
6
|
+
* @example
|
|
7
|
+
* import { tags } from '@qavajs/playwright-runner-adapter';
|
|
8
|
+
* export default defineConfig({
|
|
9
|
+
* grep: tags('@oneTag and @anotherTag')
|
|
10
|
+
* })
|
|
11
|
+
*/
|
|
12
|
+
export function tags(tagExpression: string): RegExp {
|
|
13
|
+
const expressionNode = parse(tagExpression);
|
|
14
|
+
return {
|
|
15
|
+
test(testName: string) {
|
|
16
|
+
const tokens = testName.split(' ');
|
|
17
|
+
return expressionNode.evaluate(tokens);
|
|
18
|
+
}
|
|
19
|
+
} as RegExp;
|
|
20
|
+
}
|