@@ -42,37 +42,71 @@ describe('pie hovering', function() {
42
42
* cyFinal: 160
43
43
* }];
44
44
*/
45
- var futureData ;
45
+ var hoverData ,
46
+ unhoverData ;
46
47
47
48
48
49
gd . on ( 'plotly_hover' , function ( data ) {
49
- futureData = data ;
50
+ hoverData = data ;
51
+ } ) ;
52
+
53
+ gd . on ( 'plotly_unhover' , function ( data ) {
54
+ unhoverData = data ;
50
55
} ) ;
51
56
52
57
mouseEvent ( 'mouseover' , width / 2 , height / 2 ) ;
53
- expect ( futureData . points . length ) . toEqual ( 1 ) ;
54
- expect ( Object . keys ( futureData . points [ 0 ] ) ) . toEqual ( [
58
+ mouseEvent ( 'mouseout' , width / 2 , height / 2 ) ;
59
+
60
+ expect ( hoverData . points . length ) . toEqual ( 1 ) ;
61
+ expect ( unhoverData . points . length ) . toEqual ( 1 ) ;
62
+
63
+ var fields = [
55
64
'v' , 'label' , 'color' , 'i' , 'hidden' ,
56
65
'text' , 'px1' , 'pxmid' , 'midangle' ,
57
66
'px0' , 'largeArc' , 'cxFinal' , 'cyFinal'
58
- ] ) ;
59
- expect ( futureData . points [ 0 ] . i ) . toEqual ( 3 ) ;
67
+ ] ;
68
+
69
+ expect ( Object . keys ( hoverData . points [ 0 ] ) ) . toEqual ( fields ) ;
70
+ expect ( hoverData . points [ 0 ] . i ) . toEqual ( 3 ) ;
71
+
72
+ expect ( Object . keys ( unhoverData . points [ 0 ] ) ) . toEqual ( fields ) ;
73
+ expect ( unhoverData . points [ 0 ] . i ) . toEqual ( 3 ) ;
60
74
} ) ;
61
75
62
- it ( 'should fire when moving from one slice to another' , function ( done ) {
76
+ it ( 'should fire hover event when moving from one slice to another' , function ( done ) {
63
77
var count = 0 ,
64
- futureData = [ ] ;
78
+ hoverData = [ ] ;
65
79
66
80
gd . on ( 'plotly_hover' , function ( data ) {
67
81
count ++ ;
68
- futureData . push ( data ) ;
82
+ hoverData . push ( data ) ;
83
+ } ) ;
84
+
85
+ mouseEvent ( 'mouseover' , 180 , 140 ) ;
86
+ setTimeout ( function ( ) {
87
+ mouseEvent ( 'mouseover' , 240 , 200 ) ;
88
+ expect ( count ) . toEqual ( 2 ) ;
89
+ expect ( hoverData [ 0 ] ) . not . toEqual ( hoverData [ 1 ] ) ;
90
+ done ( ) ;
91
+ } , 100 ) ;
92
+ } ) ;
93
+
94
+ it ( 'should fire unhover event when the mouse moves off the graph' , function ( done ) {
95
+ var count = 0 ,
96
+ unhoverData = [ ] ;
97
+
98
+ gd . on ( 'plotly_unhover' , function ( data ) {
99
+ count ++ ;
100
+ unhoverData . push ( data ) ;
69
101
} ) ;
70
102
71
103
mouseEvent ( 'mouseover' , 180 , 140 ) ;
104
+ mouseEvent ( 'mouseout' , 180 , 140 ) ;
72
105
setTimeout ( function ( ) {
73
106
mouseEvent ( 'mouseover' , 240 , 200 ) ;
107
+ mouseEvent ( 'mouseout' , 240 , 200 ) ;
74
108
expect ( count ) . toEqual ( 2 ) ;
75
- expect ( futureData [ 0 ] ) . not . toEqual ( futureData [ 1 ] ) ;
109
+ expect ( unhoverData [ 0 ] ) . not . toEqual ( unhoverData [ 1 ] ) ;
76
110
done ( ) ;
77
111
} , 100 ) ;
78
112
} ) ;
0 commit comments