@vue/test-utils

  • Version 2.4.6
  • Published
  • 1.51 MB
  • 2 dependencies
  • MIT license

Install

npm i @vue/test-utils
yarn add @vue/test-utils
pnpm add @vue/test-utils

Overview

Component testing utils for Vue 3.

Index

Variables

variable config

const config: GlobalConfigOptions;

    variable RouterLinkStub

    const RouterLinkStub: any;

      variable shallowMount

      const shallowMount: <
      T,
      C = T extends ((...args: any) => any) | (new (...args: any) => any)
      ? T
      : T extends { props?: infer Props }
      ? DefineComponent<
      Props extends (infer PropNames)[] | readonly (infer PropNames)[]
      ? { [key in PropNames extends string ? PropNames : string]?: any }
      : Props
      >
      : DefineComponent,
      P extends ComponentProps<C> = ComponentProps<C>
      >(
      originalComponent: T,
      options?: ComponentMountingOptions<C, P>
      ) => VueWrapper<any, ComponentPublicInstance<ComponentProps<C>, any>>;

        Functions

        function createWrapperError

        createWrapperError: <T extends object>(
        wrapperType: 'DOMWrapper' | 'VueWrapper'
        ) => T;

          function disableAutoUnmount

          disableAutoUnmount: () => void;

            function enableAutoUnmount

            enableAutoUnmount: (hook: (callback: () => void) => void) => void;

              function flushPromises

              flushPromises: () => Promise<unknown>;

                function mount

                mount: <
                T,
                C = T extends ((...args: any) => any) | (new (...args: any) => any)
                ? T
                : T extends { props?: infer Props }
                ? DefineComponent<
                Props extends (infer PropNames)[] | readonly (infer PropNames)[]
                ? { [key in PropNames extends string ? PropNames : string]?: any }
                : Props
                >
                : DefineComponent,
                P extends ComponentProps<C> = ComponentProps<C>
                >(
                originalComponent: T,
                options?: ComponentMountingOptions<C, P>
                ) => VueWrapper<
                ComponentProps<C> & ComponentData<C> & ComponentExposed<C>,
                ComponentPublicInstance<
                ComponentProps<C>,
                ComponentData<C> & ComponentExposed<C> & Omit<P, keyof ComponentProps<C>>
                >
                >;

                  function renderToString

                  renderToString: <
                  T,
                  C = T extends ((...args: any) => any) | (new (...args: any) => any)
                  ? T
                  : T extends { props?: infer Props }
                  ? DefineComponent<
                  Props extends (infer PropNames)[] | readonly (infer PropNames)[]
                  ? { [key in PropNames extends string ? PropNames : string]?: any }
                  : Props
                  >
                  : DefineComponent
                  >(
                  originalComponent: T,
                  options?: ComponentMountingOptions<C> &
                  Pick<RenderMountingOptions<any>, 'attachTo'>
                  ) => Promise<string>;

                    Classes

                    class BaseWrapper

                    abstract class BaseWrapper<ElementType extends Node> implements WrapperLike {}

                      constructor

                      protected constructor(element: Node);

                        property element

                        readonly element: Node & {
                        __vue_app__?: any;
                        __vueParentComponent?: ComponentInternalInstance;
                        };

                          property isDisabled

                          protected isDisabled: () => boolean;

                            property wrapperElement

                            protected readonly wrapperElement: Node & {
                            __vue_app__?: any;
                            __vueParentComponent?: ComponentInternalInstance;
                            };

                              method attributes

                              attributes: { (): { [key: string]: string }; (key: string): string };

                                method classes

                                classes: { (): string[]; (className: string): boolean };

                                  method exists

                                  exists: () => boolean;

                                    method find

                                    find: {
                                    <K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<
                                    HTMLElementTagNameMap[K]
                                    >;
                                    <K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<
                                    SVGElementTagNameMap[K]
                                    >;
                                    <T extends Element = Element>(selector: string): DOMWrapper<T>;
                                    <T extends Node = Node>(selector: string | RefSelector): DOMWrapper<T>;
                                    };

                                      method findAll

                                      abstract findAll: {
                                      <K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<
                                      HTMLElementTagNameMap[K]
                                      >[];
                                      <K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<
                                      SVGElementTagNameMap[K]
                                      >[];
                                      <T extends Element>(selector: string): DOMWrapper<T>[];
                                      (selector: string): DOMWrapper<Element>[];
                                      };

                                        method findAllComponents

                                        findAllComponents: {
                                        <T extends never>(selector: string): WrapperLike[];
                                        <T extends DefinedComponent>(selector: T): VueWrapper<
                                        InstanceType<T>,
                                        any
                                        >[];
                                        <T extends FunctionalComponent>(selector: T): DOMWrapper<Node>[];
                                        <T extends FunctionalComponent>(selector: string): DOMWrapper<Element>[];
                                        <T extends never>(selector: NameSelector): VueWrapper<unknown, any>[];
                                        <T extends ComponentPublicInstance>(selector: any): VueWrapper<T, any>[];
                                        <T extends never>(selector: any): WrapperLike[];
                                        };

                                          method findAllDOMElements

                                          protected findAllDOMElements: (selector: string) => Element[];

                                            method findComponent

                                            findComponent: {
                                            <T extends never>(selector: string): WrapperLike;
                                            <
                                            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>,
                                            any
                                            >;
                                            <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, any>,
                                            any
                                            >;
                                            <T extends DefinedComponent>(selector: T): VueWrapper<InstanceType<T>, any>;
                                            <T extends FunctionalComponent>(selector: T): DOMWrapper<Node>;
                                            <T extends FunctionalComponent>(selector: string): DOMWrapper<Element>;
                                            <T extends never>(selector: RefSelector | NameSelector): VueWrapper<
                                            unknown,
                                            any
                                            >;
                                            <T extends ComponentPublicInstance>(selector: any): VueWrapper<T, any>;
                                            <T extends never>(selector: any): WrapperLike;
                                            };

                                              method get

                                              get: {
                                              <K extends keyof HTMLElementTagNameMap>(selector: K): Omit<
                                              DOMWrapper<HTMLElementTagNameMap[K]>,
                                              'exists'
                                              >;
                                              <K extends keyof SVGElementTagNameMap>(selector: K): Omit<
                                              DOMWrapper<SVGElementTagNameMap[K]>,
                                              'exists'
                                              >;
                                              <T extends Element = Element>(selector: string): Omit<
                                              DOMWrapper<T>,
                                              'exists'
                                              >;
                                              <T extends Node = Node>(selector: string | RefSelector): Omit<
                                              DOMWrapper<T>,
                                              'exists'
                                              >;
                                              };

                                                method getComponent

                                                getComponent: {
                                                <T extends never>(selector: string): Omit<WrapperLike, 'exists'>;
                                                <T extends DefinedComponent>(selector: T): Omit<
                                                VueWrapper<InstanceType<T>, any>,
                                                'exists'
                                                >;
                                                <T extends FunctionalComponent>(selector: string | T): Omit<
                                                DOMWrapper<Element>,
                                                'exists'
                                                >;
                                                <T extends never>(selector: RefSelector | NameSelector): Omit<
                                                VueWrapper<unknown, any>,
                                                'exists'
                                                >;
                                                <T extends ComponentPublicInstance>(selector: any): Omit<
                                                VueWrapper<T, any>,
                                                'exists'
                                                >;
                                                <T extends never>(selector: any): Omit<WrapperLike, 'exists'>;
                                                };

                                                  method getCurrentComponent

                                                  protected abstract getCurrentComponent: () => ComponentInternalInstance | void;

                                                    method getRootNodes

                                                    protected abstract getRootNodes: () => VueNode[];

                                                      method html

                                                      html: (options?: { raw?: boolean }) => string;

                                                        method isVisible

                                                        isVisible: () => boolean;

                                                          method setValue

                                                          abstract setValue: (value?: any) => Promise<void>;

                                                            method text

                                                            text: () => string;

                                                              method trigger

                                                              trigger: {
                                                              (
                                                              eventString: DomEventNameWithModifier,
                                                              options?: TriggerOptions
                                                              ): Promise<void>;
                                                              (eventString: string, options?: TriggerOptions): Promise<void>;
                                                              };

                                                                class DOMWrapper

                                                                class DOMWrapper<NodeType extends Node> extends BaseWrapper<NodeType> {}

                                                                  constructor

                                                                  constructor(element: Node);

                                                                    method find

                                                                    find: {
                                                                    <K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<
                                                                    HTMLElementTagNameMap[K]
                                                                    >;
                                                                    <K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<
                                                                    SVGElementTagNameMap[K]
                                                                    >;
                                                                    <T extends Element = Element>(selector: string): DOMWrapper<T>;
                                                                    <T extends Node = Node>(selector: string | RefSelector): DOMWrapper<T>;
                                                                    };

                                                                      method findAll

                                                                      findAll: {
                                                                      <K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<
                                                                      HTMLElementTagNameMap[K]
                                                                      >[];
                                                                      <K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<
                                                                      SVGElementTagNameMap[K]
                                                                      >[];
                                                                      <T extends Element>(selector: string): DOMWrapper<T>[];
                                                                      };

                                                                        method findAllComponents

                                                                        findAllComponents: (selector: any) => any;

                                                                          method getCurrentComponent

                                                                          getCurrentComponent: () => import('vue').ComponentInternalInstance | undefined;

                                                                            method getRootNodes

                                                                            getRootNodes: () => import('./types').VueNode<NodeType>[];

                                                                              method setValue

                                                                              setValue: (value?: any) => Promise<void>;

                                                                                class VueWrapper

                                                                                class VueWrapper<
                                                                                VM = unknown,
                                                                                T extends ComponentPublicInstance = VM & ComponentPublicInstance
                                                                                > extends BaseWrapper<Node> {}

                                                                                  constructor

                                                                                  constructor(
                                                                                  app: any,
                                                                                  vm: ComponentPublicInstance,
                                                                                  setProps?: (props: Record<string, unknown>) => void
                                                                                  );

                                                                                    property element

                                                                                    readonly element: ComponentPublicInstance;

                                                                                      property vm

                                                                                      readonly vm: ComponentPublicInstance;

                                                                                        method emitted

                                                                                        emitted: {
                                                                                        <T = unknown>(): Record<string, T[]>;
                                                                                        <T = unknown[]>(eventName: string): T[];
                                                                                        };

                                                                                          method exists

                                                                                          exists: () => boolean;

                                                                                            method findAll

                                                                                            findAll: {
                                                                                            <K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<
                                                                                            HTMLElementTagNameMap[K]
                                                                                            >[];
                                                                                            <K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<
                                                                                            SVGElementTagNameMap[K]
                                                                                            >[];
                                                                                            <T extends Element>(selector: string): DOMWrapper<T>[];
                                                                                            };

                                                                                              method getCurrentComponent

                                                                                              getCurrentComponent: () => any;

                                                                                                method getRootNodes

                                                                                                protected getRootNodes: () => VueNode[];

                                                                                                  method isVisible

                                                                                                  isVisible: () => boolean;

                                                                                                    method props

                                                                                                    props: {
                                                                                                    (): T['$props'];
                                                                                                    <Selector extends keyof T['$props']>(
                                                                                                    selector: Selector
                                                                                                    ): T['$props'][Selector];
                                                                                                    };

                                                                                                      method setData

                                                                                                      setData: (data: Record<string, unknown>) => Promise<void>;

                                                                                                        method setProps

                                                                                                        setProps: (props: Partial<T['$props']>) => Promise<void>;

                                                                                                          method setValue

                                                                                                          setValue: (value: unknown, prop?: string) => Promise<void>;

                                                                                                            method unmount

                                                                                                            unmount: () => void;

                                                                                                              Interfaces

                                                                                                              interface MountingOptions

                                                                                                              interface MountingOptions<Props, Data = {}>
                                                                                                              extends BaseMountingOptions<Props, Data> {}
                                                                                                              • Mounting options for mount and shallowMount

                                                                                                              property attachTo

                                                                                                              attachTo?: Element | string;
                                                                                                              • Specify where to mount the component. Can be a valid CSS selector, or an Element connected to the document.

                                                                                                                See Also

                                                                                                                • https://test-utils.vuejs.org/api/#attachto

                                                                                                              Type Aliases

                                                                                                              type ComponentMountingOptions

                                                                                                              type ComponentMountingOptions<
                                                                                                              T,
                                                                                                              P extends ComponentProps<T> = ComponentProps<T>
                                                                                                              > = Omit<MountingOptions<P, ComponentData<T>>, 'slots'> & {
                                                                                                              slots?: {
                                                                                                              [K in keyof ComponentSlots<T>]: WithArray<
                                                                                                              | ShimSlotReturnType<ComponentSlots<T>[K]>
                                                                                                              | string
                                                                                                              | VNode
                                                                                                              | (new () => any)
                                                                                                              | {
                                                                                                              template: string;
                                                                                                              }
                                                                                                              >;
                                                                                                              };
                                                                                                              } & Record<string, unknown>;

                                                                                                                Package Files (12)

                                                                                                                Dependencies (2)

                                                                                                                Dev Dependencies (38)

                                                                                                                Peer Dependencies (0)

                                                                                                                No peer dependencies.

                                                                                                                Badge

                                                                                                                To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

                                                                                                                You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/@vue/test-utils.

                                                                                                                • Markdown
                                                                                                                  [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/@vue/test-utils)
                                                                                                                • HTML
                                                                                                                  <a href="https://www.jsdocs.io/package/@vue/test-utils"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>