1+ var _ = require ( '../../../../src/util' )
2+ var Vue = require ( '../../../../src/vue' )
3+
4+ if ( _ . inBrowser ) {
5+ describe ( 'v-events' , function ( ) {
6+
7+ var el
8+ beforeEach ( function ( ) {
9+ spyOn ( _ , 'warn' )
10+ el = document . createElement ( 'div' )
11+ } )
12+
13+ it ( 'should register events' , function ( ) {
14+ var spy = jasmine . createSpy ( 'v-events' )
15+ new Vue ( {
16+ el : el ,
17+ template : '<div v-component="test" v-events="test:test"></div>' ,
18+ methods : {
19+ test : spy
20+ } ,
21+ components : {
22+ test : {
23+ compiled : function ( ) {
24+ this . $emit ( 'test' )
25+ }
26+ }
27+ }
28+ } )
29+ expect ( spy ) . toHaveBeenCalled ( )
30+ } )
31+
32+ it ( 'should warn when used on non-root node' , function ( ) {
33+ new Vue ( {
34+ el : el ,
35+ template : '<div v-events="test:test"></div>'
36+ } )
37+ expect ( _ . warn ) . toHaveBeenCalled ( )
38+ } )
39+
40+ it ( 'should warn when used on child component root' , function ( ) {
41+ var spy = jasmine . createSpy ( 'v-events' )
42+ new Vue ( {
43+ el : el ,
44+ template : '<div v-component="test"></div>' ,
45+ methods : {
46+ test : spy
47+ } ,
48+ components : {
49+ test : {
50+ replace : true ,
51+ template : '<div v-events="test:test"></div>' ,
52+ compiled : function ( ) {
53+ this . $emit ( 'test' )
54+ }
55+ }
56+ }
57+ } )
58+ expect ( _ . warn ) . toHaveBeenCalled ( )
59+ expect ( spy ) . not . toHaveBeenCalled ( )
60+ } )
61+
62+ it ( 'should warn when method not found on parent' , function ( ) {
63+ new Vue ( {
64+ el : el ,
65+ template : '<div v-component="test" v-events="test:test"></div>' ,
66+ components : {
67+ test : { }
68+ }
69+ } )
70+ expect ( _ . warn ) . toHaveBeenCalled ( )
71+ } )
72+
73+ } )
74+ }
0 commit comments