@@ -63,49 +63,24 @@ describe('zoom box element', function() {
63
63
64
64
describe ( 'main plot pan' , function ( ) {
65
65
66
- var mock = require ( '@mocks/10.json' ) ;
67
66
var gd , modeBar , relayoutCallback ;
68
67
69
- beforeEach ( function ( done ) {
68
+ beforeEach ( function ( ) {
70
69
gd = createGraphDiv ( ) ;
71
-
72
- Plotly . plot ( gd , mock . data , mock . layout ) . then ( function ( ) {
73
-
74
- modeBar = gd . _fullLayout . _modeBar ;
75
- relayoutCallback = jasmine . createSpy ( 'relayoutCallback' ) ;
76
-
77
- gd . on ( 'plotly_relayout' , relayoutCallback ) ;
78
- } )
79
- . catch ( failTest )
80
- . then ( done ) ;
81
70
} ) ;
82
71
83
72
afterEach ( destroyGraphDiv ) ;
84
73
85
74
it ( 'should respond to pan interactions' , function ( done ) {
86
-
75
+ var mock = require ( '@mocks/10.json' ) ;
87
76
var precision = 5 ;
88
77
89
- var buttonPan = selectButton ( modeBar , 'pan2d' ) ;
90
-
91
78
var originalX = [ - 0.6225 , 5.5 ] ;
92
79
var originalY = [ - 1.6340975059013805 , 7.166241526218911 ] ;
93
80
94
81
var newX = [ - 2.0255729166666665 , 4.096927083333333 ] ;
95
82
var newY = [ - 0.3769062155984817 , 8.42343281652181 ] ;
96
83
97
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( originalX , precision ) ;
98
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( originalY , precision ) ;
99
-
100
- // Switch to pan mode
101
- expect ( buttonPan . isActive ( ) ) . toBe ( false ) ; // initially, zoom is active
102
- buttonPan . click ( ) ;
103
- expect ( buttonPan . isActive ( ) ) . toBe ( true ) ; // switched on dragmode
104
-
105
- // Switching mode must not change visible range
106
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( originalX , precision ) ;
107
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( originalY , precision ) ;
108
-
109
84
function _drag ( x0 , y0 , x1 , y1 ) {
110
85
mouseEvent ( 'mousedown' , x0 , y0 ) ;
111
86
mouseEvent ( 'mousemove' , x1 , y1 ) ;
@@ -143,9 +118,27 @@ describe('main plot pan', function() {
143
118
_checkAxes ( xr0 , yr0 ) ;
144
119
}
145
120
146
- delay ( MODEBAR_DELAY ) ( )
147
- . then ( function ( ) {
121
+ Plotly . plot ( gd , mock . data , mock . layout ) . then ( function ( ) {
122
+ modeBar = gd . _fullLayout . _modeBar ;
123
+ relayoutCallback = jasmine . createSpy ( 'relayoutCallback' ) ;
124
+ gd . on ( 'plotly_relayout' , relayoutCallback ) ;
125
+
126
+ var buttonPan = selectButton ( modeBar , 'pan2d' ) ;
127
+
128
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( originalX , precision ) ;
129
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( originalY , precision ) ;
130
+
131
+ // Switch to pan mode
132
+ expect ( buttonPan . isActive ( ) ) . toBe ( false ) ; // initially, zoom is active
133
+ buttonPan . click ( ) ;
134
+ expect ( buttonPan . isActive ( ) ) . toBe ( true ) ; // switched on dragmode
148
135
136
+ // Switching mode must not change visible range
137
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( originalX , precision ) ;
138
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( originalY , precision ) ;
139
+ } )
140
+ . then ( delay ( MODEBAR_DELAY ) )
141
+ . then ( function ( ) {
149
142
expect ( relayoutCallback ) . toHaveBeenCalledTimes ( 1 ) ;
150
143
relayoutCallback . calls . reset ( ) ;
151
144
_runDrag ( originalX , newX , originalY , newY ) ;
0 commit comments