@@ -197,6 +197,78 @@ describe('the range slider', function() {
197
197
. then ( done ) ;
198
198
} ) ;
199
199
200
+ it ( 'should relayout with style options' , function ( done ) {
201
+ var bg = children [ 0 ] ,
202
+ maskMin = children [ 2 ] ,
203
+ maskMax = children [ 3 ] ;
204
+
205
+ var maskMinWidth , maskMaxWidth ;
206
+
207
+ Plotly . relayout ( gd , 'xaxis.range' , [ 5 , 10 ] ) . then ( function ( ) {
208
+ maskMinWidth = + maskMin . getAttribute ( 'width' ) ,
209
+ maskMaxWidth = + maskMax . getAttribute ( 'width' ) ;
210
+
211
+ return Plotly . relayout ( gd , 'xaxis.rangeslider.bgcolor' , 'red' ) ;
212
+ } )
213
+ . then ( function ( ) {
214
+ expect ( + maskMin . getAttribute ( 'width' ) ) . toEqual ( maskMinWidth ) ;
215
+ expect ( + maskMax . getAttribute ( 'width' ) ) . toEqual ( maskMaxWidth ) ;
216
+
217
+ expect ( bg . getAttribute ( 'fill' ) ) . toBe ( 'red' ) ;
218
+ expect ( bg . getAttribute ( 'stroke' ) ) . toBe ( 'black' ) ;
219
+ expect ( bg . getAttribute ( 'stroke-width' ) ) . toBe ( '2' ) ;
220
+
221
+ return Plotly . relayout ( gd , 'xaxis.rangeslider.bordercolor' , 'blue' ) ;
222
+ } )
223
+ . then ( function ( ) {
224
+ expect ( + maskMin . getAttribute ( 'width' ) ) . toEqual ( maskMinWidth ) ;
225
+ expect ( + maskMax . getAttribute ( 'width' ) ) . toEqual ( maskMaxWidth ) ;
226
+
227
+ expect ( bg . getAttribute ( 'fill' ) ) . toBe ( 'red' ) ;
228
+ expect ( bg . getAttribute ( 'stroke' ) ) . toBe ( 'blue' ) ;
229
+ expect ( bg . getAttribute ( 'stroke-width' ) ) . toBe ( '2' ) ;
230
+
231
+ return Plotly . relayout ( gd , 'xaxis.rangeslider.borderwidth' , 3 ) ;
232
+ } )
233
+ . then ( function ( ) {
234
+ expect ( + maskMin . getAttribute ( 'width' ) ) . toEqual ( maskMinWidth ) ;
235
+ expect ( + maskMax . getAttribute ( 'width' ) ) . toEqual ( maskMaxWidth ) ;
236
+
237
+ expect ( bg . getAttribute ( 'fill' ) ) . toBe ( 'red' ) ;
238
+ expect ( bg . getAttribute ( 'stroke' ) ) . toBe ( 'blue' ) ;
239
+ expect ( bg . getAttribute ( 'stroke-width' ) ) . toBe ( '3' ) ;
240
+ } )
241
+ . then ( done ) ;
242
+ } ) ;
243
+
244
+ it ( 'should relayout on size / domain udpate' , function ( done ) {
245
+ var maskMin = children [ 2 ] ,
246
+ maskMax = children [ 3 ] ;
247
+
248
+ Plotly . relayout ( gd , 'xaxis.range' , [ 5 , 10 ] ) . then ( function ( ) {
249
+ expect ( + maskMin . getAttribute ( 'width' ) ) . toBeCloseTo ( 63.16 , 0 ) ;
250
+ expect ( + maskMax . getAttribute ( 'width' ) ) . toBeCloseTo ( 492.67 , 0 ) ;
251
+
252
+ return Plotly . relayout ( gd , 'xaxis.domain' , [ 0.3 , 0.7 ] ) ;
253
+ } )
254
+ . then ( function ( ) {
255
+ var maskMin = children [ 2 ] ,
256
+ maskMax = children [ 3 ] ;
257
+
258
+ expect ( + maskMin . getAttribute ( 'width' ) ) . toBeCloseTo ( 25.26 , 0 ) ;
259
+ expect ( + maskMax . getAttribute ( 'width' ) ) . toBeCloseTo ( 197.06 , 0 ) ;
260
+
261
+ return Plotly . relayout ( gd , 'width' , 400 ) ;
262
+ } )
263
+ . then ( function ( ) {
264
+ var maskMin = children [ 2 ] ,
265
+ maskMax = children [ 3 ] ;
266
+
267
+ expect ( + maskMin . getAttribute ( 'width' ) ) . toBeCloseTo ( 9.22 , 0 ) ;
268
+ expect ( + maskMax . getAttribute ( 'width' ) ) . toBeCloseTo ( 71.95 , 0 ) ;
269
+
270
+ } )
271
+ . then ( done ) ;
200
272
} ) ;
201
273
} ) ;
202
274
0 commit comments