MCPcopy
hub / github.com/vitest-dev/vitest / createPreviewUserEvent

Function createPreviewUserEvent

packages/browser/src/client/tester/context.ts:146–281  ·  view source on GitHub ↗
(userEventBase: TestingLibraryUserEvent, options?: TestingLibraryOptions)

Source from the content-addressed store, hash-verified

144}
145
146function createPreviewUserEvent(userEventBase: TestingLibraryUserEvent, options?: TestingLibraryOptions): UserEvent {
147 let userEvent = userEventBase.setup({
148 advanceTimers: delay => vi.advanceTimersByTimeAsync(delay),
149 ...options,
150 })
151 let clipboardData: DataTransfer | undefined
152
153 function toElement(element: Element | Locator) {
154 return element instanceof Element ? element : element.element()
155 }
156
157 const vitestUserEvent: UserEvent = {
158 setup(options?: any) {
159 return createPreviewUserEvent(userEventBase, options)
160 },
161 async cleanup() {
162 userEvent = userEventBase.setup({
163 advanceTimers: delay => vi.advanceTimersByTimeAsync(delay),
164 ...options,
165 })
166 },
167 async click(element) {
168 await userEvent.click(toElement(element))
169 },
170 async dblClick(element) {
171 await userEvent.dblClick(toElement(element))
172 },
173 async tripleClick(element) {
174 await userEvent.tripleClick(toElement(element))
175 },
176 async selectOptions(element, value) {
177 const options = (Array.isArray(value) ? value : [value]).map((option) => {
178 if (typeof option !== 'string') {
179 return toElement(option)
180 }
181 return option
182 })
183 await userEvent.selectOptions(
184 toElement(element),
185 options as string[] | HTMLElement[],
186 )
187 },
188 async clear(element) {
189 await userEvent.clear(toElement(element))
190 },
191 async hover(element: Element | Locator) {
192 await userEvent.hover(toElement(element))
193 },
194 async unhover(element: Element | Locator) {
195 await userEvent.unhover(toElement(element))
196 },
197 async upload(element, files: string | string[] | File | File[]) {
198 const uploadPromise = (Array.isArray(files) ? files : [files]).map(async (file) => {
199 if (typeof file !== 'string') {
200 return file
201 }
202
203 const { content: base64, basename, mime } = await triggerCommand<{

Callers 2

createUserEventFunction · 0.85
setupFunction · 0.85

Calls 4

ensureAwaitedFunction · 0.90
setupMethod · 0.80
entriesMethod · 0.80

Tested by

no test coverage detected