@@ -5,17 +5,41 @@ const compC = {
5
5
name : 'ComponentC' ,
6
6
template : '<div class="C">C</div>'
7
7
}
8
+
9
+ const compD = {
10
+ name : 'ComponentD' ,
11
+ template : '<comp-c class="c-as-root-on-d" />' ,
12
+ components : { compC }
13
+ }
14
+
8
15
const compB = {
9
16
name : 'component-b' ,
10
- template : '<div class="B">TextBefore<comp-c/>TextAfter<comp-c/></div>' ,
11
- components : { compC }
17
+ template : `
18
+ <div class="B">
19
+ TextBefore
20
+ <comp-c />
21
+ TextAfter
22
+ <comp-c />
23
+ <comp-d id="compD" />
24
+ </div>` ,
25
+ components : { compC, compD }
12
26
}
13
27
const compA = {
14
- template : '<div class="A"><comp-b/><hello ref="b"/></div>' ,
28
+ template : `
29
+ <div class="A">
30
+ <comp-b />
31
+ <hello ref="b" />
32
+ <div class="domElement" />
33
+ </div>` ,
15
34
components : { compB, Hello }
16
35
}
17
36
18
37
describe ( 'findComponent' , ( ) => {
38
+ it ( 'does not find plain dom elements' , ( ) => {
39
+ const wrapper = mount ( compA )
40
+ expect ( wrapper . findComponent ( '.domElement' ) ) . toBeFalsy ( )
41
+ } )
42
+
19
43
it ( 'finds component by ref' , ( ) => {
20
44
const wrapper = mount ( compA )
21
45
// find by ref
@@ -28,6 +52,19 @@ describe('findComponent', () => {
28
52
expect ( wrapper . findComponent ( '.C' ) . $options . name ) . toEqual ( 'ComponentC' )
29
53
} )
30
54
55
+ it ( 'does allows using complicated DOM selector query' , ( ) => {
56
+ const wrapper = mount ( compA )
57
+ expect ( wrapper . findComponent ( '.B > .C' ) . $options . name ) . toEqual ( 'ComponentC' )
58
+ } )
59
+
60
+ it ( 'finds a component when root of mounted component' , async ( ) => {
61
+ const wrapper = mount ( compD )
62
+ // make sure it finds the component, not its root
63
+ expect ( wrapper . findComponent ( '.c-as-root-on-d' ) . $options . name ) . toEqual (
64
+ 'ComponentC'
65
+ )
66
+ } )
67
+
31
68
it ( 'finds component by name' , ( ) => {
32
69
const wrapper = mount ( compA )
33
70
expect ( wrapper . findComponent ( { name : 'Hello' } ) . $el . textContent ) . toBe (
0 commit comments