@vitest/browser-playwright 4.1.7 → 4.1.9

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.
Files changed (2) hide show
  1. package/dist/index.js +22 -21
  2. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -936,7 +936,7 @@ class PlaywrightBrowserProvider {
936
936
  createMocker() {
937
937
  const idPredicates = new Map();
938
938
  const sessionIds = new Map();
939
- function createPredicate(sessionId, url) {
939
+ function createPredicate(url) {
940
940
  const moduleUrl = new URL(url, "http://localhost");
941
941
  const predicate = (url) => {
942
942
  if (url.searchParams.has("_vitest_original")) {
@@ -961,11 +961,10 @@ class PlaywrightBrowserProvider {
961
961
  }
962
962
  return true;
963
963
  };
964
- const ids = sessionIds.get(sessionId) || [];
965
- ids.push(moduleUrl.href);
966
- sessionIds.set(sessionId, ids);
967
- idPredicates.set(predicateKey(sessionId, moduleUrl.href), predicate);
968
- return predicate;
964
+ return {
965
+ url: moduleUrl.href,
966
+ predicate
967
+ };
969
968
  }
970
969
  function predicateKey(sessionId, url) {
971
970
  return `${sessionId}:${url}`;
@@ -973,7 +972,17 @@ class PlaywrightBrowserProvider {
973
972
  return {
974
973
  register: async (sessionId, module) => {
975
974
  const page = this.getPage(sessionId);
976
- await page.context().route(createPredicate(sessionId, module.url), async (route) => {
975
+ const { url: moduleUrl, predicate } = createPredicate(module.url);
976
+ const key = predicateKey(sessionId, moduleUrl);
977
+ const existingPredicate = idPredicates.get(key);
978
+ if (existingPredicate) {
979
+ await page.context().unroute(existingPredicate);
980
+ }
981
+ const ids = sessionIds.get(sessionId) ?? new Set();
982
+ ids.add(moduleUrl);
983
+ sessionIds.set(sessionId, ids);
984
+ idPredicates.set(key, predicate);
985
+ await page.context().route(predicate, async (route) => {
977
986
  if (module.type === "manual") {
978
987
  const exports$1 = Object.keys(await module.resolve());
979
988
  const body = createManualModuleSource(module.url, exports$1);
@@ -1034,8 +1043,8 @@ class PlaywrightBrowserProvider {
1034
1043
  },
1035
1044
  clear: async (sessionId) => {
1036
1045
  const page = this.getPage(sessionId);
1037
- const ids = sessionIds.get(sessionId) || [];
1038
- const promises = ids.map((id) => {
1046
+ const ids = sessionIds.get(sessionId) ?? new Set();
1047
+ const promises = [...ids].map((id) => {
1039
1048
  const key = predicateKey(sessionId, id);
1040
1049
  const predicate = idPredicates.get(key);
1041
1050
  if (predicate) {
@@ -1157,18 +1166,10 @@ class PlaywrightBrowserProvider {
1157
1166
  const page = this.getPage(sessionid);
1158
1167
  const cdp = await page.context().newCDPSession(page);
1159
1168
  return {
1160
- send(method, params) {
1161
- return cdp.send(method, params);
1162
- },
1163
- on(event, listener) {
1164
- return cdp.on(event, listener);
1165
- },
1166
- off(event, listener) {
1167
- return cdp.off(event, listener);
1168
- },
1169
- once(event, listener) {
1170
- return cdp.once(event, listener);
1171
- }
1169
+ send: cdp.send.bind(cdp),
1170
+ on: cdp.on.bind(cdp),
1171
+ off: cdp.off.bind(cdp),
1172
+ once: cdp.once.bind(cdp)
1172
1173
  };
1173
1174
  }
1174
1175
  async close() {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vitest/browser-playwright",
3
3
  "type": "module",
4
- "version": "4.1.7",
4
+ "version": "4.1.9",
5
5
  "description": "Browser running for Vitest using playwright",
6
6
  "license": "MIT",
7
7
  "funding": "https://opencollective.com/vitest",
@@ -42,7 +42,7 @@
42
42
  ],
43
43
  "peerDependencies": {
44
44
  "playwright": "*",
45
- "vitest": "4.1.7"
45
+ "vitest": "4.1.9"
46
46
  },
47
47
  "peerDependenciesMeta": {
48
48
  "playwright": {
@@ -51,12 +51,12 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "tinyrainbow": "^3.1.0",
54
- "@vitest/browser": "4.1.7",
55
- "@vitest/mocker": "4.1.7"
54
+ "@vitest/browser": "4.1.9",
55
+ "@vitest/mocker": "4.1.9"
56
56
  },
57
57
  "devDependencies": {
58
58
  "playwright": "^1.59.0",
59
- "vitest": "4.1.7"
59
+ "vitest": "4.1.9"
60
60
  },
61
61
  "scripts": {
62
62
  "build": "premove dist && pnpm rollup -c",