@vitest/browser 3.1.0-beta.1 → 3.1.0-beta.2

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.
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" href="{__VITEST_FAVICON__}" type="image/svg+xml">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Vitest Browser Tester</title>
8
- <script type="module" crossorigin src="/__vitest_browser__/tester-lo_P6U-u.js"></script>
8
+ <script type="module" crossorigin src="/__vitest_browser__/tester-DRF-LncV.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/__vitest_browser__/utils-CNTxSNQV.js">
10
10
  </head>
11
11
  <body>
package/dist/client.js CHANGED
@@ -230,27 +230,21 @@ const stringify = (value, replacer, space) => {
230
230
  }
231
231
  };
232
232
 
233
- // @__NO_SIDE_EFFECTS__
233
+ /* @__NO_SIDE_EFFECTS__ */
234
234
  function getBrowserState() {
235
- return window.__vitest_browser_runner__;
235
+ return window.__vitest_browser_runner__;
236
236
  }
237
237
 
238
- const channel = new BroadcastChannel(
239
- `vitest:${getBrowserState().sessionId}`
240
- );
238
+ const channel = new BroadcastChannel(`vitest:${getBrowserState().sessionId}`);
241
239
  const globalChannel = new BroadcastChannel("vitest:global");
242
240
  function waitForChannel(event) {
243
- return new Promise((resolve) => {
244
- channel.addEventListener(
245
- "message",
246
- (e) => {
247
- if (e.data?.type === event) {
248
- resolve();
249
- }
250
- },
251
- { once: true }
252
- );
253
- });
241
+ return new Promise((resolve) => {
242
+ channel.addEventListener("message", (e) => {
243
+ if (e.data?.type === event) {
244
+ resolve();
245
+ }
246
+ }, { once: true });
247
+ });
254
248
  }
255
249
 
256
250
  const PAGE_TYPE = getBrowserState().type;
@@ -259,98 +253,90 @@ const HOST = [location.hostname, PORT].filter(Boolean).join(":");
259
253
  const RPC_ID = PAGE_TYPE === "orchestrator" ? getBrowserState().sessionId : getBrowserState().testerId;
260
254
  const METHOD = getBrowserState().method;
261
255
  const ENTRY_URL = `${location.protocol === "https:" ? "wss:" : "ws:"}//${HOST}/__vitest_browser_api__?type=${PAGE_TYPE}&rpcId=${RPC_ID}&sessionId=${getBrowserState().sessionId}&projectName=${getBrowserState().config.name || ""}&method=${METHOD}&token=${window.VITEST_API_TOKEN}`;
262
- let setCancel = (_) => {
263
- };
256
+ let setCancel = (_) => {};
264
257
  const onCancel = new Promise((resolve) => {
265
- setCancel = resolve;
258
+ setCancel = resolve;
266
259
  });
