vitest-browser-vue
Version:
Render Vue components in Vitest Browser Mode
31 lines (28 loc) • 1.64 kB
TypeScript
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 };