wrapperLike.d.ts 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { DomEventNameWithModifier } from '../constants/dom-events';
  2. import { TriggerOptions } from '../createDomEvent';
  3. import { DefinedComponent, FindAllComponentsSelector, FindComponentSelector, NameSelector, RefSelector } from '../types';
  4. import { VueWrapper } from '../vueWrapper';
  5. import { ComponentPublicInstance, FunctionalComponent } from 'vue';
  6. import type { DOMWrapper } from '../domWrapper';
  7. export default interface WrapperLike {
  8. readonly element: Node;
  9. find<K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<HTMLElementTagNameMap[K]>;
  10. find<K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<SVGElementTagNameMap[K]>;
  11. find<T extends Element = Element>(selector: string): DOMWrapper<T>;
  12. find<T extends Node = Node>(selector: string | RefSelector): DOMWrapper<T>;
  13. findAll<K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<HTMLElementTagNameMap[K]>[];
  14. findAll<K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<SVGElementTagNameMap[K]>[];
  15. findAll<T extends Element>(selector: string): DOMWrapper<T>[];
  16. findAll(selector: string): DOMWrapper<Element>[];
  17. findComponent<T extends never>(selector: string): WrapperLike;
  18. findComponent<T extends DefinedComponent>(selector: T | Exclude<FindComponentSelector, FunctionalComponent>): VueWrapper<InstanceType<T>>;
  19. findComponent<T extends FunctionalComponent>(selector: T | string): DOMWrapper<Element>;
  20. findComponent<T extends never>(selector: NameSelector | RefSelector): VueWrapper;
  21. findComponent<T extends ComponentPublicInstance>(selector: T | FindComponentSelector): VueWrapper<T>;
  22. findComponent(selector: FindComponentSelector): WrapperLike;
  23. findAllComponents<T extends never>(selector: string): WrapperLike[];
  24. findAllComponents<T extends DefinedComponent>(selector: T | Exclude<FindAllComponentsSelector, FunctionalComponent>): VueWrapper<InstanceType<T>>[];
  25. findAllComponents<T extends FunctionalComponent>(selector: string): DOMWrapper<Element>[];
  26. findAllComponents<T extends FunctionalComponent>(selector: T): DOMWrapper<Node>[];
  27. findAllComponents<T extends never>(selector: NameSelector): VueWrapper[];
  28. findAllComponents<T extends ComponentPublicInstance>(selector: T | FindAllComponentsSelector): VueWrapper<T>[];
  29. findAllComponents(selector: FindAllComponentsSelector): WrapperLike[];
  30. get<K extends keyof HTMLElementTagNameMap>(selector: K): Omit<DOMWrapper<HTMLElementTagNameMap[K]>, 'exists'>;
  31. get<K extends keyof SVGElementTagNameMap>(selector: K): Omit<DOMWrapper<SVGElementTagNameMap[K]>, 'exists'>;
  32. get<T extends Element = Element>(selector: string): Omit<DOMWrapper<T>, 'exists'>;
  33. get<T extends Node = Node>(selector: string | RefSelector): Omit<DOMWrapper<T>, 'exists'>;
  34. getComponent<T extends never>(selector: string): Omit<WrapperLike, 'exists'>;
  35. getComponent<T extends DefinedComponent>(selector: T | Exclude<FindComponentSelector, FunctionalComponent>): Omit<VueWrapper<InstanceType<T>>, 'exists'>;
  36. getComponent<T extends FunctionalComponent>(selector: T | string): Omit<DOMWrapper<Element>, 'exists'>;
  37. getComponent<T extends ComponentPublicInstance>(selector: T | FindComponentSelector): Omit<VueWrapper<T>, 'exists'>;
  38. getComponent<T extends never>(selector: FindComponentSelector): Omit<WrapperLike, 'exists'>;
  39. html(): string;
  40. classes(): string[];
  41. classes(className: string): boolean;
  42. classes(className?: string): string[] | boolean;
  43. attributes(): {
  44. [key: string]: string;
  45. };
  46. attributes(key: string): string | undefined;
  47. attributes(key?: string): {
  48. [key: string]: string;
  49. } | string | undefined;
  50. text(): string;
  51. exists(): boolean;
  52. setValue(value: any): Promise<void>;
  53. isVisible(): boolean;
  54. trigger(eventString: DomEventNameWithModifier, options?: TriggerOptions): Promise<void>;
  55. trigger(eventString: string, options?: TriggerOptions): Promise<void>;
  56. }