267
260
  function createClient() {
268
- const reconnectInterval = 2e3;
269
- const reconnectTries = 10;
270
- const connectTimeout = 6e4;
271
- let tries = reconnectTries;
272
- const ctx = {
273
- ws: new WebSocket(ENTRY_URL),
274
- waitForConnection
275
- };
276
- let onMessage;
277
- ctx.rpc = createBirpc(
278
- {
279
- onCancel: setCancel,
280
- async createTesters(files) {
281
- if (PAGE_TYPE !== "orchestrator") {
282
- return;
283
- }
284
- getBrowserState().createTesters?.(files);
285
- },
286
- cdpEvent(event, payload) {
287
- const cdp = getBrowserState().cdp;
288
- if (!cdp) {
289
- return;
290
- }
291
- cdp.emit(event, payload);
292
- }
293
- },
294
- {
295
- post: (msg) => ctx.ws.send(msg),
296
- on: (fn) => onMessage = fn,
297
- serialize: (e) => stringify(e, (_, v) => {
298
- if (v instanceof Error) {
299
- return {
300
- name: v.name,
301
- message: v.message,
302
- stack: v.stack
303
- };
304
- }
305
- return v;
306
- }),
307
- deserialize: parse,
308
- onTimeoutError(functionName) {
309
- throw new Error(`[vitest-browser]: Timeout calling "${functionName}"`);
310
- }
311
- }
312
- );
313
- let openPromise;
314
- function reconnect(reset = false) {
315
- if (reset) {
316
- tries = reconnectTries;
317
- }
318
- ctx.ws = new WebSocket(ENTRY_URL);
319
- registerWS();
320
- }
321
- function registerWS() {
322
- openPromise = new Promise((resolve, reject) => {
323
- const timeout = setTimeout(() => {
324
- reject(
325
- new Error(
326
- `Cannot connect to the server in ${connectTimeout / 1e3} seconds`
327
- )
328
- );
329
- }, connectTimeout)?.unref?.();
330
- if (ctx.ws.OPEN === ctx.ws.readyState) {
331
- resolve();
332
- }
333
- ctx.ws.addEventListener("open", () => {
334
- tries = reconnectTries;
335
- resolve();
336
- clearTimeout(timeout);
337
- });
338
- });
339
- ctx.ws.addEventListener("message", (v) => {
340
- onMessage(v.data);
341
- });
342
- ctx.ws.addEventListener("close", () => {
343
- tries -= 1;
344
- if (tries > 0) {
345
- setTimeout(reconnect, reconnectInterval);
346
- }
347
- });
348
- }
349
- registerWS();
350
- function waitForConnection() {
351
- return openPromise;
352
- }
353
- return ctx;
261
+ const reconnectInterval = 2e3;
262
+ const reconnectTries = 10;
263
+ const connectTimeout = 6e4;
264
+ let tries = reconnectTries;
265
+ const ctx = {
266
+ ws: new WebSocket(ENTRY_URL),
267
+ waitForConnection
268
+ };
269
+ let onMessage;
270
+ ctx.rpc = createBirpc({
271
+ onCancel: setCancel,
272
+ async createTesters(files) {
273
+ if (PAGE_TYPE !== "orchestrator") {
274
+ return;
275
+ }
276
+ getBrowserState().createTesters?.(files);
277
+ },
278
+ cdpEvent(event, payload) {
279
+ const cdp = getBrowserState().cdp;
280
+ if (!cdp) {
281
+ return;
282
+ }
283
+ cdp.emit(event, payload);
284
+ }
285
+ }, {
286
+ post: (msg) => ctx.ws.send(msg),
287
+ on: (fn) => onMessage = fn,
288
+ serialize: (e) => stringify(e, (_, v) => {
289
+ if (v instanceof Error) {
290
+ return {
291
+ name: v.name,
292
+ message: v.message,
293
+ stack: v.stack
294
+ };
295
+ }
296
+ return v;
297
+ }),
298
+ deserialize: parse,
299
+ onTimeoutError(functionName) {
300
+ throw new Error(`[vitest-browser]: Timeout calling "${functionName}"`);
301
+ }
302
+ });
303
+ let openPromise;
304
+ function reconnect(reset = false) {
305
+ if (reset) {
306
+ tries = reconnectTries;
307
+ }
308
+ ctx.ws = new WebSocket(ENTRY_URL);
309
+ registerWS();
310
+ }
311
+ function registerWS() {
312
+ openPromise = new Promise((resolve, reject) => {
313
+ const timeout = setTimeout(() => {
314
+ reject(new Error(`Cannot connect to the server in ${connectTimeout / 1e3} seconds`));
315
+ }, connectTimeout)?.unref?.();
316
+ if (ctx.ws.OPEN === ctx.ws.readyState) {
317
+ resolve();
318
+ }
319
+ ctx.ws.addEventListener("open", () => {
320
+ tries = reconnectTries;
321
+ resolve();
322
+ clearTimeout(timeout);
323
+ });
324
+ });
325
+ ctx.ws.addEventListener("message", (v) => {
326
+ onMessage(v.data);
327
+ });
328
+ ctx.ws.addEventListener("close", () => {
329
+ tries -= 1;
330
+ if (tries > 0) {
331
+ setTimeout(reconnect, reconnectInterval);
332
+ }
333
+ });
334
+ }
335
+ registerWS();
336
+ function waitForConnection() {
337
+ return openPromise;
338
+ }
339
+ return ctx;
354
340
  }
355
341
  const client = createClient();
356
342