UNPKG

vitest-browser-vue

Version:
31 lines (28 loc) 1.64 kB
import { LocatorSelectors, Locator } from '@vitest/browser/context'; import { ComponentMountingOptions } from '@vue/test-utils'; export { config } from '@vue/test-utils'; import { DefineComponent } from 'vue'; import { PrettyDOMOptions } from '@vitest/browser/utils'; type ComponentProps<T> = T extends new (...angs: any) => { $props: infer P; } ? NonNullable<P> : T extends (props: infer P, ...args: any) => any ? P : {}; interface RenderResult<Props> extends LocatorSelectors { container: HTMLElement; baseElement: HTMLElement; debug(el?: HTMLElement | HTMLElement[] | Locator | Locator[], maxLength?: number, options?: PrettyDOMOptions): void; unmount(): void; emitted<T = unknown>(): Record<string, T[]>; emitted<T = unknown[]>(eventName: string): undefined | T[]; rerender(props: Partial<Props>): void; } interface ComponentRenderOptions<C, P extends ComponentProps<C>> extends ComponentMountingOptions<C, P> { container?: HTMLElement; baseElement?: HTMLElement; } declare function render<T, C = T extends ((...args: any) => any) | (new (...args: any) => any) ? T : T extends { props?: infer Props; } ? DefineComponent<Props extends Readonly<(infer PropNames)[]> | (infer PropNames)[] ? { [key in PropNames extends string ? PropNames : string]?: any; } : Props> : DefineComponent, P extends ComponentProps<C> = ComponentProps<C>>(Component: T, { container: customContainer, baseElement: customBaseElement, ...mountOptions }?: ComponentRenderOptions<C, P>): RenderResult<P>; declare function cleanup(): void; export { type ComponentRenderOptions, type RenderResult, cleanup, render };