baseWrapper.d.ts 5.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. }