@@ -971,6 +971,78 @@ describe('A bar plot', function() {
971971 . then ( done ) ;
972972 } ) ;
973973
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+ } ) ;
9741046 it ( 'should show bar texts (outside case)' , function ( done ) {
9751047 var data = [ {
9761048 y : [ 10 , - 20 , 30 ] ,
0 commit comments