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) => {
109
109
function findByTestId (selector ) {
110
110
const dataSelector = ` [data-testid='${ selector} ']`
111
111
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)
117
113
}
118
114
119
115
return {
Original file line number Diff line number Diff line change @@ -11,7 +11,10 @@ import { isRefSelector } from './utils'
11
11
import { createWrapperError } from './errorWrapper'
12
12
13
13
export 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
+ }
15
18
super ( element )
16
19
// plugins hook
17
20
config . plugins . DOMWrapper . extend ( this )
Original file line number Diff line number Diff line change @@ -7,7 +7,9 @@ export enum WrapperType {
7
7
VueWrapper
8
8
}
9
9
10
- type DOMWrapperFactory = < T extends Node > ( element : T ) => DOMWrapperType < T >
10
+ type DOMWrapperFactory = < T extends Node > (
11
+ element : T | null | undefined
12
+ ) => DOMWrapperType < T >
11
13
type VueWrapperFactory = < T extends ComponentPublicInstance > (
12
14
app : App | null ,
13
15
vm : T ,
Original file line number Diff line number Diff line change 1
1
import { describe , expect , it } from 'vitest'
2
2
import { h , defineComponent } from 'vue'
3
3
4
- import { mount } from '../src'
4
+ import { DOMWrapper , mount } from '../src'
5
5
6
6
describe ( 'exists' , ( ) => {
7
7
it ( 'returns false when element does not exist' , ( ) => {
@@ -50,4 +50,9 @@ describe('exists', () => {
50
50
await wrapper . setProps ( { hide : true } )
51
51
expect ( child . exists ( ) ) . toBe ( false )
52
52
} )
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
+ } )
53
58
} )
You can’t perform that action at this time.
0 commit comments