@serenity-js/playwright 3.35.3 → 3.36.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
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.36.0](https://github.com/serenity-js/serenity-js/compare/v3.35.3...v3.36.0) (2025-11-06)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **playwright:** corrected handling of pages closed during the test ([adbd35c](https://github.com/serenity-js/serenity-js/commit/adbd35c9b2ae83b63bd7541461646891f5951b2d)), closes [#3054](https://github.com/serenity-js/serenity-js/issues/3054)
12
+
13
+
14
+ ### Features
15
+
16
+ * **core:** introduced support for Node 24, dropped support for Node 18 (EOL) ([9dd5f88](https://github.com/serenity-js/serenity-js/commit/9dd5f885d8e65cd8ff3429a2af94151fbe9134ed))
17
+
18
+
19
+
20
+
21
+
6
22
  ## [3.35.3](https://github.com/serenity-js/serenity-js/compare/v3.35.2...v3.35.3) (2025-10-30)
7
23
 
8
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"PlaywrightBrowsingSession.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/PlaywrightBrowsingSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,KAAK,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAoB,cAAc,EAAE,MAAM,WAAW,CAAC;AAE7D;;;;GAIG;AACH,8BAAsB,yBAA0B,SAAQ,eAAe,CAAC,cAAc,CAAC;IAM/E,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,CAAC;IAClF,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS;IALtD,SAAS,CAAC,QAAQ,CAAC,uBAAuB,0BAAiC;IAC3E,OAAO,CAAC,+BAA+B,CAA4B;IAEnE,SAAS,aACc,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,CAAC,EAC/D,SAAS,EAAE,UAAU,CAAC,SAAS;IAKtD;;;;;;OAMG;aACa,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAE7D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;cAKvB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;IAuBpE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;CAChF"}
1
+ {"version":3,"file":"PlaywrightBrowsingSession.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/PlaywrightBrowsingSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,KAAK,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAoB,cAAc,EAAE,MAAM,WAAW,CAAC;AAE7D;;;;GAIG;AACH,8BAAsB,yBAA0B,SAAQ,eAAe,CAAC,cAAc,CAAC;IAM/E,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,CAAC;IAClF,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS;IALtD,SAAS,CAAC,QAAQ,CAAC,uBAAuB,0BAAiC;IAC3E,OAAO,CAAC,+BAA+B,CAA4B;IAEnE,SAAS,aACc,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,CAAC,EAC/D,SAAS,EAAE,UAAU,CAAC,SAAS;IAKtD;;;;;;OAMG;aACa,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAE7D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;cAKvB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;IA2BpE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;CAChF"}
@@ -37,7 +37,11 @@ class PlaywrightBrowsingSession extends web_1.BrowsingSession {
37
37
  await this.serenitySelectorEngines.ensureRegisteredWith(this.selectors);
38
38
  this.currentPlaywrightBrowserContext = await this.createBrowserContext();
39
39
  this.currentPlaywrightBrowserContext.on('page', async (page) => {
40
- this.register(new models_1.PlaywrightPage(this, page, this.extraBrowserContextOptions, model_1.CorrelationId.create()));
40
+ const playwrightPage = new models_1.PlaywrightPage(this, page, this.extraBrowserContextOptions, model_1.CorrelationId.create());
41
+ this.register(playwrightPage);
42
+ page.on('close', _closedPage => {
43
+ this.deregister(playwrightPage.id);
44
+ });
41
45
  });
42
46
  if (this.extraBrowserContextOptions?.defaultNavigationTimeout) {
43
47
  this.currentPlaywrightBrowserContext.setDefaultNavigationTimeout(this.extraBrowserContextOptions?.defaultNavigationTimeout);
@@ -1 +1 @@
1
- {"version":3,"file":"PlaywrightBrowsingSession.js","sourceRoot":"","sources":["../../../src/screenplay/models/PlaywrightBrowsingSession.ts"],"names":[],"mappings":";;;AAAA,uDAA4D;AAE5D,0CAAiF;AAIjF,6DAAiE;AACjE,sCAA6D;AAE7D;;;;GAIG;AACH,MAAsB,yBAA0B,SAAQ,qBAA+B;IAM5D;IACA;IALJ,uBAAuB,GAAG,IAAI,0CAAuB,EAAE,CAAC;IACnE,+BAA+B,CAA4B;IAEnE,YACuB,0BAA+D,EAC/D,SAA+B;QAElD,KAAK,EAAE,CAAC;QAHW,+BAA0B,GAA1B,0BAA0B,CAAqC;QAC/D,cAAS,GAAT,SAAS,CAAsB;IAGtD,CAAC;IAWD,KAAK,CAAC,MAAM,CAAC,IAAY;QACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,OAAO,IAAI,yBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAkB;QAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5C,MAAM,OAAO,CAAC,UAAU,CAAC,CAAE,MAAM,CAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;QAC3C,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAE,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,+BAA+B,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAEzE,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;gBACzD,IAAI,CAAC,QAAQ,CACT,IAAI,uBAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,0BAA0B,EAAE,qBAAa,CAAC,MAAM,EAAE,CAAC,CAC1F,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,0BAA0B,EAAE,wBAAwB,EAAE,CAAC;gBAC5D,IAAI,CAAC,+BAA+B,CAAC,2BAA2B,CAAC,IAAI,CAAC,0BAA0B,EAAE,wBAAwB,CAAC,CAAC;YAChI,CAAC;YAED,IAAI,IAAI,CAAC,0BAA0B,EAAE,cAAc,EAAE,CAAC;gBAClD,IAAI,CAAC,+BAA+B,CAAC,iBAAiB,CAAC,IAAI,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;YAC5G,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,+BAA+B,CAAC;IAChD,CAAC;CAGJ;AA7DD,8DA6DC"}
1
+ {"version":3,"file":"PlaywrightBrowsingSession.js","sourceRoot":"","sources":["../../../src/screenplay/models/PlaywrightBrowsingSession.ts"],"names":[],"mappings":";;;AAAA,uDAA4D;AAE5D,0CAAiF;AAIjF,6DAAiE;AACjE,sCAA6D;AAE7D;;;;GAIG;AACH,MAAsB,yBAA0B,SAAQ,qBAA+B;IAM5D;IACA;IALJ,uBAAuB,GAAG,IAAI,0CAAuB,EAAE,CAAC;IACnE,+BAA+B,CAA4B;IAEnE,YACuB,0BAA+D,EAC/D,SAA+B;QAElD,KAAK,EAAE,CAAC;QAHW,+BAA0B,GAA1B,0BAA0B,CAAqC;QAC/D,cAAS,GAAT,SAAS,CAAsB;IAGtD,CAAC;IAWD,KAAK,CAAC,MAAM,CAAC,IAAY;QACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,OAAO,IAAI,yBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAkB;QAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5C,MAAM,OAAO,CAAC,UAAU,CAAC,CAAE,MAAM,CAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;QAC3C,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAE,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,+BAA+B,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAEzE,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;gBACzD,MAAM,cAAc,GAAG,IAAI,uBAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,0BAA0B,EAAE,qBAAa,CAAC,MAAM,EAAE,CAAC,CAAC;gBAE/G,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAE9B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE;oBAC3B,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,0BAA0B,EAAE,wBAAwB,EAAE,CAAC;gBAC5D,IAAI,CAAC,+BAA+B,CAAC,2BAA2B,CAAC,IAAI,CAAC,0BAA0B,EAAE,wBAAwB,CAAC,CAAC;YAChI,CAAC;YAED,IAAI,IAAI,CAAC,0BAA0B,EAAE,cAAc,EAAE,CAAC;gBAClD,IAAI,CAAC,+BAA+B,CAAC,iBAAiB,CAAC,IAAI,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;YAC5G,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,+BAA+B,CAAC;IAChD,CAAC;CAGJ;AAjED,8DAiEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/playwright",
3
- "version": "3.35.3",
3
+ "version": "3.36.0",
4
4
  "description": "Adapter that integrates @serenity-js/web with Playwright, enabling Serenity/JS reporting and using the Screenplay Pattern to write component and end-to-end test scenarios",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -54,11 +54,11 @@
54
54
  "url": "https://github.com/serenity-js/serenity-js/issues"
55
55
  },
56
56
  "engines": {
57
- "node": "^18.12 || ^20 || ^22"
57
+ "node": "^20 || ^22 || ^24"
58
58
  },
59
59
  "dependencies": {
60
- "@serenity-js/core": "3.35.3",
61
- "@serenity-js/web": "3.35.3",
60
+ "@serenity-js/core": "3.36.0",
61
+ "@serenity-js/web": "3.36.0",
62
62
  "tiny-types": "1.24.1"
63
63
  },
64
64
  "peerDependencies": {
@@ -69,11 +69,11 @@
69
69
  "@types/chai": "4.3.20",
70
70
  "@types/mocha": "10.0.10",
71
71
  "c8": "10.1.3",
72
- "mocha": "11.7.4",
72
+ "mocha": "11.7.5",
73
73
  "mocha-multi": "1.1.7",
74
74
  "playwright-core": "1.56.1",
75
75
  "ts-node": "10.9.2",
76
76
  "typescript": "5.9.3"
77
77
  },
78
- "gitHead": "91d894f0970535abe4be120db7d9dca4830e25e5"
78
+ "gitHead": "65f753e759dd1e6241d3d9f81aa744abd52a663e"
79
79
  }
@@ -55,9 +55,13 @@ export abstract class PlaywrightBrowsingSession extends BrowsingSession<Playwrig
55
55
  this.currentPlaywrightBrowserContext = await this.createBrowserContext();
56
56
 
57
57
  this.currentPlaywrightBrowserContext.on('page', async page => {
58
- this.register(
59
- new PlaywrightPage(this, page, this.extraBrowserContextOptions, CorrelationId.create())
60
- );
58
+ const playwrightPage = new PlaywrightPage(this, page, this.extraBrowserContextOptions, CorrelationId.create());
59
+
60
+ this.register(playwrightPage);
61
+
62
+ page.on('close', _closedPage => {
63
+ this.deregister(playwrightPage.id);
64
+ });
61
65
  });
62
66
 
63
67
  if (this.extraBrowserContextOptions?.defaultNavigationTimeout) {