|
| 1 | +import type { TriggerOptions } from './createDomEvent'; |
| 2 | +import { ComponentInternalInstance, ComponentOptions, ComponentPublicInstance, ComputedOptions, CreateComponentPublicInstance, FunctionalComponent, MethodOptions } from 'vue'; |
| 3 | +import { DomEventNameWithModifier } from './constants/dom-events'; |
| 4 | +import type { VueWrapper } from './vueWrapper'; |
| 5 | +import { DefinedComponent, FindAllComponentsSelector, FindComponentSelector, NameSelector, RefSelector, VueNode } from './types'; |
| 6 | +import WrapperLike from './interfaces/wrapperLike'; |
| 7 | +import type { DOMWrapper } from './domWrapper'; |
| 8 | +export default abstract class BaseWrapper<ElementType extends Node> implements WrapperLike { |
| 9 | + protected readonly wrapperElement: VueNode<ElementType>; |
| 10 | + protected abstract getRootNodes(): VueNode[]; |
| 11 | + get element(): VueNode<ElementType>; |
| 12 | + protected constructor(element: ElementType); |
| 13 | + protected findAllDOMElements(selector: string): Element[]; |
| 14 | + find<K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<HTMLElementTagNameMap[K]>; |
| 15 | + find<K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<SVGElementTagNameMap[K]>; |
| 16 | + find<T extends Element = Element>(selector: string): DOMWrapper<T>; |
| 17 | + find<T extends Node = Node>(selector: string | RefSelector): DOMWrapper<T>; |
| 18 | + abstract findAll<K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<HTMLElementTagNameMap[K]>[]; |
| 19 | + abstract findAll<K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<SVGElementTagNameMap[K]>[]; |
| 20 | + abstract findAll<T extends Element>(selector: string): DOMWrapper<T>[]; |
| 21 | + abstract findAll(selector: string): DOMWrapper<Element>[]; |
| 22 | + findComponent<T extends never>(selector: string): WrapperLike; |
| 23 | + 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>>; |
| 24 | + 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>>; |
| 25 | + findComponent<T extends DefinedComponent>(selector: T | Exclude<FindComponentSelector, FunctionalComponent>): VueWrapper<InstanceType<T>>; |
| 26 | + findComponent<T extends FunctionalComponent>(selector: T): DOMWrapper<Node>; |
| 27 | + findComponent<T extends FunctionalComponent>(selector: string): DOMWrapper<Element>; |
| 28 | + findComponent<T extends never>(selector: NameSelector | RefSelector): VueWrapper; |
| 29 | + findComponent<T extends ComponentPublicInstance>(selector: T | FindComponentSelector): VueWrapper<T>; |
| 30 | + findComponent<T extends never>(selector: FindComponentSelector): WrapperLike; |
| 31 | + findAllComponents<T extends never>(selector: string): WrapperLike[]; |
| 32 | + findAllComponents<T extends DefinedComponent>(selector: T | Exclude<FindAllComponentsSelector, FunctionalComponent>): VueWrapper<InstanceType<T>>[]; |
| 33 | + findAllComponents<T extends FunctionalComponent>(selector: T): DOMWrapper<Node>[]; |
| 34 | + findAllComponents<T extends FunctionalComponent>(selector: string): DOMWrapper<Element>[]; |
| 35 | + findAllComponents<T extends never>(selector: NameSelector): VueWrapper[]; |
| 36 | + findAllComponents<T extends ComponentPublicInstance>(selector: T | FindAllComponentsSelector): VueWrapper<T>[]; |
| 37 | + findAllComponents<T extends never>(selector: FindAllComponentsSelector): WrapperLike[]; |
| 38 | + abstract setValue(value?: any): Promise<void>; |
| 39 | + html(options?: { |
| 40 | + raw?: boolean; |
| 41 | + }): string; |
| 42 | + classes(): string[]; |
| 43 | + classes(className: string): boolean; |
| 44 | + attributes(): { |
| 45 | + [key: string]: string; |
| 46 | + }; |
| 47 | + attributes(key: string): string | undefined; |
| 48 | + text(): string; |
| 49 | + exists(): boolean; |
| 50 | + get<K extends keyof HTMLElementTagNameMap>(selector: K): Omit<DOMWrapper<HTMLElementTagNameMap[K]>, 'exists'>; |
| 51 | + get<K extends keyof SVGElementTagNameMap>(selector: K): Omit<DOMWrapper<SVGElementTagNameMap[K]>, 'exists'>; |
| 52 | + get<T extends Element = Element>(selector: string): Omit<DOMWrapper<T>, 'exists'>; |
| 53 | + get<T extends Node = Node>(selector: string | RefSelector): Omit<DOMWrapper<T>, 'exists'>; |
| 54 | + getComponent<T extends never>(selector: string): Omit<WrapperLike, 'exists'>; |
| 55 | + getComponent<T extends DefinedComponent>(selector: T | Exclude<FindComponentSelector, FunctionalComponent>): Omit<VueWrapper<InstanceType<T>>, 'exists'>; |
| 56 | + getComponent<T extends FunctionalComponent>(selector: T | string): Omit<DOMWrapper<Element>, 'exists'>; |
| 57 | + getComponent<T extends never>(selector: NameSelector | RefSelector): Omit<VueWrapper, 'exists'>; |
| 58 | + getComponent<T extends ComponentPublicInstance>(selector: T | FindComponentSelector): Omit<VueWrapper<T>, 'exists'>; |
| 59 | + getComponent<T extends never>(selector: FindComponentSelector): Omit<WrapperLike, 'exists'>; |
| 60 | + protected isDisabled: () => boolean; |
| 61 | + isVisible(): boolean; |
| 62 | + protected abstract getCurrentComponent(): ComponentInternalInstance | void; |
| 63 | + trigger(eventString: DomEventNameWithModifier, options?: TriggerOptions): Promise<void>; |
| 64 | + trigger(eventString: string, options?: TriggerOptions): Promise<void>; |
| 65 | +} |
0 commit comments