1+ import Vue from 'vue' ;
2+
3+ describe ( 'Vue.eventmanager' , ( ) => {
4+
5+ it ( 'Trigger Method with one param' , ( ) => {
6+ new Vue ( {
7+ created ( ) {
8+ this . $trigger ( 'someEvent' , 'foo' ) ;
9+ } ,
10+ events : {
11+ someEvent ( param ) {
12+ expect ( param ) . toBe ( 'foo' ) ;
13+ }
14+ }
15+ } ) ;
16+ } ) ;
17+
18+ it ( 'Trigger Method with Array' , ( ) => {
19+ new Vue ( {
20+ created ( ) {
21+ this . $trigger ( 'paramArray' , [ 'foo' , 'bar' ] ) ;
22+ } ,
23+ events : {
24+ paramArray ( param , param2 ) {
25+ expect ( param ) . toBe ( 'foo' ) ;
26+ expect ( param2 ) . toBe ( 'bar' ) ;
27+ }
28+ }
29+ } ) ;
30+ } ) ;
31+
32+ it ( 'Trigger Method with Object' , ( ) => {
33+ new Vue ( {
34+ created ( ) {
35+ this . $trigger ( 'paramObject' , { foo : 'bar' } ) ;
36+ } ,
37+ events : {
38+ paramObject ( param ) {
39+ expect ( param . foo ) . toBe ( 'bar' ) ;
40+ }
41+ }
42+ } ) ;
43+ } ) ;
44+
45+ it ( 'Trigger Method with Priority' , ( ) => {
46+ var vm = new Vue ( {
47+ data ( ) {
48+ return {
49+ lastPrio : null
50+ }
51+ } ,
52+ events : {
53+ // event handler (priority 10)
54+ prioHandler : [
55+ {
56+ // handler callback
57+ handler ( param ) {
58+ this . lastPrio = 10 ;
59+ } ,
60+ // a higher priority, means earlier execution
61+ priority : 10
62+ } ,
63+ {
64+ // handler callback
65+ handler ( param ) {
66+ expect ( this . lastPrio ) . toBe ( 10 ) ;
67+ this . lastPrio = - 10 ;
68+ } ,
69+ // a higher priority, means earlier execution
70+ priority : - 10
71+ }
72+ ]
73+ }
74+ } ) ;
75+ vm . $trigger ( 'prioHandler' ) ;
76+ } ) ;
77+
78+
79+ it ( 'Trigger Method with Different Instances and Priority' , ( ) => {
80+
81+ var vm1 = new Vue ( {
82+ data ( ) {
83+ return {
84+ isLoaded : false
85+ }
86+ } ,
87+ events : {
88+ testEvent ( param ) {
89+ this . isLoaded = true ;
90+ expect ( this . isLoaded ) . toBe ( true ) ;
91+ }
92+ }
93+ } ) ;
94+
95+ var vm2 = new Vue ( {
96+ events : {
97+ testEvent :{
98+ handler ( param ) {
99+ expect ( param ) . toBe ( 'foo' ) ;
100+ } ,
101+ priority : 10
102+ }
103+ }
104+ } ) ;
105+ vm1 . $trigger ( 'testEvent' , 'foo' ) ;
106+ } ) ;
107+
108+ it ( 'Trigger Method with Cancel Event' , ( ) => {
109+
110+ var vm1 = new Vue ( {
111+ data ( ) {
112+ return {
113+ isLoaded : false
114+ }
115+ } ,
116+ events : {
117+ actionCancel ( param ) {
118+ this . isLoaded = true ;
119+ return "lastAction" ;
120+ }
121+ }
122+ } ) ;
123+
124+ var vm2 = new Vue ( {
125+ events : {
126+ actionCancel :{
127+ handler ( param ) {
128+ expect ( param ) . toBe ( 'foo' ) ;
129+ return false ;
130+ } ,
131+ priority : 10
132+ }
133+ }
134+ } ) ;
135+
136+ vm1 . $trigger ( 'actionCancel' , 'foo' ) ;
137+ expect ( vm1 . isLoaded ) . toBe ( false ) ;
138+
139+ } ) ;
140+
141+ } ) ;
0 commit comments