@@ -5431,3 +5431,133 @@ describe('Test template:', function() {
5431
5431
. then ( done ) ;
5432
5432
} ) ;
5433
5433
} ) ;
5434
+
5435
+ describe ( 'more react tests' , function ( ) {
5436
+ var gd ;
5437
+
5438
+ beforeEach ( function ( ) {
5439
+ gd = createGraphDiv ( ) ;
5440
+ } ) ;
5441
+
5442
+ afterEach ( destroyGraphDiv ) ;
5443
+
5444
+ it ( 'should sort catgories on matching axes using react' , function ( done ) {
5445
+ var fig = {
5446
+ data : [ {
5447
+ yaxis : 'y' ,
5448
+ xaxis : 'x' ,
5449
+ y : [ 0 , 0 ] ,
5450
+ x : [ 'A' , 'Z' ]
5451
+ } , {
5452
+ yaxis : 'y2' ,
5453
+ xaxis : 'x2' ,
5454
+ y : [ 0 , 0 ] ,
5455
+ x : [ 'A' , 'Z' ]
5456
+ } ] ,
5457
+ layout : {
5458
+ width : 400 ,
5459
+ height : 300 ,
5460
+ showlegend : false ,
5461
+ xaxis : {
5462
+ matches : 'x2' ,
5463
+ domain : [ 0 , 1 ]
5464
+ } ,
5465
+ yaxis : {
5466
+ domain : [ 0.6 , 1 ] ,
5467
+ anchor : 'x'
5468
+ } ,
5469
+ xaxis2 : {
5470
+ domain : [ 0 , 1 ] ,
5471
+ anchor : 'y2'
5472
+ } ,
5473
+ yaxis2 : {
5474
+ domain : [ 0 , 0.4 ] ,
5475
+ anchor : 'x2'
5476
+ }
5477
+ }
5478
+ } ;
5479
+
5480
+ Plotly . newPlot ( gd , fig )
5481
+ . then ( function ( ) {
5482
+ expect ( gd . _fullLayout . xaxis . _categories ) . toEqual ( [ 'A' , 'Z' ] ) ;
5483
+ expect ( gd . _fullLayout . xaxis2 . _categories ) . toEqual ( [ 'A' , 'Z' ] ) ;
5484
+ expect ( gd . _fullLayout . xaxis . _categoriesMap ) . toEqual ( { A : 0 , Z : 1 } ) ;
5485
+ expect ( gd . _fullLayout . xaxis2 . _categoriesMap ) . toEqual ( { A : 0 , Z : 1 } ) ;
5486
+ } )
5487
+ . then ( function ( ) {
5488
+ // flip order
5489
+ fig . data [ 0 ] . x = [ 'Z' , 'A' ] ;
5490
+ fig . data [ 1 ] . x = [ 'Z' , 'A' ] ;
5491
+
5492
+ return Plotly . react ( gd , fig ) ;
5493
+ } )
5494
+ . then ( function ( ) {
5495
+ expect ( gd . _fullLayout . xaxis . _categories ) . toEqual ( [ 'Z' , 'A' ] ) ;
5496
+ expect ( gd . _fullLayout . xaxis2 . _categories ) . toEqual ( [ 'Z' , 'A' ] ) ;
5497
+ expect ( gd . _fullLayout . xaxis . _categoriesMap ) . toEqual ( { Z : 0 , A : 1 } ) ;
5498
+ expect ( gd . _fullLayout . xaxis2 . _categoriesMap ) . toEqual ( { Z : 0 , A : 1 } ) ;
5499
+ } )
5500
+ . then ( function ( ) {
5501
+ // should get the same order with newPlot
5502
+ return Plotly . newPlot ( gd , fig ) ;
5503
+ } )
5504
+ . then ( function ( ) {
5505
+ expect ( gd . _fullLayout . xaxis . _categories ) . toEqual ( [ 'Z' , 'A' ] ) ;
5506
+ expect ( gd . _fullLayout . xaxis2 . _categories ) . toEqual ( [ 'Z' , 'A' ] ) ;
5507
+ expect ( gd . _fullLayout . xaxis . _categoriesMap ) . toEqual ( { Z : 0 , A : 1 } ) ;
5508
+ expect ( gd . _fullLayout . xaxis2 . _categoriesMap ) . toEqual ( { Z : 0 , A : 1 } ) ;
5509
+ } )
5510
+ . then ( function ( ) {
5511
+ // add new category
5512
+ fig . data [ 0 ] . x = [ 'Z' , 0 , 'A' ] ;
5513
+ fig . data [ 1 ] . x = [ 'Z' , 0 , 'A' ] ;
5514
+ fig . data [ 0 ] . y = [ 1 , 2 , 3 ] ;
5515
+ fig . data [ 1 ] . y = [ 2 , 4 , 6 ] ;
5516
+
5517
+ return Plotly . react ( gd , fig ) ;
5518
+ } )
5519
+ . then ( function ( ) {
5520
+ expect ( gd . _fullLayout . xaxis . _categories ) . toEqual ( [ 'Z' , '0' , 'A' ] ) ;
5521
+ expect ( gd . _fullLayout . xaxis2 . _categories ) . toEqual ( [ 'Z' , '0' , 'A' ] ) ;
5522
+ expect ( gd . _fullLayout . xaxis . _categoriesMap ) . toEqual ( { Z : 0 , 0 : 1 , A : 2 } ) ;
5523
+ expect ( gd . _fullLayout . xaxis2 . _categoriesMap ) . toEqual ( { Z : 0 , 0 : 1 , A : 2 } ) ;
5524
+ } )
5525
+ . then ( function ( ) {
5526
+ // should get the same order with newPlot
5527
+ return Plotly . newPlot ( gd , fig ) ;
5528
+ } )
5529
+ . then ( function ( ) {
5530
+ expect ( gd . _fullLayout . xaxis . _categories ) . toEqual ( [ 'Z' , '0' , 'A' ] ) ;
5531
+ expect ( gd . _fullLayout . xaxis2 . _categories ) . toEqual ( [ 'Z' , '0' , 'A' ] ) ;
5532
+ expect ( gd . _fullLayout . xaxis . _categoriesMap ) . toEqual ( { Z : 0 , 0 : 1 , A : 2 } ) ;
5533
+ expect ( gd . _fullLayout . xaxis2 . _categoriesMap ) . toEqual ( { Z : 0 , 0 : 1 , A : 2 } ) ;
5534
+ } )
5535
+ . then ( function ( ) {
5536
+ // change data
5537
+ fig . data [ 0 ] . x = [ 'Z' , 0 , 'A' ] ;
5538
+ fig . data [ 1 ] . x = [ 'A' , 'Z' ] ;
5539
+ fig . data [ 0 ] . y = [ 3 , 2 , 1 ] ;
5540
+ fig . data [ 1 ] . y = [ - 1 , 0 ] ;
5541
+
5542
+ return Plotly . react ( gd , fig ) ;
5543
+ } )
5544
+ . then ( function ( ) {
5545
+ expect ( gd . _fullLayout . xaxis . _categories ) . toEqual ( [ 'Z' , '0' , 'A' ] ) ;
5546
+ expect ( gd . _fullLayout . xaxis2 . _categories ) . toEqual ( [ 'Z' , '0' , 'A' ] ) ;
5547
+ expect ( gd . _fullLayout . xaxis . _categoriesMap ) . toEqual ( { Z : 0 , 0 : 1 , A : 2 } ) ;
5548
+ expect ( gd . _fullLayout . xaxis2 . _categoriesMap ) . toEqual ( { Z : 0 , 0 : 1 , A : 2 } ) ;
5549
+ } )
5550
+ . then ( function ( ) {
5551
+ // should get the same order with newPlot
5552
+ return Plotly . newPlot ( gd , fig ) ;
5553
+ } )
5554
+ . then ( function ( ) {
5555
+ expect ( gd . _fullLayout . xaxis . _categories ) . toEqual ( [ 'Z' , '0' , 'A' ] ) ;
5556
+ expect ( gd . _fullLayout . xaxis2 . _categories ) . toEqual ( [ 'Z' , '0' , 'A' ] ) ;
5557
+ expect ( gd . _fullLayout . xaxis . _categoriesMap ) . toEqual ( { Z : 0 , 0 : 1 , A : 2 } ) ;
5558
+ expect ( gd . _fullLayout . xaxis2 . _categoriesMap ) . toEqual ( { Z : 0 , 0 : 1 , A : 2 } ) ;
5559
+ } )
5560
+ . catch ( failTest )
5561
+ . then ( done ) ;
5562
+ } ) ;
5563
+ } ) ;
0 commit comments