@qavajs/playwright-runner-adapter 2.3.3 → 2.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 CHANGED
@@ -14,6 +14,17 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how
14
14
 
15
15
  :microscope: - experimental
16
16
 
17
+ ## [2.4.0]
18
+ - :rocket: added `@lock(name)` tag mapped to playwright test locks (`@lock(-exclusive-)` for the built-in exclusive lock)
19
+ - :rocket: added `@skip(reason)`, `@fixme(reason)`, `@fail(reason)`, `@slow(reason)` tags mapped to playwright test modifiers (reason is optional: `@skip()`)
20
+ - :rocket: added `@annotation(type,description)` tag mapped to playwright test annotations
21
+ - :pencil: special tags (`@lock(...)`, `@annotation(...)`, `@skip(...)`, `@fixme(...)`, `@fail(...)`, `@slow(...)`) are removed from playwright tags
22
+ - :pencil: updated `@cucumber/cucumber` to 13, `@cucumber/gherkin` to 42, `@cucumber/tag-expressions` to 11 and `glob` to 14
23
+ - :pencil: updated dev dependencies: `@playwright/test` 1.65, `@types/node` 26, `typescript` 7
24
+ - :pencil: switched `module` and `moduleResolution` to `nodenext` in `tsconfig.json` and `tsconfig.js.json`
25
+ - :x: dropped Node.js 20 support (`engines.node` is now `>=22`); CI tests against Node.js 22, 24 and 26
26
+ - :pencil: CI: updated `actions/checkout` and `actions/setup-node` to v7, `mikepenz/action-junit-report` to v6; tests also run on push to `main`, `npm audit` gate for production dependencies, junit report requires tests, e2e tests gate npm publish, publish with provenance
27
+
17
28
  ## [2.3.3]
18
29
  - :beetle: fixed named import for `parse` from `@cucumber/tag-expressions` in `filter.ts`
19
30
  - :beetle: fixed `attach` method assignment in `PlaywrightWorld` constructor
