/
wrapper.d-test.ts
119 lines (92 loc) · 3.35 KB
/
wrapper.d-test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import { expectType } from './index'
import { defineComponent } from 'vue'
import { mount } from '../src'
const AppWithDefine = defineComponent({
template: ''
})
const wrapper = mount(AppWithDefine)
const domWrapper = wrapper.find('#other')
// find Vue wrapper
// HTML element selector
let inputMaybe = wrapper.find('input')
expectType<HTMLInputElement | undefined>(inputMaybe.element)
// SVG element selector
let lineMaybe = wrapper.find('line')
expectType<SVGLineElement | undefined>(lineMaybe.element)
// string selector
let byClassMaybe = wrapper.find('.todo')
expectType<Element | undefined>(byClassMaybe.element)
// find DOM wrapper
// HTML element selector
inputMaybe = domWrapper.find('input')
expectType<HTMLInputElement | undefined>(inputMaybe.element)
// SVG element selector
lineMaybe = domWrapper.find('line')
expectType<SVGLineElement | undefined>(lineMaybe.element)
// string selector
byClassMaybe = domWrapper.find('.todo')
expectType<Element | undefined>(byClassMaybe.element)
// findAll
// HTML element selector
let inputArray = wrapper.findAll('input')
expectType<HTMLInputElement | undefined>(inputArray[0].element)
// SVG element selector
let lineArray = wrapper.findAll('line')
expectType<SVGLineElement | undefined>(lineArray[0].element)
// string selector
let byClassArray = wrapper.findAll('.todo')
expectType<Element | undefined>(byClassArray[0].element)
// findAll DOM wrapper
// HTML element selector
inputArray = domWrapper.findAll('input')
expectType<HTMLInputElement | undefined>(inputArray[0].element)
// SVG element selector
lineArray = domWrapper.findAll('line')
expectType<SVGLineElement | undefined>(lineArray[0].element)
// string selector
byClassArray = domWrapper.findAll('.todo')
expectType<Element | undefined>(byClassArray[0].element)
// emitted
// event name without specific type
let incrementEventWithoutType = wrapper.emitted('increment')
expectType<unknown[][] | undefined>(incrementEventWithoutType)
// event name
let incrementEvent = wrapper.emitted<{ count: number }>('increment')
expectType<{ count: number }[] | undefined>(incrementEvent)
expectType<{ count: number }>(incrementEvent![0])
// without event name
let allEvents = wrapper.emitted()
expectType<Record<string, unknown[]>>(allEvents)
// get
// HTML element selector
let input = wrapper.get('input')
expectType<HTMLInputElement>(input.element)
// SVG element selector
let line = wrapper.get('line')
expectType<SVGLineElement>(line.element)
// string selector
let byClass = wrapper.get('.todo')
expectType<Element>(byClass.element)
// get DOM wrapper
// HTML element selector
input = domWrapper.get('input')
expectType<HTMLInputElement>(input.element)
// SVG element selector
line = domWrapper.get('line')
expectType<SVGLineElement>(line.element)
// string selector
byClass = domWrapper.get('.todo')
expectType<Element>(byClass.element)
// attributes
expectType<{ [key: string]: string }>(wrapper.attributes())
expectType<string | undefined>(wrapper.attributes('key'))
expectType<{ [key: string]: string }>(domWrapper.attributes())
expectType<string | undefined>(domWrapper.attributes('key'))
// classes
expectType<Array<string>>(wrapper.classes())
expectType<boolean>(wrapper.classes('class'))
expectType<Array<string>>(domWrapper.classes())
expectType<boolean>(domWrapper.classes('class'))
// props
expectType<{ [key: string]: any }>(wrapper.props())
expectType<any>(wrapper.props('prop'))