@@ -42,37 +42,71 @@ describe('pie hovering', function() {
4242 * cyFinal: 160
4343 * }];
4444 */
45- var futureData ;
45+ var hoverData ,
46+ unhoverData ;
4647
4748
4849 gd . on ( 'plotly_hover' , function ( data ) {
49- futureData = data ;
50+ hoverData = data ;
51+ } ) ;
52+
53+ gd . on ( 'plotly_unhover' , function ( data ) {
54+ unhoverData = data ;
5055 } ) ;
5156
5257 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 = [
5564 'v' , 'label' , 'color' , 'i' , 'hidden' ,
5665 'text' , 'px1' , 'pxmid' , 'midangle' ,
5766 '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 ) ;
6074 } ) ;
6175
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 ) {
6377 var count = 0 ,
64- futureData = [ ] ;
78+ hoverData = [ ] ;
6579
6680 gd . on ( 'plotly_hover' , function ( data ) {
6781 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 ) ;
69101 } ) ;
70102
71103 mouseEvent ( 'mouseover' , 180 , 140 ) ;
104+ mouseEvent ( 'mouseout' , 180 , 140 ) ;
72105 setTimeout ( function ( ) {
73106 mouseEvent ( 'mouseover' , 240 , 200 ) ;
107+ mouseEvent ( 'mouseout' , 240 , 200 ) ;
74108 expect ( count ) . toEqual ( 2 ) ;
75- expect ( futureData [ 0 ] ) . not . toEqual ( futureData [ 1 ] ) ;
109+ expect ( unhoverData [ 0 ] ) . not . toEqual ( unhoverData [ 1 ] ) ;
76110 done ( ) ;
77111 } , 100 ) ;
78112 } ) ;
0 commit comments