UNPKG

@vue/test-utils

Version:

Component testing utils for Vue 3.

66 lines (65 loc) 5.26 kB
import type { TriggerOptions } from './createDomEvent'; import { ComponentInternalInstance, ComponentOptions, ComponentPublicInstance, ComputedOptions, CreateComponentPublicInstance, FunctionalComponent, MethodOptions } from 'vue'; import { DomEventNameWithModifier } from './constants/dom-events'; import type { VueWrapper } from './vueWrapper'; import { DefinedComponent, FindAllComponentsSelector, FindComponentSelector, NameSelector, RefSelector, VueNode } from './types'; import WrapperLike from './interfaces/wrapperLike'; import type { DOMWrapper } from './domWrapper'; export default abstract class BaseWrapper<ElementType extends Node> implements WrapperLike { protected readonly wrapperElement: VueNode<ElementType>; protected abstract getRootNodes(): VueNode[]; get element(): VueNode<ElementType>; protected constructor(element: ElementType); protected findAllDOMElements(selector: string): Element[]; find<K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<HTMLElementTagNameMap[K]>; find<K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<SVGElementTagNameMap[K]>; find<T extends Element = Element>(selector: string): DOMWrapper<T>; find<T extends Node = Node>(selector: string | RefSelector): DOMWrapper<T>; abstract findAll<K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<HTMLElementTagNameMap[K]>[]; abstract findAll<K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<SVGElementTagNameMap[K]>[]; abstract findAll<T extends Element>(selector: string): DOMWrapper<T>[]; abstract findAll(selector: string): DOMWrapper<Element>[]; findComponent<T extends never>(selector: string): WrapperLike; findComponent<Props, RawBindings = any, D = any, C extends ComputedOptions = ComputedOptions, M extends MethodOptions = MethodOptions>(selector: ComponentOptions<Props, RawBindings, D, C, M>): VueWrapper<CreateComponentPublicInstance<Props, RawBindings, D, C, M>>; findComponent<T extends ComponentOptions>(selector: string): VueWrapper<T extends ComponentOptions<infer Props, infer RawBindings, infer D, infer C, infer M> ? CreateComponentPublicInstance<Props, RawBindings, D, C, M> : VueWrapper<CreateComponentPublicInstance>>; findComponent<T extends DefinedComponent>(selector: T | Exclude<FindComponentSelector, FunctionalComponent>): VueWrapper<InstanceType<T>>; findComponent<T extends FunctionalComponent>(selector: T): DOMWrapper<Node>; findComponent<T extends FunctionalComponent>(selector: string): DOMWrapper<Element>; findComponent<T extends never>(selector: NameSelector | RefSelector): VueWrapper; findComponent<T extends ComponentPublicInstance>(selector: T | FindComponentSelector): VueWrapper<T>; findComponent<T extends never>(selector: FindComponentSelector): WrapperLike; findAllComponents<T extends never>(selector: string): WrapperLike[]; findAllComponents<T extends DefinedComponent>(selector: T | Exclude<FindAllComponentsSelector, FunctionalComponent>): VueWrapper<InstanceType<T>>[]; findAllComponents<T extends FunctionalComponent>(selector: T): DOMWrapper<Node>[]; findAllComponents<T extends FunctionalComponent>(selector: string): DOMWrapper<Element>[]; findAllComponents<T extends never>(selector: NameSelector): VueWrapper[]; findAllComponents<T extends ComponentPublicInstance>(selector: T | FindAllComponentsSelector): VueWrapper<T>[]; findAllComponents<T extends never>(selector: FindAllComponentsSelector): WrapperLike[]; abstract setValue(value?: any): Promise<void>; html(options?: { raw?: boolean; }): string; classes(): string[]; classes(className: string): boolean; attributes(): { [key: string]: string; }; attributes(key: string): string | undefined; text(): string; exists(): boolean; get<K extends keyof HTMLElementTagNameMap>(selector: K): Omit<DOMWrapper<HTMLElementTagNameMap[K]>, 'exists'>; get<K extends keyof SVGElementTagNameMap>(selector: K): Omit<DOMWrapper<SVGElementTagNameMap[K]>, 'exists'>; get<T extends Element = Element>(selector: string): Omit<DOMWrapper<T>, 'exists'>; get<T extends Node = Node>(selector: string | RefSelector): Omit<DOMWrapper<T>, 'exists'>; getComponent<T extends never>(selector: string): Omit<WrapperLike, 'exists'>; getComponent<T extends DefinedComponent>(selector: T | Exclude<FindComponentSelector, FunctionalComponent>): Omit<VueWrapper<InstanceType<T>>, 'exists'>; getComponent<T extends FunctionalComponent>(selector: T | string): Omit<DOMWrapper<Element>, 'exists'>; getComponent<T extends never>(selector: NameSelector | RefSelector): Omit<VueWrapper, 'exists'>; getComponent<T extends ComponentPublicInstance>(selector: T | FindComponentSelector): Omit<VueWrapper<T>, 'exists'>; getComponent<T extends never>(selector: FindComponentSelector): Omit<WrapperLike, 'exists'>; protected isDisabled: () => boolean; isVisible(): boolean; protected abstract getCurrentComponent(): ComponentInternalInstance | void; trigger(eventString: DomEventNameWithModifier, options?: TriggerOptions): Promise<void>; trigger(eventString: string, options?: TriggerOptions): Promise<void>; }