Skip to content

Upgrading @vue/test-utils 1 to 2

Breaking1.3.6 → 2.5.1Breaking10Platform1Deprecated3New46Changed38Fixed198Other309

BreakingUpgrade verdict

10 breaking changes and a platform requirement change.

  • Tests that mount Vue class-style components will no longer work; only the standard component style is supported.
  • Drops class component support.
  • Snapshots taken with shallowMount may change because components without an explicit name now get a default name.
  • Code that creates a DOMWrapper directly must now also pass the VueWrapper that contains it.
Top 5 of 14 that need code or config changes

Adds js-beautify ^2.0.0, vue-component-type-helpers ^3.0.0.

Drops dom-event-types, lodash, pretty.

Installs 19 packages in all (was 61).

Breaking10
Removes support for class components.
Drops class component support.
Uses the default name for components with a setup script and nameless components, which may affect shallowMount snapshots.
shallowMount
Removes a circular dependency: DOMWrapper now requires the containing VueWrapper as its second argument.
DOMWrapperVueWrapperfindComponent
Removes the ability to use findComponent with a DOM selector.
findComponentgetComponent
Renames setModelValue to setValue.
setModelValuesetValue
Warns of possible minor breaking changes to types from major under-the-hood TypeScript type changes.
Reverts automatic two way sync of v-model prop values.
v-model
Changes the plugins API from object to array to support arbitrary options.
plugins
Splits attrs and props into separate mounting options.
Platform1
Removes @vue/compiler-sfc as a peer dependency.
@vue/compiler-sfc
Deprecated3
Documents the deprecation of .at.
.at
Adds deprecated support for propsData in mount for migration purposes.
mountpropsData
Keeps exporting shallowMount but recommends the shallow mounting option.
shallowMountshallow

