File tree Expand file tree Collapse file tree 4 files changed +14
-8
lines changed
Expand file tree Collapse file tree 4 files changed +14
-8
lines changed Original file line number Diff line number Diff line change @@ -109,11 +109,7 @@ const DataTestIdPlugin = (wrapper) => {
109109 function findByTestId (selector ) {
110110 const dataSelector = ` [data-testid='${ selector} ']`
111111 const element = wrapper .element .querySelector (dataSelector)
112- if (element) {
113- return new DOMWrapper (element)
114- }
115-
116- return createWrapperError (' DOMWrapper' )
112+ return new DOMWrapper (element)
117113 }
118114
119115 return {
Original file line number Diff line number Diff line change @@ -11,7 +11,10 @@ import { isRefSelector } from './utils'
1111import { createWrapperError } from './errorWrapper'
1212
1313export class DOMWrapper < NodeType extends Node > extends BaseWrapper < NodeType > {
14- constructor ( element : NodeType ) {
14+ constructor ( element : NodeType | null | undefined ) {
15+ if ( ! element ) {
16+ return createWrapperError ( 'DOMWrapper' )
17+ }
1518 super ( element )
1619 // plugins hook
1720 config . plugins . DOMWrapper . extend ( this )
Original file line number Diff line number Diff line change @@ -7,7 +7,9 @@ export enum WrapperType {
77 VueWrapper
88}
99
10- type DOMWrapperFactory = < T extends Node > ( element : T ) => DOMWrapperType < T >
10+ type DOMWrapperFactory = < T extends Node > (
11+ element : T | null | undefined
12+ ) => DOMWrapperType < T >
1113type VueWrapperFactory = < T extends ComponentPublicInstance > (
1214 app : App | null ,
1315 vm : T ,
Original file line number Diff line number Diff line change 11import { describe , expect , it } from 'vitest'
22import { h , defineComponent } from 'vue'
33
4- import { mount } from '../src'
4+ import { DOMWrapper , mount } from '../src'
55
66describe ( 'exists' , ( ) => {
77 it ( 'returns false when element does not exist' , ( ) => {
@@ -50,4 +50,9 @@ describe('exists', () => {
5050 await wrapper . setProps ( { hide : true } )
5151 expect ( child . exists ( ) ) . toBe ( false )
5252 } )
53+
54+ it ( 'returns false when wrapper is manually constructed against nullish element' , ( ) => {
55+ const wrapper = new DOMWrapper ( null )
56+ expect ( wrapper . exists ( ) ) . toBe ( false )
57+ } )
5358} )
You can’t perform that action at this time.
0 commit comments