@vitest/browser 2.1.0-beta.7 → 2.1.1

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.
@@ -23,8 +23,8 @@
23
23
  })();
24
24
  </script>
25
25
  <!-- !LOAD_METADATA! -->
26
- <script type="module" crossorigin src="./assets/index-CEU6kzsk.js"></script>
27
- <link rel="stylesheet" crossorigin href="./assets/index-BevOiAy-.css">
26
+ <script type="module" crossorigin src="./assets/index-DsWp6aFQ.js"></script>
27
+ <link rel="stylesheet" crossorigin href="./assets/index-D5rK8X7L.css">
28
28
  </head>
29
29
  <body>
30
30
  <div id="app"></div>
package/dist/context.js CHANGED
@@ -90,13 +90,13 @@ const channel = new BroadcastChannel(`vitest:${contextId}`);
90
90
  function triggerCommand(command, ...args) {
91
91
  return rpc().triggerCommand(contextId, command, filepath(), args);
92
92
  }
93
- function createUserEvent() {
93
+ function createUserEvent(__tl_user_event__) {
94
94
  const keyboard = {
95
95
  unreleased: []
96
96
  };
97
97
  return {
98
- setup() {
99
- return createUserEvent();
98
+ setup(options) {
99
+ return createUserEvent(__tl_user_event__?.setup(options));
100
100
  },
101
101
  click(element, options = {}) {
102
102
  return convertToLocator(element).click(processClickOptions(options));
@@ -110,30 +110,9 @@ function createUserEvent() {
110
110
  selectOptions(element, value) {
111
111
  return convertToLocator(element).selectOptions(value);
112
112
  },
113
- async type(element, text, options = {}) {
114
- const selector = convertToSelector(element);
115
- const { unreleased } = await triggerCommand(
116
- "__vitest_type",
117
- selector,
118
- text,
119
- { ...options, unreleased: keyboard.unreleased }
120
- );
121
- keyboard.unreleased = unreleased;
122
- },
123
113
  clear(element) {
124
114
  return convertToLocator(element).clear();
125
115
  },
126
- tab(options = {}) {
127
- return triggerCommand("__vitest_tab", options);
128
- },
129
- async keyboard(text) {
130
- const { unreleased } = await triggerCommand(
131
- "__vitest_keyboard",
132
- text,
133
- keyboard
134
- );
135
- keyboard.unreleased = unreleased;
136
- },
137
116
  hover(element, options = {}) {
138
117
  return convertToLocator(element).hover(processHoverOptions(options));
139
118
  },
@@ -151,10 +130,44 @@ function createUserEvent() {
151
130
  const sourceLocator = convertToLocator(source);
152
131
  const targetLocator = convertToLocator(target);
153
132
  return sourceLocator.dropTo(targetLocator, processDragAndDropOptions(options));
133
+ },
134
+ // testing-library user-event
135
+ async type(element, text, options = {}) {
136
+ if (typeof __tl_user_event__ !== "undefined") {
137
+ return __tl_user_event__.type(
138
+ element instanceof Element ? element : element.element(),
139
+ text,
140
+ options
141
+ );
142
+ }
143
+ const selector = convertToSelector(element);
144
+ const { unreleased } = await triggerCommand(
145
+ "__vitest_type",
146
+ selector,
147
+ text,
148
+ { ...options, unreleased: keyboard.unreleased }
149
+ );
150
+ keyboard.unreleased = unreleased;
151
+ },
152
+ tab(options = {}) {
153
+ if (typeof __tl_user_event__ !== "undefined") {
154
+ return __tl_user_event__.tab(options);
155
+ }
156
+ return triggerCommand("__vitest_tab", options);
157
+ },
158
+ async keyboard(text) {
159
+ if (typeof __tl_user_event__ !== "undefined") {
160
+ return __tl_user_event__.keyboard(text);
161
+ }
162
+ const { unreleased } = await triggerCommand(
163
+ "__vitest_keyboard",
164
+ text,
165
+ keyboard
166
+ );
167
+ keyboard.unreleased = unreleased;
154
168
  }
155
169
  };
156
170
  }
157
- const userEvent = createUserEvent();
158
171
  function cdp() {
159
172
  return getBrowserState().cdp;
160
173
  }
@@ -355,4 +368,4 @@ function getIframeScale() {
355
368
  return scale;
356
369
  }
357
370
 
358
- export { cdp, page, userEvent };
371
+ export { cdp, createUserEvent, page };
package/dist/index.js CHANGED
@@ -16,7 +16,7 @@ import { resolve as resolve$1, dirname as dirname$1, basename as basename$1, nor
16
16
  import crypto from 'node:crypto';
17
17
  import * as nodeos from 'node:os';
18
18
 
19
- var version = "2.1.0-beta.7";
19
+ var version = "2.1.1";
20
20
 
21
21
  const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
22
22
  function normalizeWindowsPath(input = "") {
@@ -1827,7 +1827,7 @@ async function generateContextFile(server) {
1827
1827
  );
1828
1828
  const distContextPath = slash(`/@fs/${resolve(__dirname, "context.js")}`);
1829
1829
  return `
1830
- import { page, userEvent as __userEvent_CDP__, cdp } from '${distContextPath}'
1830
+ import { page, createUserEvent, cdp } from '${distContextPath}'
1831
1831
  ${userEventNonProviderImport}
1832
1832
  const filepath = () => ${filepathCode}
1833
1833
  const rpc = () => __vitest_worker__.rpc
@@ -1844,52 +1844,13 @@ export const server = {
1844
1844
  config: __vitest_browser_runner__.config,
1845
1845
  }
1846
1846
  export const commands = server.commands
1847
- export const userEvent = ${getUserEvent(provider)}
1847
+ export const userEvent = createUserEvent(_userEventSetup)
1848
1848
  export { page, cdp }
1849
1849
  `;
1850
1850
  }
1851
- function getUserEvent(provider) {
1852
- if (provider.name !== "preview") {
1853
- return "__userEvent_CDP__";
1854
- }
1855
- return String.raw`{
1856
- ..._userEventSetup,
1857
- setup() {
1858
- const userEvent = __vitest_user_event__.setup()
1859
- userEvent.setup = this.setup
1860
- userEvent.fill = this.fill.bind(userEvent)
1861
- userEvent._upload = userEvent.upload.bind(userEvent)
1862
- userEvent.upload = this.upload.bind(userEvent)
1863
- userEvent.dragAndDrop = this.dragAndDrop
1864
- return userEvent
1865
- },
1866
- async upload(element, file) {
1867
- const uploadPromise = (Array.isArray(file) ? file : [file]).map(async (file) => {
1868
- if (typeof file !== 'string') {
1869
- return file
1870
- }
1871
-
1872
- const { content: base64, basename, mime } = await rpc().triggerCommand(contextId, "__vitest_fileInfo", filepath(), [file, 'base64'])
1873
- const fileInstance = fetch(base64)
1874
- .then(r => r.blob())
1875
- .then(blob => new File([blob], basename, { type: mime }))
1876
- return fileInstance
1877
- })
1878
- const uploadFiles = await Promise.all(uploadPromise)
1879
- return this._upload(element, uploadFiles)
1880
- },
1881
- async fill(element, text) {
1882
- await this.clear(element)
1883
- await this.type(element, text)
1884
- },
1885
- dragAndDrop: async () => {
1886
- throw new Error('Provider "preview" does not support dragging elements')
1887
- }
1888
- }`;
1889
- }
1890
1851
  async function getUserEventImport(provider, resolve2) {
1891
1852
  if (provider.name !== "preview") {
1892
- return "";
1853
+ return "const _userEventSetup = undefined";
1893
1854
  }
1894
1855
  const resolved = await resolve2("@testing-library/user-event", __dirname);
1895
1856
  if (!resolved) {
@@ -2203,7 +2164,7 @@ var BrowserPlugin = (browserServer, base = "/") => {
2203
2164
  if (react) {
2204
2165
  include.push(react);
2205
2166
  }
2206
- const vue = tryResolve("vitest-browser-react", [project.ctx.config.root]);
2167
+ const vue = tryResolve("vitest-browser-vue", [project.ctx.config.root]);
2207
2168
  if (vue) {
2208
2169
  include.push(vue);
2209
2170
  }
@@ -61,11 +61,21 @@ class PreviewLocator extends Locator {
61
61
  unhover() {
62
62
  return userEvent.unhover(this.element());
63
63
  }
64
- fill(text) {
64
+ async fill(text) {
65
+ await this.clear();
65
66
  return userEvent.type(this.element(), text);
66
67
  }
67
68
  async upload(file) {
68
- return userEvent.upload(this.element(), file);
69
+ const uploadPromise = (Array.isArray(file) ? file : [file]).map(async (file2) => {
70
+ if (typeof file2 !== "string") {
71
+ return file2;
72
+ }
73
+ const { content: base64, basename, mime } = await this.triggerCommand("__vitest_fileInfo", file2, "base64");
74
+ const fileInstance = fetch(base64).then((r) => r.blob()).then((blob) => new File([blob], basename, { type: mime }));
75
+ return fileInstance;
76
+ });
77
+ const uploadFiles = await Promise.all(uploadPromise);
78
+ return userEvent.upload(this.element(), uploadFiles);
69
79
  }
70
80
  selectOptions(options_) {
71
81
  const options = (Array.isArray(options_) ? options_ : [options_]).map((option) => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vitest/browser",
3
3
  "type": "module",
4
- "version": "2.1.0-beta.7",
4
+ "version": "2.1.1",
5
5
  "description": "Browser running for Vitest",
6
6
  "license": "MIT",
7
7
  "funding": "https://opencollective.com/vitest",
@@ -62,7 +62,7 @@
62
62
  "peerDependencies": {
63
63
  "playwright": "*",
64
64
  "webdriverio": "*",
65
- "vitest": "2.1.0-beta.7"
65
+ "vitest": "2.1.1"
66
66
  },
67
67
  "peerDependenciesMeta": {
68
68
  "playwright": {
@@ -83,7 +83,8 @@
83
83
  "sirv": "^2.0.4",
84
84
  "tinyrainbow": "^1.2.0",
85
85
  "ws": "^8.18.0",
86
- "@vitest/utils": "2.1.0-beta.7"
86
+ "@vitest/utils": "2.1.1",
87
+ "@vitest/mocker": "2.1.1"
87
88
  },
88
89
  "devDependencies": {
89
90
  "@testing-library/jest-dom": "^6.4.8",
@@ -99,11 +100,10 @@
99
100
  "playwright-core": "^1.46.0",
100
101
  "safaridriver": "^0.1.2",
101
102
  "webdriverio": "^8.40.2",
102
- "@vitest/mocker": "2.1.0-beta.7",
103
- "@vitest/ui": "2.1.0-beta.7",
104
- "@vitest/runner": "2.1.0-beta.7",
105
- "vitest": "2.1.0-beta.7",
106
- "@vitest/ws-client": "2.1.0-beta.7"
103
+ "@vitest/runner": "2.1.1",
104
+ "@vitest/ws-client": "2.1.1",
105
+ "@vitest/ui": "2.1.1",
106
+ "vitest": "2.1.1"
107
107
  },
108
108
  "scripts": {
109
109
  "build": "rimraf dist && pnpm build:node && pnpm build:client",