Generated by DepDelta from published .d.ts files. Not mixed with prose notes.

  • added: abstract method BaseWrapper.findAll(selector: string): DOMWrapper<Element>[]
  • added: abstract method BaseWrapper.findAll<K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<HTMLElementTagNameMap[K]>[]
  • added: abstract method BaseWrapper.findAll<K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<SVGElementTagNameMap[K]>[]
  • added: abstract method BaseWrapper.findAll<T extends Element>(selector: string): DOMWrapper<T>[]
  • added: abstract method BaseWrapper.setValue(value?: any): Promise<void>
  • added: default abstract class BaseWrapper<ElementType extends Node> implements WrapperLike
  • added: get BaseWrapper.element(): VueNode<ElementType>
  • added: method BaseWrapper.attributes(): { [key: string]: string }
  • added: method BaseWrapper.attributes(key: string): string | undefined
  • added: method BaseWrapper.classes(): string[]
  • added: method BaseWrapper.classes(className: string): boolean
  • added: method BaseWrapper.exists(): boolean
  • added: method BaseWrapper.find<K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<HTMLElementTagNameMap[K]>
  • added: method BaseWrapper.find<K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<SVGElementTagNameMap[K]>
  • added: method BaseWrapper.find<T extends Element = Element>(selector: string): DOMWrapper<T>
  • added: method BaseWrapper.find<T extends Node = Node>(selector: string | RefSelector): DOMWrapper<T>
  • added: method BaseWrapper.findAllComponents<T extends (...args: any[]) => VNode>(selector: T): unknown extends ReturnType<T> ? DOMWrapper<Node>[] : '__ctx' extends keyof ReturnType<T> ? VueWrapper[] : DOMWrapper<Node>[]
  • added: method BaseWrapper.findAllComponents<T extends ComponentPublicInstance>(selector: T | FindAllComponentsSelector): VueWrapper<T>[]
  • added: method BaseWrapper.findAllComponents<T extends DefinedComponent>(selector: T | Exclude<FindAllComponentsSelector, FunctionalComponent<any>>): VueWrapper<InstanceType<T>>[]
  • added: method BaseWrapper.findAllComponents<T extends FunctionalComponent<any>>(selector: T): DOMWrapper<Node>[]
  • added: method BaseWrapper.findAllComponents<T extends FunctionalComponent<any>>(selector: string): DOMWrapper<Element>[]
  • added: method BaseWrapper.findAllComponents<T extends never>(selector: FindAllComponentsSelector): WrapperLike[]
  • added: method BaseWrapper.findAllComponents<T extends never>(selector: NameSelector): VueWrapper[]
  • added: method BaseWrapper.findAllComponents<T extends never>(selector: string): WrapperLike[]
  • added: method BaseWrapper.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>>
  • added: method BaseWrapper.findComponent<T extends (...args: any[]) => VNode>(selector: T): unknown extends ReturnType<T> ? DOMWrapper<Node> : '__ctx' extends keyof ReturnType<T> ? VueWrapper : DOMWrapper<Node>
  • added: method BaseWrapper.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>>
  • added: method BaseWrapper.findComponent<T extends ComponentPublicInstance>(selector: T | FindComponentSelector): VueWrapper<T>
  • added: method BaseWrapper.findComponent<T extends DefinedComponent>(selector: T | Exclude<FindComponentSelector, FunctionalComponent<any>>): VueWrapper<InstanceType<T>>
  • added: method BaseWrapper.findComponent<T extends FunctionalComponent<any>>(selector: T): DOMWrapper<Node>
  • added: method BaseWrapper.findComponent<T extends FunctionalComponent<any>>(selector: string): DOMWrapper<Element>
  • added: method BaseWrapper.findComponent<T extends never>(selector: FindComponentSelector): WrapperLike
  • added: method BaseWrapper.findComponent<T extends never>(selector: NameSelector | RefSelector): VueWrapper
  • added: method BaseWrapper.findComponent<T extends never>(selector: string): WrapperLike
  • added: method BaseWrapper.get<K extends keyof HTMLElementTagNameMap>(selector: K): Omit<DOMWrapper<HTMLElementTagNameMap[K]>, 'exists'>
  • added: method BaseWrapper.get<K extends keyof SVGElementTagNameMap>(selector: K): Omit<DOMWrapper<SVGElementTagNameMap[K]>, 'exists'>
  • added: method BaseWrapper.get<T extends Element = Element>(selector: string): Omit<DOMWrapper<T>, 'exists'>
  • added: method BaseWrapper.get<T extends Node = Node>(selector: string | RefSelector): Omit<DOMWrapper<T>, 'exists'>
  • added: method BaseWrapper.getComponent<T extends (...args: any[]) => VNode>(selector: T): unknown extends ReturnType<T> ? Omit<DOMWrapper<Element>, 'exists'> : '__ctx' extends keyof ReturnType<T> ? Omit<VueWrapper, 'exists'> : Omit<DOMWrapper<Element>, 'exists'>
  • added: method BaseWrapper.getComponent<T extends ComponentPublicInstance>(selector: T | FindComponentSelector): Omit<VueWrapper<T>, 'exists'>
  • added: method BaseWrapper.getComponent<T extends DefinedComponent>(selector: T | Exclude<FindComponentSelector, FunctionalComponent<any>>): Omit<VueWrapper<InstanceType<T>>, 'exists'>
  • added: method BaseWrapper.getComponent<T extends FunctionalComponent<any>>(selector: T | string): Omit<DOMWrapper<Element>, 'exists'>
  • added: method BaseWrapper.getComponent<T extends never>(selector: FindComponentSelector): Omit<WrapperLike, 'exists'>
  • added: method BaseWrapper.getComponent<T extends never>(selector: NameSelector | RefSelector): Omit<VueWrapper, 'exists'>
  • added: method BaseWrapper.getComponent<T extends never>(selector: string): Omit<WrapperLike, 'exists'>
  • added: method BaseWrapper.html(options?: { raw?: boolean }): string
  • added: method BaseWrapper.isVisible(): boolean
  • added: method BaseWrapper.text(): string
  • added: method BaseWrapper.trigger(eventString: DomEventNameWithModifier, options?: TriggerOptions): Promise<void>
  • added: method BaseWrapper.trigger(eventString: string, options?: TriggerOptions): Promise<void>
  • added: protected abstract method BaseWrapper.getCurrentComponent(): ComponentInternalInstance | void
  • added: protected abstract method BaseWrapper.getRootNodes(): VueNode[]
  • added: protected constructor BaseWrapper(element: ElementType)
  • added: protected method BaseWrapper.findAllDOMElements(selector: string): Element[]
  • added: protected property BaseWrapper.isDisabled: () => boolean
  • added: protected readonly property BaseWrapper.wrapperElement: VueNode<ElementType>
  • added: const RouterLinkStub: import('vue').DefineComponent<import('vue').ExtractPropTypes<{ to: { type: (ObjectConstructor | StringConstructor)[]; required: true }; custom: { type: Boolean…
  • added: const config: GlobalConfigOptions
  • added: interface GlobalConfigOptions
  • added: property GlobalConfigOptions.global: Required<Omit<GlobalMountOptions, 'stubs'>> & { stubs: Record<string, Stub> }
  • added: property GlobalConfigOptions.plugins: { VueWrapper: Pluggable<VueWrapper>; DOMWrapper: Pluggable<DOMWrapper<Node>>; createStubs?: CustomCreateStub }
  • added: property GlobalConfigOptions.renderStubDefaultSlot?: boolean
  • added: const _default: Record<DomEventName, DomEvent>
  • added: const codesByKeyName: { readonly backspace: 'Backspace'; readonly tab: 'Tab'; readonly enter: 'Enter'; readonly esc: 'Escape'; readonly space: 'Space'; readonly pageup: 'PageUp'; re…
  • added: const ignorableKeyModifiers: string[]
  • added: const keyCodesByKeyName: { readonly backspace: 8; readonly tab: 9; readonly enter: 13; readonly esc: 27; readonly space: 32; readonly pageup: 33; readonly pagedown: 34; readonly end: 3…
  • added: const mouseKeyModifiers: readonly ['left', 'middle', 'right']
  • added: const systemKeyModifiers: readonly ['ctrl', 'shift', 'alt', 'meta']
  • added: default _default
  • added: interface DomEvent
  • added: property DomEvent.bubbles: boolean
  • added: property DomEvent.cancelable: boolean
  • added: property DomEvent.eventInterface: EventInterface | string
  • added: type DomEventName = keyof typeof domEvents
  • added: type DomEventNameWithModifier = DomEventName | `${DomEventName}.${(typeof systemKeyModifiers)[number]}` | `click.${(typeof mouseKeyModifiers)[number]}` | `click.${(typeof systemKeyModifiers)[…
  • added: type EventInterface = 'AnimationEvent' | 'AudioProcessingEvent' | 'BeforeInputEvent' | 'BeforeUnloadEvent' | 'BlobEvent' | 'CSSFontFaceLoadEvent' | 'ClipboardEvent' | 'CloseEvent' |…
  • added: type KeyName = keyof typeof keyCodesByKeyName
  • added: type Modifier = (typeof systemKeyModifiers)[number] | (typeof mouseKeyModifiers)[number]
  • added: export { KeyName }
  • added: export { codesByKeyName }
  • added: export { keyCodesByKeyName }
  • added: function createDOMEvent(eventString: DomEventNameWithModifier | string, options?: TriggerOptions): Event & TriggerOptions
  • added: index TriggerOptions[custom: string]: any
  • added: interface TriggerOptions
  • added: property TriggerOptions.code?: string
  • added: property TriggerOptions.key?: string
  • added: property TriggerOptions.keyCode?: number
  • added: function createInstance(inputComponent: DefineComponent<{}, {}, any, any, any, any>, options?: MountingOptions<any> & Record<string, any>): { app: import('vue').App<Element>; props: Record<string, unknown>; componentRef: import('vue').Ref<null, null> }
  • added: class DOMWrapper<NodeType extends Node> extends BaseWrapper<NodeType>
  • added: constructor DOMWrapper(element: NodeType | null | undefined, subTree?: VNode | null)
  • added: method DOMWrapper.find<K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<HTMLElementTagNameMap[K]>
  • added: method DOMWrapper.find<K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<SVGElementTagNameMap[K]>
  • added: method DOMWrapper.find<T extends Element = Element>(selector: string): DOMWrapper<T>
  • added: method DOMWrapper.find<T extends Node = Node>(selector: string | RefSelector): DOMWrapper<T>
  • added: method DOMWrapper.findAll<K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<HTMLElementTagNameMap[K]>[]
  • added: method DOMWrapper.findAll<K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<SVGElementTagNameMap[K]>[]
  • added: method DOMWrapper.findAll<T extends Element>(selector: string): DOMWrapper<T>[]
  • added: method DOMWrapper.findAllComponents(selector: any): any
  • added: method DOMWrapper.getCurrentComponent(): import('vue').ComponentInternalInstance | undefined
  • added: method DOMWrapper.getRootNodes(): any[]
  • added: method DOMWrapper.setValue(value?: any): Promise<void>
  • added: protected readonly property DOMWrapper.subTree: VNode | null | undefined
  • added: const attachEmitListener: () => void
  • added: const recordEvent: (vm: ComponentInternalInstance, event: string, args: unknown[]) => void
  • added: const removeEventHistory: (vm: ComponentPublicInstance) => void
  • added: function emitted<T = unknown>(vm: ComponentPublicInstance, eventName?: string): undefined | T[] | Record<string, T[]>
  • added: function createWrapperError<T extends object>(wrapperType: 'DOMWrapper' | 'VueWrapper'): T
  • added: export { BaseWrapper }
  • added: export { ComponentMountingOptions }
  • added: export { DOMWrapper }
  • added: export { GlobalMountOptions }
  • added: export { MountingOptions }
  • added: export { RouterLinkStub }
  • added: export { Stubs }
  • added: export { VueWrapper }
  • added: export { config }
  • added: export { createWrapperError }
  • added: export { disableAutoUnmount }
  • added: export { enableAutoUnmount }
  • added: export { flushPromises }
  • added: export { mount }
  • added: export { renderToString }
  • added: export { shallowMount }
  • added: default interface WrapperLike
  • added: method WrapperLike.attributes(): { [key: string]: string }
  • added: method WrapperLike.attributes(key: string): string | undefined
  • added: method WrapperLike.attributes(key?: string): { [key: string]: string } | string | undefined
  • added: method WrapperLike.classes(): string[]
  • added: method WrapperLike.classes(className: string): boolean
  • added: method WrapperLike.classes(className?: string): string[] | boolean
  • added: method WrapperLike.exists(): boolean
  • added: method WrapperLike.find<K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<HTMLElementTagNameMap[K]>
  • added: method WrapperLike.find<K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<SVGElementTagNameMap[K]>
  • added: method WrapperLike.find<T extends Element = Element>(selector: string): DOMWrapper<T>
  • added: method WrapperLike.find<T extends Node = Node>(selector: string | RefSelector): DOMWrapper<T>
  • added: method WrapperLike.findAll(selector: string): DOMWrapper<Element>[]
  • added: method WrapperLike.findAll<K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<HTMLElementTagNameMap[K]>[]
  • added: method WrapperLike.findAll<K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<SVGElementTagNameMap[K]>[]
  • added: method WrapperLike.findAll<T extends Element>(selector: string): DOMWrapper<T>[]
  • added: method WrapperLike.findAllComponents(selector: FindAllComponentsSelector): WrapperLike[]
  • added: method WrapperLike.findAllComponents<T extends (...args: any[]) => VNode>(selector: T): unknown extends ReturnType<T> ? DOMWrapper<Node>[] : '__ctx' extends keyof ReturnType<T> ? VueWrapper[] : DOMWrapper<Node>[]
  • added: method WrapperLike.findAllComponents<T extends ComponentPublicInstance>(selector: T | FindAllComponentsSelector): VueWrapper<T>[]
  • added: method WrapperLike.findAllComponents<T extends DefinedComponent>(selector: T | Exclude<FindAllComponentsSelector, FunctionalComponent<any>>): VueWrapper<InstanceType<T>>[]
  • added: method WrapperLike.findAllComponents<T extends FunctionalComponent<any>>(selector: T): DOMWrapper<Node>[]
  • added: method WrapperLike.findAllComponents<T extends FunctionalComponent<any>>(selector: string): DOMWrapper<Element>[]
  • added: method WrapperLike.findAllComponents<T extends never>(selector: NameSelector): VueWrapper[]
  • added: method WrapperLike.findAllComponents<T extends never>(selector: string): WrapperLike[]
  • added: method WrapperLike.findComponent(selector: FindComponentSelector): WrapperLike
  • added: method WrapperLike.findComponent<T extends (...args: any[]) => VNode>(selector: T): unknown extends ReturnType<T> ? DOMWrapper<Element> : '__ctx' extends keyof ReturnType<T> ? VueWrapper : DOMWrapper<Element>
  • added: method WrapperLike.findComponent<T extends ComponentPublicInstance>(selector: T | FindComponentSelector): VueWrapper<T>
  • added: method WrapperLike.findComponent<T extends DefinedComponent>(selector: T | Exclude<FindComponentSelector, FunctionalComponent<any>>): VueWrapper<InstanceType<T>>
  • added: method WrapperLike.findComponent<T extends FunctionalComponent<any>>(selector: T | string): DOMWrapper<Element>
  • added: method WrapperLike.findComponent<T extends never>(selector: NameSelector | RefSelector): VueWrapper
  • added: method WrapperLike.findComponent<T extends never>(selector: string): WrapperLike
  • added: method WrapperLike.get<K extends keyof HTMLElementTagNameMap>(selector: K): Omit<DOMWrapper<HTMLElementTagNameMap[K]>, 'exists'>
  • added: method WrapperLike.get<K extends keyof SVGElementTagNameMap>(selector: K): Omit<DOMWrapper<SVGElementTagNameMap[K]>, 'exists'>
  • added: method WrapperLike.get<T extends Element = Element>(selector: string): Omit<DOMWrapper<T>, 'exists'>
  • added: method WrapperLike.get<T extends Node = Node>(selector: string | RefSelector): Omit<DOMWrapper<T>, 'exists'>
  • added: method WrapperLike.getComponent<T extends (...args: any[]) => VNode>(selector: T): unknown extends ReturnType<T> ? Omit<DOMWrapper<Element>, 'exists'> : '__ctx' extends keyof ReturnType<T> ? Omit<VueWrapper, 'exists'> : Omit<DOMWrapper<Element>, 'exists'>
  • added: method WrapperLike.getComponent<T extends ComponentPublicInstance>(selector: T | FindComponentSelector): Omit<VueWrapper<T>, 'exists'>
  • added: method WrapperLike.getComponent<T extends DefinedComponent>(selector: T | Exclude<FindComponentSelector, FunctionalComponent<any>>): Omit<VueWrapper<InstanceType<T>>, 'exists'>
  • added: method WrapperLike.getComponent<T extends FunctionalComponent<any>>(selector: T | string): Omit<DOMWrapper<Element>, 'exists'>
  • added: method WrapperLike.getComponent<T extends never>(selector: FindComponentSelector): Omit<WrapperLike, 'exists'>
  • added: method WrapperLike.getComponent<T extends never>(selector: string): Omit<WrapperLike, 'exists'>
  • added: method WrapperLike.html(): string
  • added: method WrapperLike.isVisible(): boolean
  • added: method WrapperLike.setValue(value: any): Promise<void>
  • added: method WrapperLike.text(): string
  • added: method WrapperLike.trigger(eventString: DomEventNameWithModifier, options?: TriggerOptions): Promise<void>
  • added: method WrapperLike.trigger(eventString: string, options?: TriggerOptions): Promise<void>
  • added: readonly property WrapperLike.element: Node
  • added: const shallowMount: typeof mount
  • added: function mount<T, C = T extends ((...args: any) => any) | (new (...args: any) => any) ? T : T extends { props?: infer Props } ? DefineComponent<Props extends Readonly<(infer PropNames)[]> | (infer PropNames)[] ? { [key in PropNames extends string ? PropNames : string]?: any } : Props> : DefineComponent, P extends ComponentProps<C> = ComponentProps<C>>(originalComponent: T, options?: ComponentMoun…
  • added: 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…
  • added: function renderToString<T, C = T extends ((...args: any) => any) | (new (...args: any) => any) ? T : T extends { props?: infer Props } ? DefineComponent<Props extends Readonly<(infer PropNames)[]> | (infer PropNames)[] ? { [key in PropNames extends string ? PropNames : string]?: any } : Props> : DefineComponent>(originalComponent: T, options?: ComponentMountingOptions<C> & Pick<RenderMountingOpti…
  • added: function getOriginalComponentFromStub(stub: Component): Component | undefined
  • added: function registerStub({ source, stub }: { source: Component; stub: Component }): void
  • added: interface MountingOptions<Props, Data = {}> extends BaseMountingOptions<Props, Data>
  • added: interface NameSelector
  • added: interface RefSelector
  • added: interface RenderMountingOptions<Props, Data = {}> extends BaseMountingOptions<Props, Data>
  • added: property MountingOptions.attachTo?: Element | string
  • added: property NameSelector.length?: never
  • added: property NameSelector.name: string
  • added: property RefSelector.ref: string
  • added: property RenderMountingOptions.attachTo?: never
  • added: type DeepRef<T> = T extends Ref<T> ? T : T extends object ? DeepRef<T> : Ref<T>
  • added: type DefinedComponent = new (...args: any[]) => any
  • added: type FindAllComponentsSelector = DefinedComponent | FunctionalComponent<any> | ComponentOptions | NameSelector | string
  • added: type FindComponentSelector = RefSelector | FindAllComponentsSelector
  • added: type GlobalMountOptions = { plugins?: (Plugin | [Plugin, ...any[]])[]; config?: Partial<Omit<AppConfig, 'isNativeTag'>>; mixins?: ComponentOptions[]; mocks?: Record<string, any>; provid…
  • added: type Slot = VNode | string | { render: Function } | Function | Component
  • added: type Stub = boolean | Component | Directive
  • added: type Stubs = Record<string, Stub> | Array<string>
  • added: type VueElement = VueNode<Element>
  • added: type VueNode<T extends Node = Node> = T & { __vue_app__?: any; __vueParentComponent?: ComponentInternalInstance }
  • added: const getGlobalThis: () => any
  • added: const isObject: (obj: unknown) => obj is Record<string, any>
  • added: const mergeDeep: (target: Record<string, unknown>, source: Record<string, unknown>) => Record<string, unknown>
  • added: function convertStubsToRecord(stubs: Stubs): Record<string, Stub>
  • added: function getComponentsFromStubs(stubs: Stubs): Record<string, Component | boolean>
  • added: function getDirectivesFromStubs(stubs: Stubs): Record<string, Directive | true>
  • added: function hasOwnProperty<O extends object, P extends PropertyKey>(obj: O, prop: P): obj is O & Record<P, unknown>
  • added: function hasSetupState(vm: ComponentPublicInstance): vm is ComponentPublicInstance & { $: { setupState: Record<string, unknown> } }
  • added: function isComponent(component: unknown): component is ConcreteComponent
  • added: function isFunctionalComponent(component: unknown): component is FunctionalComponent<any>
  • added: function isNotNullOrUndefined<T extends object>(obj: T | null | undefined): obj is T
  • added: function isObjectComponent(component: unknown): component is ComponentOptions
  • added: function isRefSelector(selector: string | RefSelector): selector is RefSelector
  • added: function isScriptSetup(vm: ComponentPublicInstance): vm is ComponentPublicInstance & { $: { setupState: Record<string, unknown> } }
  • added: function mergeGlobalProperties(mountGlobal?: GlobalMountOptions): Required<GlobalMountOptions>
  • added: function textContent(element: Node): string
  • added: function disableAutoUnmount(): void
  • added: function enableAutoUnmount(hook: (callback: () => void) => void): void
  • added: function trackInstance(wrapper: VueWrapper<ComponentPublicInstance>): void
  • added: function processSlot(source?: string, Vue?: typeof vue): (ctx?: {}) => any
  • added: const getComponentName: (instance: any | null, type: VNodeTypes) => string
  • added: const getComponentRegisteredName: (instance: ComponentInternalInstance | null, type: VNodeTypes) => string | null
  • added: function find(root: VNode, selector: FindAllComponentsSelector): ComponentInternalInstance[]
  • added: function matches(node: VNode, rawSelector: FindAllComponentsSelector): boolean
  • added: function flushPromises(): Promise<unknown>
  • added: function getRootNodes(vnode: VNode): Node[]
  • added: const isDeepRef: <T>(r: DeepRef<T> | unknown) => r is DeepRef<T>
  • added: function isElement(element: Node): element is Element
  • added: function isElementVisible<T extends Element>(element: T): boolean
  • added: function matchName(target: string, sourceName: string): boolean
  • added: function stringifyNode(node: Node): string
  • added: function isLegacyExtendedComponent(component: unknown): component is { (): Function; super: Function; options: ComponentOptions }
  • added: function isLegacyFunctionalComponent(component: unknown): boolean
  • added: function unwrapLegacyVueExtendComponent<T>(selector: T): T | ComponentOptions
  • added: const camelize: (str: string) => string
  • added: const capitalize: (str: string) => string
  • added: const enum ShapeFlags
  • added: const hyphenate: (str: string) => string
  • added: member ShapeFlags.ARRAY_CHILDREN = 16
  • added: member ShapeFlags.COMPONENT = 6
  • added: member ShapeFlags.COMPONENT_KEPT_ALIVE = 512
  • added: member ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE = 256
  • added: member ShapeFlags.ELEMENT = 1
  • added: member ShapeFlags.FUNCTIONAL_COMPONENT = 2
  • added: member ShapeFlags.SLOTS_CHILDREN = 32
  • added: member ShapeFlags.STATEFUL_COMPONENT = 4
  • added: member ShapeFlags.SUSPENSE = 128
  • added: member ShapeFlags.TELEPORT = 64
  • added: member ShapeFlags.TEXT_CHILDREN = 8
  • added: const createStub: ({ name, type, renderStubDefaultSlot }: StubOptions) => import('vue').DefineComponent<{}, () => import('vue').VNode<import('vue').RendererNode, import('vue').R…
  • added: function createStubComponentsTransformer({ rootComponents, stubs, shallow, renderStubDefaultSlot }: CreateStubComponentsTransformerConfig): VTUVNodeTypeTransformer
  • added: interface CreateStubComponentsTransformerConfig
  • added: property CreateStubComponentsTransformerConfig.renderStubDefaultSlot: boolean
  • added: property CreateStubComponentsTransformerConfig.rootComponents: { component?: Component; functional?: Component }
  • added: property CreateStubComponentsTransformerConfig.shallow?: boolean
  • added: property CreateStubComponentsTransformerConfig.stubs?: Record<string, Component | boolean>
  • added: type CustomCreateStub = (params: { name: string; component: ConcreteComponent; registerStub: (config: { source: Component; stub: Component }) => void }) => ConcreteComponent
  • added: function createStubDirectivesTransformer({ directives }: CreateDirectivesTransformerConfig): VTUVNodeTypeTransformer
  • added: const createVNodeTransformer: ({ rootComponents, transformers }: { rootComponents: RootComponents; transformers: VTUVNodeTypeTransformer[] }) => VNodeArgsTransformerFn
  • added: const isKeepAlive: (type: any) => boolean
  • added: const isRootComponent: (rootComponents: RootComponents, type: VNodeTransformerInputComponentType, instance: InstanceArgsType) => boolean
  • added: const isTeleport: (type: any) => boolean
  • added: interface RootComponents
  • added: property RootComponents.component?: Component
  • added: property RootComponents.functional?: Component
  • added: type VTUVNodeTypeTransformer = (inputType: VNodeTransformerInputComponentType, instance: InstanceArgsType) => VNodeTransformerInputComponentType
  • added: class VueWrapper<VM = unknown, T extends ComponentPublicInstance = VM & ComponentPublicInstance> extends BaseWrapper<Node>
  • added: constructor VueWrapper(app: App | null, vm: T, setProps?: (props: Record<string, unknown>) => void)
  • added: get VueWrapper.element(): T['$el']
  • added: get VueWrapper.vm(): T
  • added: method VueWrapper.emitted<T = unknown>(): Record<string, T[]>
  • added: method VueWrapper.emitted<T = unknown[]>(eventName: string): undefined | T[]
  • added: method VueWrapper.exists(): boolean
  • added: method VueWrapper.findAll<K extends keyof HTMLElementTagNameMap>(selector: K): DOMWrapper<HTMLElementTagNameMap[K]>[]
  • added: method VueWrapper.findAll<K extends keyof SVGElementTagNameMap>(selector: K): DOMWrapper<SVGElementTagNameMap[K]>[]
  • added: method VueWrapper.findAll<T extends Element>(selector: string): DOMWrapper<T>[]
  • added: method VueWrapper.getCurrentComponent(): import('vue').ComponentInternalInstance
  • added: method VueWrapper.isVisible(): boolean
  • added: method VueWrapper.props(): T['$props']
  • added: method VueWrapper.props<Selector extends keyof T['$props']>(selector: Selector): T['$props'][Selector]
  • added: method VueWrapper.setData(data: Record<string, unknown>): Promise<void>
  • added: method VueWrapper.setProps(props: Partial<T['$props']>): Promise<void>
  • added: method VueWrapper.setValue(value: unknown, prop?: string): Promise<void>
  • added: method VueWrapper.unmount(): void
  • added: protected method VueWrapper.getRootNodes(): VueNode[]
  • added: const createDOMWrapper: DOMWrapperFactory
  • added: const createVueWrapper: VueWrapperFactory
  • added: enum WrapperType
  • added: function registerFactory(type: WrapperType.DOMWrapper, fn: DOMWrapperFactory): void
  • added: function registerFactory(type: WrapperType.VueWrapper, fn: VueWrapperFactory): void
  • added: member WrapperType.DOMWrapper = 0
  • added: member WrapperType.VueWrapper = 1
  • removed: function createLocalVue(options?: any): typeof Vue
  • removed: function createWrapper(node: HTMLElement, options?: WrapperOptions): Wrapper<null>
  • removed: function createWrapper(node: Vue, options?: WrapperOptions): Wrapper<Vue>
  • removed: function enableAutoDestroy(hook: (...args: any[]) => any): void
  • removed: function mount<Props = DefaultProps, PropDefs = PropsDefinition<Props>> (component: FunctionalComponentOptions<Props, PropDefs>, options?: MountOptions<Vue>): Wrapper<Vue>
  • removed: function mount<V extends Vue, Data, Methods, Computed, Props> (component: ExtendedVue<V, Data, Methods, Computed, Props>, options?: ThisTypedMountOptions<V>): Wrapper<CombinedVueInstance<V, Data, Methods, Computed, Props> & Vue>
  • removed: function mount<V extends Vue, Props = DefaultProps> (component: ExtendedVue<V, {}, {}, {}, Props>, options?: FunctionalComponentMountOptions<V>): Wrapper<CombinedVueInstance<V, {}, {}, {}, Props> & Vue>
  • removed: function mount<V extends Vue> (component: ComponentOptions<V>, options?: ThisTypedMountOptions<V>): Wrapper<V>
  • removed: function mount<V extends Vue> (component: VueClass<V>, options?: ThisTypedMountOptions<V>): Wrapper<V>
  • removed: function resetAutoDestroyState(): void
  • removed: function shallowMount<Props = DefaultProps, PropDefs = PropsDefinition<Props>>(component: FunctionalComponentOptions<Props, PropDefs>, options?: ShallowMountOptions<Vue>): Wrapper<Vue>
  • removed: function shallowMount<V extends Vue, Data, Methods, Computed, Props> (component: ExtendedVue<V, Data, Methods, Computed, Props>, options?: ThisTypedShallowMountOptions<V>): Wrapper<CombinedVueInstance<V, Data, Methods, Computed, Props> & Vue>
  • removed: function shallowMount<V extends Vue, Props = DefaultProps> (component: ExtendedVue<V, {}, {}, {}, Props>, options?: FunctionalComponentShallowMountOptions<V>): Wrapper<CombinedVueInstance<V, {}, {}, {}, Props> & Vue>
  • removed: function shallowMount<V extends Vue> (component: ComponentOptions<V>, options?: ThisTypedShallowMountOptions<V>): Wrapper<V>
  • removed: function shallowMount<V extends Vue> (component: VueClass<V>, options?: ThisTypedShallowMountOptions<V>): Wrapper<V>
  • removed: interface VueTestUtilsConfigOptions
  • removed: interface Wrapper<V extends Vue | null, el extends Element = Element> extends BaseWrapper
  • removed: interface WrapperArray<V extends Vue> extends BaseWrapper
  • removed: let RouterLinkStub: VueClass<Vue>
  • removed: let config: VueTestUtilsConfigOptions
  • removed: method Wrapper.emitted (): { [name: string]: Array<Array<any>>|undefined }
  • removed: method Wrapper.emitted (event: string): Array<any>|undefined
  • removed: method Wrapper.emittedByOrder (): Array<{ name: string, args: Array<any> }>
  • removed: method Wrapper.find (selector: NameSelector): Wrapper<Vue>
  • removed: method Wrapper.find (selector: RefSelector): Wrapper<Vue>
  • removed: method Wrapper.find<Props = DefaultProps, PropDefs = PropsDefinition<Props>>(selector: FunctionalComponentOptions<Props, PropDefs>): Wrapper<Vue>
  • removed: method Wrapper.find<R extends Vue> (selector: ComponentOptions<R>): Wrapper<R>
  • removed: method Wrapper.find<R extends Vue> (selector: VueClass<R>): Wrapper<R>
  • removed: method Wrapper.find<el extends Element>(selector: string): Wrapper<Vue, el>
  • removed: method Wrapper.findAll (selector: NameSelector): WrapperArray<Vue>
  • removed: method Wrapper.findAll (selector: RefSelector): WrapperArray<Vue>
  • removed: method Wrapper.findAll (selector: string): WrapperArray<Vue>
  • removed: method Wrapper.findAll<Props = DefaultProps, PropDefs = PropsDefinition<Props>>(selector: FunctionalComponentOptions<Props, PropDefs>): WrapperArray<Vue>
  • removed: method Wrapper.findAll<R extends Vue> (selector: ComponentOptions<R>): WrapperArray<R>
  • removed: method Wrapper.findAll<R extends Vue> (selector: VueClass<R>): WrapperArray<R>
  • removed: method Wrapper.findAllComponents(selector: NameSelector): WrapperArray<Vue>
  • removed: method Wrapper.findAllComponents(selector: RefSelector): WrapperArray<Vue>
  • removed: method Wrapper.findAllComponents<Props = DefaultProps, PropDefs = PropsDefinition<Props>>(selector: FunctionalComponentOptions<Props, PropDefs>): WrapperArray<Vue>
  • removed: method Wrapper.findAllComponents<R extends Vue> (selector: ComponentOptions<R>): WrapperArray<R>
  • removed: method Wrapper.findAllComponents<R extends Vue> (selector: VueClass<R>): WrapperArray<R>
  • removed: method Wrapper.findComponent (selector: NameSelector): Wrapper<Vue>
  • removed: method Wrapper.findComponent (selector: RefSelector): Wrapper<Vue>
  • removed: method Wrapper.findComponent<Props = DefaultProps, PropDefs = PropsDefinition<Props>>(selector: FunctionalComponentOptions<Props, PropDefs>): Wrapper<Vue>
  • removed: method Wrapper.findComponent<R extends Vue> (selector: ComponentOptions<R>): Wrapper<R>
  • removed: method Wrapper.findComponent<R extends Vue> (selector: VueClass<R>): Wrapper<R>
  • removed: method Wrapper.get (selector: NameSelector): Wrapper<Vue>
  • removed: method Wrapper.get (selector: RefSelector): Wrapper<Vue>
  • removed: method Wrapper.get<Props = DefaultProps, PropDefs = PropsDefinition<Props>>(selector: FunctionalComponentOptions<Props, PropDefs>): Wrapper<Vue>
  • removed: method Wrapper.get<R extends Vue> (selector: ComponentOptions<R>): Wrapper<R>
  • removed: method Wrapper.get<R extends Vue> (selector: VueClass<R>): Wrapper<R>
  • removed: method Wrapper.get<el extends Element>(selector: string): Wrapper<Vue, el>
  • removed: method Wrapper.getComponent (selector: NameSelector): Wrapper<Vue>
  • removed: method Wrapper.getComponent (selector: RefSelector): Wrapper<Vue>
  • removed: method Wrapper.getComponent<Props = DefaultProps, PropDefs = PropsDefinition<Props>>(selector: FunctionalComponentOptions<Props, PropDefs>): Wrapper<Vue>
  • removed: method Wrapper.getComponent<R extends Vue> (selector: ComponentOptions<R>): Wrapper<R>
  • removed: method Wrapper.getComponent<R extends Vue> (selector: VueClass<R>): Wrapper<R>
  • removed: method Wrapper.html (): string
  • removed: method Wrapper.name (): string
  • removed: method Wrapper.text (): string
  • removed: method WrapperArray.at(index: number): Wrapper<V>
  • removed: method WrapperArray.filter(predicate: (value: Wrapper<V>, index: number, array: Wrapper<V>[]) => any): WrapperArray<Vue>
  • removed: property VueTestUtilsConfigOptions.deprecationWarningHandler?: Function
  • removed: property VueTestUtilsConfigOptions.methods: Record<string, Function>
  • removed: property VueTestUtilsConfigOptions.mocks: Record<string, any>
  • removed: property VueTestUtilsConfigOptions.provide?: Record<string, any>
  • removed: property VueTestUtilsConfigOptions.showDeprecationWarnings?: boolean
  • removed: property VueTestUtilsConfigOptions.stubs: Record<string, Component | boolean | string>
  • removed: readonly property Wrapper.element: el
  • removed: readonly property Wrapper.options: WrapperOptions
  • removed: readonly property Wrapper.vm: V
  • removed: readonly property WrapperArray.length: number
  • removed: readonly property WrapperArray.wrappers: Array<Wrapper<V>>