@@ -971,6 +971,78 @@ describe('A bar plot', function() {
971
971
. then ( done ) ;
972
972
} ) ;
973
973
974
+ it ( 'Pushes outside text relative bars inside when not outmost' , function ( done ) {
975
+ var data = [ {
976
+ x : [ 1 , 2 ] ,
977
+ y : [ 20 , 10 ] ,
978
+ type : 'bar' ,
979
+ text : [ 'a' , 'b' ] ,
980
+ textposition : 'outside' ,
981
+ } , {
982
+ x : [ 1 , 2 ] ,
983
+ y : [ 20 , 10 ] ,
984
+ type : 'bar' ,
985
+ text : [ 'c' , 'd' ]
986
+ } ] ;
987
+ var layout = { barmode : 'relative' } ;
988
+
989
+ Plotly . plot ( gd , data , layout ) . then ( function ( ) {
990
+ var traceNodes = getAllTraceNodes ( gd ) ,
991
+ barNodes = getAllBarNodes ( traceNodes [ 0 ] ) ,
992
+ foundTextNodes ;
993
+
994
+ for ( var i = 0 ; i < barNodes . length ; i ++ ) {
995
+ var barNode = barNodes [ i ] ,
996
+ pathNode = barNode . querySelector ( 'path' ) ,
997
+ textNode = barNode . querySelector ( 'text' ) ;
998
+ if ( textNode ) {
999
+ foundTextNodes = true ;
1000
+ assertTextIsInsidePath ( textNode , pathNode ) ;
1001
+ }
1002
+ }
1003
+
1004
+ expect ( foundTextNodes ) . toBe ( true ) ;
1005
+ } )
1006
+ . catch ( failTest )
1007
+ . then ( done ) ;
1008
+ } ) ;
1009
+
1010
+ it ( 'does not push text inside when base is set' , function ( done ) {
1011
+ var data = [ {
1012
+ x : [ 1 , 2 ] ,
1013
+ y : [ 20 , 10 ] ,
1014
+ base : [ 1 , 2 ] ,
1015
+ type : 'bar' ,
1016
+ text : [ 'a' , 'b' ] ,
1017
+ textposition : 'outside' ,
1018
+ } , {
1019
+ x : [ 3 , 4 ] ,
1020
+ y : [ 30 , 40 ] ,
1021
+ type : 'bar' ,
1022
+ text : [ 'c' , 'd' ]
1023
+ } ] ;
1024
+ var layout = { barmode : 'relative' } ;
1025
+
1026
+ Plotly . plot ( gd , data , layout ) . then ( function ( ) {
1027
+ var traceNodes = getAllTraceNodes ( gd ) ,
1028
+ barNodes = getAllBarNodes ( traceNodes [ 0 ] ) ,
1029
+ foundTextNodes ;
1030
+
1031
+ for ( var i = 0 ; i < barNodes . length ; i ++ ) {
1032
+ var barNode = barNodes [ i ] ,
1033
+ pathNode = barNode . querySelector ( 'path' ) ,
1034
+ textNode = barNode . querySelector ( 'text' ) ;
1035
+ if ( textNode ) {
1036
+ foundTextNodes = true ;
1037
+ assertTextIsAbovePath ( textNode , pathNode ) ;
1038
+ }
1039
+ }
1040
+
1041
+ expect ( foundTextNodes ) . toBe ( true ) ;
1042
+ } )
1043
+ . catch ( failTest )
1044
+ . then ( done ) ;
1045
+ } ) ;
974
1046
it ( 'should show bar texts (outside case)' , function ( done ) {
975
1047
var data = [ {
976
1048
y : [ 10 , - 20 , 30 ] ,
0 commit comments