@@ -26,6 +26,32 @@ describe('find', () => {
26
26
expect ( wrapper . find ( '#my-span' ) . exists ( ) ) . toBe ( true )
27
27
} )
28
28
29
+ test ( 'find using current node after findAllComponents' , ( ) => {
30
+ const ComponentB = defineComponent ( {
31
+ name : 'ComponentB' ,
32
+ template : '<div><slot></slot></div>'
33
+ } )
34
+
35
+ const ComponentA = defineComponent ( {
36
+ name : 'ComponentA' ,
37
+ template : `
38
+ <div>
39
+ <component-b v-for="item in [1, 2]" :key="item">
40
+ <input type="text" :value="item">
41
+ </component-b>
42
+ </div>
43
+ ` ,
44
+ components : { ComponentB }
45
+ } )
46
+
47
+ const wrapper = mount ( ComponentA )
48
+ const firstCompB = wrapper . findComponent ( { name : 'ComponentB' } )
49
+ const lastCompB = wrapper . findAllComponents ( { name : 'ComponentB' } ) [ 1 ]
50
+
51
+ expect ( firstCompB . find ( 'input' ) . element . value ) . toBe ( '1' )
52
+ expect ( lastCompB . find ( 'input' ) . element . value ) . toBe ( '2' )
53
+ } )
54
+
29
55
it ( 'returns the root element in single root element' , ( ) => {
30
56
const Component = defineComponent ( {
31
57
render ( ) {
@@ -85,6 +111,32 @@ describe('findAll', () => {
85
111
expect ( wrapper . findAll ( '.span' ) ) . toHaveLength ( 2 )
86
112
} )
87
113
114
+ test ( 'findAll using current node after findAllComponents' , ( ) => {
115
+ const ComponentB = defineComponent ( {
116
+ name : 'ComponentB' ,
117
+ template : '<div><slot></slot></div>'
118
+ } )
119
+
120
+ const ComponentA = defineComponent ( {
121
+ name : 'ComponentA' ,
122
+ template : `
123
+ <div>
124
+ <component-b v-for="item in [1, 2]" :key="item">
125
+ <input type="text" :value="item">
126
+ </component-b>
127
+ </div>
128
+ ` ,
129
+ components : { ComponentB }
130
+ } )
131
+
132
+ const wrapper = mount ( ComponentA )
133
+ const firstCompB = wrapper . findComponent ( { name : 'ComponentB' } )
134
+ const lastCompB = wrapper . findAllComponents ( { name : 'ComponentB' } ) [ 1 ]
135
+
136
+ expect ( firstCompB . findAll ( 'input' ) [ 0 ] . element . value ) . toBe ( '1' )
137
+ expect ( lastCompB . findAll ( 'input' ) [ 0 ] . element . value ) . toBe ( '2' )
138
+ } )
139
+
88
140
test ( 'works with suspense' , async ( ) => {
89
141
const wrapper = mount ( SuspenseComponent )
90
142
0 commit comments