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

Function createUserEvent

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

Source from the content-addressed store, hash-verified

33}
34
35export function createUserEvent(__tl_user_event_base__?: TestingLibraryUserEvent, options?: TestingLibraryOptions): UserEvent {
36 if (__tl_user_event_base__) {
37 return createPreviewUserEvent(__tl_user_event_base__, options ?? {})
38 }
39
40 const keyboard = {
41 unreleased: [] as string[],
42 }
43
44 // https://playwright.dev/docs/api/class-keyboard
45 // https://webdriver.io/docs/api/browser/keys/
46 const modifier = provider === 'playwright'
47 ? 'ControlOrMeta'
48 : provider === 'webdriverio'
49 ? 'Ctrl'
50 : 'Control'
51
52 const userEvent: UserEvent = {
53 setup() {
54 return createUserEvent()
55 },
56 cleanup() {
57 // avoid cleanup rpc call if there is nothing to cleanup
58 if (!keyboard.unreleased.length) {
59 return Promise.resolve()
60 }
61 return ensureAwaited(async (error) => {
62 await triggerCommand('__vitest_cleanup', [keyboard], error)
63 keyboard.unreleased = []
64 })
65 },
66 click(element, options) {
67 return convertToLocator(element).click(options)
68 },
69 dblClick(element, options) {
70 return convertToLocator(element).dblClick(options)
71 },
72 tripleClick(element, options) {
73 return convertToLocator(element).tripleClick(options)
74 },
75 wheel(elementOrOptions: Element | Locator, options: UserEventWheelOptions) {
76 return convertToLocator(elementOrOptions).wheel(options)
77 },
78 selectOptions(element, value, options) {
79 return convertToLocator(element).selectOptions(value, options)
80 },
81 clear(element, options) {
82 return convertToLocator(element).clear(options)
83 },
84 hover(element, options) {
85 return convertToLocator(element).hover(options)
86 },
87 unhover(element, options) {
88 return convertToLocator(element).unhover(options)
89 },
90 upload(element, files: string | string[] | File | File[], options) {
91 return convertToLocator(element).upload(files, options)
92 },

Callers 1

setupFunction · 0.85

Calls 1

createPreviewUserEventFunction · 0.85

Tested by

no test coverage detected