package/README.md CHANGED
@@ -19,6 +19,7 @@ Adapter to run [Cucumber](https://cucumber.io/) BDD tests via the [Playwright](h
19
19
  - [Filtering Tests](#filtering-tests)
20
20
  - [Tag Expressions](#tag-expressions)
21
21
  - [Predicate Filter](#predicate-filter)
22
+ - [Annotations, Modifiers and Locks](#annotations-modifiers-and-locks)
22
23
  - [Parallelism](#parallelism)
23
24
  - [JavaScript / CommonJS Support](#javascript--commonjs-support)
24
25
  - [Limitations](#limitations)
@@ -348,6 +349,43 @@ The predicate receives the full test name (feature + scenario title + tags) and
348
349
 
349
350
  ---
350
351
 
352
+ ## Annotations, Modifiers and Locks
353
+
354
+ Gherkin tags are translated into Playwright [test details](https://playwright.dev/docs/test-annotations). The special tags below are consumed: they are removed from the scenario's Playwright tags (and the `tags` annotation), so they don't show up as tags in reports and can't be matched with `grep` / `tags()`. All other tags are kept as Playwright tags.
355
+
356
+ | Tag | Playwright equivalent |
357
+ |---|---|
358
+ | `@skip()` / `@skip(reason)` | skips the scenario — fixtures are not set up |
359
+ | `@fixme()` / `@fixme(reason)` | same as skip, marks the scenario as to be fixed |
360
+ | `@fail()` / `@fail(reason)` | scenario passes only if it fails |
361
+ | `@slow()` / `@slow(reason)` | triples the timeout |
362
+ | `@lock(name)` | `lock: 'name'` — scenarios sharing a lock never run concurrently |
363
+ | `@lock(-exclusive-)` | built-in exclusive lock — runs only when no other test is running |
364
+ | `@annotation(type,description)` | `annotation: { type, description }` — description is optional: `@annotation(flaky)` |
365
+
366
+ Modifiers are passed as annotations of type `skip`, `fixme`, `fail`, `slow`, which Playwright applies like `test.skip()` and the other modifiers, and the optional reason is shown in the report. Plain tags such as `@skip` or `@slow` are ordinary tags and do nothing. Tags set on a `Feature` or `Rule` apply to all its scenarios.
367
+
368
+ > Gherkin tags may not contain whitespace, so write `@annotation(issue,JIRA-123)` without a space after the comma. Everything after the first comma is the description.
369
+
370
+ ```gherkin
371
+ @lock(user-settings)
372
+ Feature: user settings
373
+
374
+ @annotation(issue,JIRA-123)
375
+ Scenario: update settings
376
+ When I update settings
377
+
378
+ @lock(-exclusive-) @slow(full-reset)
379
+ Scenario: reset all data
380
+ When I reset the database
381
+ ```
382
+
383
+ Locks are a lighter alternative to splitting scenarios into a separate serial project (see [Parallelism](#parallelism)): only scenarios sharing the same lock are serialized, everything else stays parallel. Locks require `@playwright/test` 1.65+.
384
+
385
+ Runtime annotations can be added from steps via `this.test.info().annotations.push({ type, description })`.
386
+
387
+ ---
388
+
351
389
  ## Parallelism
352
390
 
353
391
  Playwright projects let you run subsets of scenarios in parallel or serially:
@@ -1 +1 @@
1
- {"version":3,"file":"PlaywrightWorld.js","sourceRoot":"","sources":["../src/PlaywrightWorld.ts"],"names":[],"mappings":";;;AAAA,2CAAkG;AAGlG,MAAa,SAAS;IAClB,GAAG,CAA2B;IAC9B,MAAM,CAAyF;IAC/F,UAAU,CAAW;IACrB,MAAM,CAAyB;IAC/B,kBAAkB,CAAsB;IACxC,IAAI,GAAG,WAAI,CAAC;IACZ,MAAM,GAAG,aAAM,CAAC;IAEhB,YAAY,OAAqB;QAC7B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAmB,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAO,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,WAAW,CAAkB,IAAY,EAAE,UAAoB;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe;aAChD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC;QACzE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,yCAAyC,SAAS,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;CACJ;AAjCD,8BAiCC;AAED,MAAa,eAAgB,SAAQ,SAAS;IAC1C,IAAI,CAAQ;IACZ,OAAO,CAAkB;IACzB,OAAO,CAAW;IAClB,WAAW,CAAU;IACrB,OAAO,CAAqB;IAE5B,uGAAuG;IACvG,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAyF,EAAE,EAAE;QACnI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC,CAA4B,CAAC;CACjC;AAdD,0CAcC"}
1
+ {"version":3,"file":"PlaywrightWorld.js","sourceRoot":"","sources":["../src/PlaywrightWorld.ts"],"names":[],"mappings":";;;AAAA,2CAAkG;AAGlG;IACI,GAAG,CAA2B;IAC9B,MAAM,CAAyF;IAC/F,UAAU,CAAW;IACrB,MAAM,CAAyB;IAC/B,kBAAkB,CAAsB;IACxC,IAAI,GAAG,WAAI,CAAC;IACZ,MAAM,GAAG,aAAM,CAAC;IAEhB,YAAY,OAAqB;QAC7B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAmB,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAO,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,WAAW,CAAkB,IAAY,EAAE,UAAoB;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe;aAChD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC;QACzE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,yCAAyC,SAAS,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;CACJ;;AAED,qBAA6B,SAAQ,SAAS;IAC1C,IAAI,CAAQ;IACZ,OAAO,CAAkB;IACzB,OAAO,CAAW;IAClB,WAAW,CAAU;IACrB,OAAO,CAAqB;IAE5B,uGAAuG;IACvG,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAyF,EAAE,EAAE;QACnI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC,CAA4B,CAAC;CACjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/Template.ts"],"names":[],"mappings":";;AAWA,4BAaC;AAtBD;;;;;;;;GAQG;AACH,SAAgB,QAAQ,CAAC,QAAwC;IAC7D,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QACvB,KAAK,EAAE,KAAK,WAAW,QAAwC,EAAE,KAAgB,EAAE,IAAe;YAC9F,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,QAAQ;iBACjB,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBACxB,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/Template.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;GAQG;AACH,kBAAyB,QAAwC;IAC7D,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QACvB,KAAK,EAAE,KAAK,WAAW,QAAwC,EAAE,KAAgB,EAAE,IAAe;YAC9F,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,QAAQ;iBACjB,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBACxB,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
@@ -2,11 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defineConfig = defineConfig;
4
4
  const loader_1 = require("./loader");
5
- const ANNOTATION_TYPES = {
6
- NAME: 'name',
7
- URI: 'uri',
8
- TAGS: 'tags'
9
- };
5
+ const testDetails_1 = require("./testDetails");
10
6
  const HOOK_NAMES = {
11
7
  BEFORE_ALL: 'Before All',
12
8
  AFTER_ALL: 'After All',
@@ -71,17 +67,6 @@ function createHookResult(result) {
71
67
  exception: result.error
72
68
  };
73
69
  }
74
- function createScenarioAnnotation(testCase) {
75
- const tag = [...new Set(testCase.tags.map(item => item.name))];
76
- return [
77
- { type: ANNOTATION_TYPES.NAME, description: testCase.name },
78
- { type: ANNOTATION_TYPES.URI, description: testCase.uri },
79
- { type: ANNOTATION_TYPES.TAGS, description: JSON.stringify(tag) }
80
- ];
81
- }
82
- function createScenarioTags(testCase) {
83
- return [...new Set(testCase.tags.map(item => item.name))];
84
- }
85
70
  function createCaseHookPayload(feature, testCase) {
86
71
  return {
87
72
  gherkinDocument: feature.gherkinDocument,
@@ -169,8 +154,7 @@ function defineConfig(config) {
169
154
  const tests = feature.tests;
170
155
  test.describe(feature.feature, () => {
171
156
  for (const testCase of tests) {
172
- const tag = createScenarioTags(testCase);
173
- const annotation = createScenarioAnnotation(testCase);
157
+ const { tag, annotation, lock } = (0, testDetails_1.resolveTestDetails)(testCase);
174
158
  const testBody = async (fixtures) => {
175
159
  const world = new supportCodeLibrary.World({
176
160
  log,
@@ -220,7 +204,8 @@ function defineConfig(config) {
220
204
  }
221
205
  };
222
206
  testBody.toString = () => fixture.init.toString();
223
- test(testCase.name, { tag, annotation }, testBody);
207
+ const details = lock.length > 0 ? { tag, annotation, lock } : { tag, annotation };
208
+ test(testCase.name, details, testBody);
224
209
  }
225
210
  });
226
211
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cucumberAdapter.js","sourceRoot":"","sources":["../src/cucumberAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cucumberAdapter.js","sourceRoot":"","sources":["../src/cucumberAdapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":";;AA2BA,oBAEC;AAqBD,wBAEC;AApDD,+DAAkD;AAElD,MAAM,aAAc,SAAQ,MAAM;IAKV;IAJZ,cAAc,CAEpB;IAEF,YAAoB,aAAqB;QACrC,KAAK,CAAC,EAAE,CAAC,CAAC;QADM,kBAAa,GAAb,aAAa,CAAQ;QAErC,IAAI,CAAC,cAAc,GAAG,IAAA,uBAAK,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,QAAgB;QACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;CACJ;AAED;;;;;;;;GAQG;AACH,SAAgB,IAAI,CAAC,aAAqB;IACtC,OAAO,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,MAAO,SAAQ,MAAM;IACH;IAApB,YAAoB,SAAwC;QACxD,KAAK,CAAC,EAAE,CAAC,CAAC;QADM,cAAS,GAAT,SAAS,CAA+B;QAExD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,QAAgB;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;CACJ;AAED;;;;;;;GAOG;AACH,SAAgB,MAAM,CAAC,SAAwC;IAC3D,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":";;;;AAAA,+DAAkD;AAElD,MAAM,aAAc,SAAQ,MAAM;IAKV,aAAa;IAJzB,cAAc,CAEpB;IAEF,YAAoB,aAAqB;QACrC,KAAK,CAAC,EAAE,CAAC,CAAC;6BADM,aAAa;QAE7B,IAAI,CAAC,cAAc,GAAG,IAAA,uBAAK,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,QAAgB;QACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;CACJ;AAED;;;;;;;;GAQG;AACH,cAAqB,aAAqB;IACtC,OAAO,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,MAAO,SAAQ,MAAM;IACH,SAAS;IAA7B,YAAoB,SAAwC;QACxD,KAAK,CAAC,EAAE,CAAC,CAAC;yBADM,SAAS;QAEzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,QAAgB;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;CACJ;AAED;;;;;;;GAOG;AACH,gBAAuB,SAAwC;IAC3D,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC"}
@@ -3,3 +3,4 @@ export * from './filter';
3
3
  export * from './Template';
4
4
  export * from '@cucumber/cucumber';
5
5
  export * from './cucumberAdapter';
6
+ export * from './testDetails';
package/adapter/index.js CHANGED
@@ -19,4 +19,5 @@ __exportStar(require("./filter"), exports);
19
19
  __exportStar(require("./Template"), exports);
20
20
  __exportStar(require("@cucumber/cucumber"), exports);
21
21
  __exportStar(require("./cucumberAdapter"), exports);
22
+ __exportStar(require("./testDetails"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,2CAAyB;AACzB,6CAA2B;AAC3B,qDAAmC;AACnC,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,2CAAyB;AACzB,6CAA2B;AAC3B,qDAAmC;AACnC,oDAAkC;AAAA,gDAA8B"}
@@ -2,11 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defineConfig = defineConfig;
4
4
  const loader_1 = require("./loader");
5
- const ANNOTATION_TYPES = {
6
- NAME: 'name',
7
- URI: 'uri',
8
- TAGS: 'tags'
9
- };
5
+ const testDetails_1 = require("./testDetails");
10
6
  const HOOK_NAMES = {
11
7
  BEFORE_ALL: 'Before All',
12
8
  AFTER_ALL: 'After All',
@@ -71,17 +67,6 @@ function createHookResult(result) {
71
67
  exception: result.error
72
68
  };
73
69
  }
74
- function createScenarioAnnotation(testCase) {
75
- const tag = [...new Set(testCase.tags.map(item => item.name))];
76
- return [
77
- { type: ANNOTATION_TYPES.NAME, description: testCase.name },
78
- { type: ANNOTATION_TYPES.URI, description: testCase.uri },
79
- { type: ANNOTATION_TYPES.TAGS, description: JSON.stringify(tag) }
80
- ];
81
- }
82
- function createScenarioTags(testCase) {
83
- return [...new Set(testCase.tags.map(item => item.name))];
84
- }
85
70
  function createCaseHookPayload(feature, testCase) {
86
71
  return {
87
72
  gherkinDocument: feature.gherkinDocument,
@@ -169,8 +154,7 @@ function defineConfig(config) {
169
154
  const tests = feature.tests;
170
155
  test.describe(feature.feature, () => {
171
156
  for (const testCase of tests) {
172
- const tag = createScenarioTags(testCase);
173
- const annotation = createScenarioAnnotation(testCase);
157
+ const { tag, annotation, lock } = (0, testDetails_1.resolveTestDetails)(testCase);
174
158
  const testBody = async (fixtures) => {
175
159
  const world = new supportCodeLibrary.World({
176
160
  log,
@@ -220,7 +204,8 @@ function defineConfig(config) {
220
204
  }
221
205
  };
222
206
  testBody.toString = () => fixture.init.toString();
223
- test(testCase.name, { tag, annotation }, testBody);
207
+ const details = lock.length > 0 ? { tag, annotation, lock } : { tag, annotation };
208
+ test(testCase.name, details, testBody);
224
209
  }
225
210
  });
226
211
  }
@@ -3,3 +3,4 @@ export * from './filter';
3
3
  export * from './Template';
4
4
  export * from '@cucumber/cucumber';
5
5
  export * from './cucumberAdapter';
6
+ export * from './testDetails';
@@ -19,3 +19,4 @@ __exportStar(require("./filter"), exports);
19
19
  __exportStar(require("./Template"), exports);
20
20
  __exportStar(require("@cucumber/cucumber"), exports);
21
21
  __exportStar(require("./cucumberAdapter"), exports);
22
+ __exportStar(require("./testDetails"), exports);
@@ -0,0 +1,18 @@
1
+ import type { Pickle } from '@cucumber/messages';
2
+ import type { TestDetailsAnnotation } from '@playwright/test';
3
+ export interface ResolvedTestDetails {
4
+ tag: string[];
5
+ annotation: TestDetailsAnnotation[];
6
+ lock: string[];
7
+ }
8
+ /**
9
+ * Translate gherkin tags of a pickle into playwright test details.
10
+ *
11
+ * - special tags below are consumed and not passed as playwright `tag`; all other tags are kept
12
+ * - `@lock(name)` → `lock: 'name'`; `@lock(-exclusive-)` → built-in exclusive lock
13
+ * - `@annotation(type,description)` → `annotation: { type, description }`
14
+ * - `@skip()` / `@fixme()` / `@fail()` / `@slow()` → playwright modifier with optional description, e.g. `@fixme(JIRA-1)`
15
+ *
16
+ * Note: gherkin tags may not contain whitespace, so write `@annotation(issue,JIRA-1)` without spaces.
17
+ */
18
+ export declare function resolveTestDetails(pickle: Pickle): ResolvedTestDetails;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveTestDetails = resolveTestDetails;
4
+ const LOCK_TAG = /^@lock\(([^)]+)\)$/;
5
+ const ANNOTATION_TAG = /^@annotation\(([^,)]+)(?:,(.*))?\)$/;
6
+ /**
7
+ * Playwright applies annotations of these types as test modifiers
8
+ * (skip/fixme before fixtures are set up, fail/slow at test start).
9
+ */
10
+ const MODIFIER_TAG = /^@(skip|fixme|fail|slow)\((.*)\)$/;
11
+ function unique(items) {
12
+ return [...new Set(items)];
13
+ }
14
+ function createAnnotation(type, description) {
15
+ const trimmed = description?.trim();
16
+ return trimmed ? { type, description: trimmed } : { type };
17
+ }
18
+ /**
19
+ * Translate gherkin tags of a pickle into playwright test details.
20
+ *
21
+ * - special tags below are consumed and not passed as playwright `tag`; all other tags are kept
22
+ * - `@lock(name)` → `lock: 'name'`; `@lock(-exclusive-)` → built-in exclusive lock
23
+ * - `@annotation(type,description)` → `annotation: { type, description }`
24
+ * - `@skip()` / `@fixme()` / `@fail()` / `@slow()` → playwright modifier with optional description, e.g. `@fixme(JIRA-1)`
25
+ *
26
+ * Note: gherkin tags may not contain whitespace, so write `@annotation(issue,JIRA-1)` without spaces.
27
+ */
28
+ function resolveTestDetails(pickle) {
29
+ const tag = [];
30
+ const extraAnnotation = [];
31
+ const lock = [];
32
+ for (const name of unique(pickle.tags.map(item => item.name))) {
33
+ const lockMatch = LOCK_TAG.exec(name);
34
+ if (lockMatch) {
35
+ lock.push(lockMatch[1].trim());
36
+ continue;
37
+ }
38
+ const annotationMatch = ANNOTATION_TAG.exec(name) ?? MODIFIER_TAG.exec(name);
39
+ if (annotationMatch) {
40
+ extraAnnotation.push(createAnnotation(annotationMatch[1].trim(), annotationMatch[2]));
41
+ continue;
42
+ }
43
+ tag.push(name);
44
+ }
45
+ const annotation = [
46
+ { type: 'name', description: pickle.name },
47
+ { type: 'uri', description: pickle.uri },
48
+ { type: 'tags', description: JSON.stringify(tag) },
49
+ ...extraAnnotation
50
+ ];
51
+ return { tag, annotation, lock: unique(lock) };
52
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";;;;;AAAA,qCAAuC;AACvC,yCAAoC;AACpC,6CAAyC;AACzC,+CAA4F;AAC5F,iDAA+D;AAE/D,+BAAgC;AAChC,uDAAoD;AAGpD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,wBAAU,GAAE,CAAC;AAClC,MAAM,OAAO,GAAG,IAAI,oBAAU,CAAC,MAAM,CAAC,CAAC;AACvC,MAAM,OAAO,GAAG,IAAI,oCAA0B,EAAE,CAAC;AACjD,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AAE3C,SAAS,UAAU,CAAC,KAAwB;IACxC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,sBAA6B,WAAqB;IAC9C,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,WAAW,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACpB,MAAM,QAAQ,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACtE,OAAO;YACH,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,IAAI;YACtC,GAAG,EAAE,QAAQ;YACb,eAAe;YACf,KAAK,EAAE,UAAU,CAAC,IAAA,iBAAO,EAAC,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SAC5D,CAAA;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,6BAAoC,WAAqB;IACrD,oCAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IACvD,oCAAyB,CAAC,OAAO,CAAC,mBAAmB,CAAC,iCAAe,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,WAAW,CAAC,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,oCAAyB,CAAC,QAAQ,EAAmC,CAAC;AACjF,CAAC;AAED,cAAqB,MAA6B;IAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;QAC3C,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACzB,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;KAC3B,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAA;AAC3C,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Pickle } from '@cucumber/messages';
2
+ import type { TestDetailsAnnotation } from '@playwright/test';
3
+ export interface ResolvedTestDetails {
4
+ tag: string[];
5
+ annotation: TestDetailsAnnotation[];
6
+ lock: string[];
7
+ }
8
+ /**
9
+ * Translate gherkin tags of a pickle into playwright test details.
10
+ *
11
+ * - special tags below are consumed and not passed as playwright `tag`; all other tags are kept
12
+ * - `@lock(name)` → `lock: 'name'`; `@lock(-exclusive-)` → built-in exclusive lock
13
+ * - `@annotation(type,description)` → `annotation: { type, description }`
14
+ * - `@skip()` / `@fixme()` / `@fail()` / `@slow()` → playwright modifier with optional description, e.g. `@fixme(JIRA-1)`
15
+ *
16
+ * Note: gherkin tags may not contain whitespace, so write `@annotation(issue,JIRA-1)` without spaces.
17
+ */
18
+ export declare function resolveTestDetails(pickle: Pickle): ResolvedTestDetails;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveTestDetails = resolveTestDetails;
4
+ const LOCK_TAG = /^@lock\(([^)]+)\)$/;
5
+ const ANNOTATION_TAG = /^@annotation\(([^,)]+)(?:,(.*))?\)$/;
6
+ /**
7
+ * Playwright applies annotations of these types as test modifiers
8
+ * (skip/fixme before fixtures are set up, fail/slow at test start).
9
+ */
10
+ const MODIFIER_TAG = /^@(skip|fixme|fail|slow)\((.*)\)$/;
11
+ function unique(items) {
12
+ return [...new Set(items)];
13
+ }
14
+ function createAnnotation(type, description) {
15
+ const trimmed = description?.trim();
16
+ return trimmed ? { type, description: trimmed } : { type };
17
+ }
18
+ /**
19
+ * Translate gherkin tags of a pickle into playwright test details.
20
+ *
21
+ * - special tags below are consumed and not passed as playwright `tag`; all other tags are kept
22
+ * - `@lock(name)` → `lock: 'name'`; `@lock(-exclusive-)` → built-in exclusive lock
23
+ * - `@annotation(type,description)` → `annotation: { type, description }`
24
+ * - `@skip()` / `@fixme()` / `@fail()` / `@slow()` → playwright modifier with optional description, e.g. `@fixme(JIRA-1)`
25
+ *
26
+ * Note: gherkin tags may not contain whitespace, so write `@annotation(issue,JIRA-1)` without spaces.
27
+ */
28
+ function resolveTestDetails(pickle) {
29
+ const tag = [];
30
+ const extraAnnotation = [];
31
+ const lock = [];
32
+ for (const name of unique(pickle.tags.map(item => item.name))) {
33
+ const lockMatch = LOCK_TAG.exec(name);
34
+ if (lockMatch) {
35
+ lock.push(lockMatch[1].trim());
36
+ continue;
37
+ }
38
+ const annotationMatch = ANNOTATION_TAG.exec(name) ?? MODIFIER_TAG.exec(name);
39
+ if (annotationMatch) {
40
+ extraAnnotation.push(createAnnotation(annotationMatch[1].trim(), annotationMatch[2]));
41
+ continue;
42
+ }
43
+ tag.push(name);
44
+ }
45
+ const annotation = [
46
+ { type: 'name', description: pickle.name },
47
+ { type: 'uri', description: pickle.uri },
48
+ { type: 'tags', description: JSON.stringify(tag) },
49
+ ...extraAnnotation
50
+ ];
51
+ return { tag, annotation, lock: unique(lock) };
52
+ }
53
+ //# sourceMappingURL=testDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testDetails.js","sourceRoot":"","sources":["../src/testDetails.ts"],"names":[],"mappings":";;;AASA,MAAM,QAAQ,GAAG,oBAAoB,CAAC;AACtC,MAAM,cAAc,GAAG,qCAAqC,CAAC;AAC7D;;;GAGG;AACH,MAAM,YAAY,GAAG,mCAAmC,CAAC;AAEzD,SAAS,MAAM,CAAI,KAAU;IACzB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,WAAoB;IACxD,MAAM,OAAO,GAAG,WAAW,EAAE,IAAI,EAAE,CAAC;IACpC,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED;;;;;;;;;GASG;AACH,4BAAmC,MAAc;IAC7C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,eAAe,GAA4B,EAAE,CAAC;IACpD,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/B,SAAS;QACb,CAAC;QACD,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,eAAe,EAAE,CAAC;YAClB,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtF,SAAS;QACb,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAA4B;QACxC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE;QAC1C,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE;QACxC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;QAClD,GAAG,eAAe;KACrB,CAAC;IAEF,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AACnD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qavajs/playwright-runner-adapter",
3
- "version": "2.3.3",
3
+ "version": "2.4.0",
4
4
  "description": "adapter for playwright test runner",
5
5
  "main": "adapter/index.js",
6
6
  "types": "adapter/index.d.ts",
@@ -40,16 +40,16 @@
40
40
  "url": "https://github.com/qavajs/playwright-runner-adapter/issues"
41
41
  },
42
42
  "dependencies": {
43
- "@cucumber/cucumber": "^12.8.1",
44
- "@cucumber/gherkin": "^39.0.0",
45
- "@cucumber/tag-expressions": "^9.1.0",
46
- "glob": "^13.0.6"
43
+ "@cucumber/cucumber": "^13.3.0",
44
+ "@cucumber/gherkin": "^42.0.1",
45
+ "@cucumber/tag-expressions": "^11.0.1",
46
+ "glob": "^14.0.4"
47
47
  },
48
48
  "devDependencies": {
49
- "@playwright/test": "^1.59.1",
49
+ "@playwright/test": "^1.65.0",
50
50
  "@qavajs/playwright-console-reporter": "^0.1.0",
51
- "@types/node": "^25.6.0",
52
- "typescript": "^6.0.3"
51
+ "@types/node": "^26.6.6",
52
+ "typescript": "^7.0.2"
53
53
  },
54
54
  "keywords": [
55
55
  "test",