@@ -963,3 +963,79 @@ describe('finance charts updates:', function() {
963
963
} ) ;
964
964
} ) ;
965
965
} ) ;
966
+
967
+ describe ( 'finance charts *special* handlers:' , function ( ) {
968
+
969
+ afterEach ( destroyGraphDiv ) ;
970
+
971
+ it ( '`editable: true` handles should work' , function ( done ) {
972
+
973
+ function editText ( itemNumber , newText ) {
974
+ var textNode = d3 . selectAll ( 'text.legendtext' )
975
+ . filter ( function ( _ , i ) { return i === itemNumber ; } ) . node ( ) ;
976
+ textNode . dispatchEvent ( new window . MouseEvent ( 'click' ) ) ;
977
+
978
+ var editNode = d3 . select ( '.plugin-editable.editable' ) . node ( ) ;
979
+ editNode . dispatchEvent ( new window . FocusEvent ( 'focus' ) ) ;
980
+
981
+ editNode . textContent = newText ;
982
+ editNode . dispatchEvent ( new window . FocusEvent ( 'focus' ) ) ;
983
+ editNode . dispatchEvent ( new window . FocusEvent ( 'blur' ) ) ;
984
+
985
+ editNode . remove ( ) ;
986
+ }
987
+
988
+ Plotly . plot ( createGraphDiv ( ) , [
989
+ Lib . extendDeep ( { } , mock0 , { type : 'ohlc' } ) ,
990
+ Lib . extendDeep ( { } , mock0 , { type : 'candlestick' } )
991
+ ] , { } , {
992
+ editable : true
993
+ } )
994
+ . then ( function ( gd ) {
995
+ return new Promise ( function ( resolve ) {
996
+ gd . once ( 'plotly_restyle' , function ( eventData ) {
997
+ expect ( eventData [ 0 ] [ 'increasing.name' ] ) . toEqual ( '0' ) ;
998
+ expect ( eventData [ 1 ] ) . toEqual ( [ 0 ] ) ;
999
+ resolve ( gd ) ;
1000
+ } ) ;
1001
+
1002
+ editText ( 0 , '0' ) ;
1003
+ } ) ;
1004
+ } )
1005
+ . then ( function ( gd ) {
1006
+ return new Promise ( function ( resolve ) {
1007
+ gd . once ( 'plotly_restyle' , function ( eventData ) {
1008
+ expect ( eventData [ 0 ] [ 'decreasing.name' ] ) . toEqual ( '1' ) ;
1009
+ expect ( eventData [ 1 ] ) . toEqual ( [ 0 ] ) ;
1010
+ resolve ( gd ) ;
1011
+ } ) ;
1012
+
1013
+ editText ( 1 , '1' ) ;
1014
+ } ) ;
1015
+ } )
1016
+ . then ( function ( gd ) {
1017
+ return new Promise ( function ( resolve ) {
1018
+ gd . once ( 'plotly_restyle' , function ( eventData ) {
1019
+ expect ( eventData [ 0 ] [ 'decreasing.name' ] ) . toEqual ( '2' ) ;
1020
+ expect ( eventData [ 1 ] ) . toEqual ( [ 1 ] ) ;
1021
+ resolve ( gd ) ;
1022
+ } ) ;
1023
+
1024
+ editText ( 3 , '2' ) ;
1025
+ } ) ;
1026
+ } )
1027
+ . then ( function ( gd ) {
1028
+ return new Promise ( function ( resolve ) {
1029
+ gd . once ( 'plotly_restyle' , function ( eventData ) {
1030
+ expect ( eventData [ 0 ] [ 'increasing.name' ] ) . toEqual ( '3' ) ;
1031
+ expect ( eventData [ 1 ] ) . toEqual ( [ 1 ] ) ;
1032
+ resolve ( gd ) ;
1033
+ } ) ;
1034
+
1035
+ editText ( 2 , '3' ) ;
1036
+ } ) ;
1037
+ } )
1038
+ . then ( done ) ;
1039
+ } ) ;
1040
+
1041
+ } ) ;
0 commit comments