@@ -566,6 +566,27 @@ describe('Test select box and lasso per trace:', function() {
566
566
} ;
567
567
}
568
568
569
+ function makeAssertSelectedPoints ( ) {
570
+ var callNumber = 0 ;
571
+
572
+ return function ( expected ) {
573
+ var msg = '(call #' + callNumber + ') ' ;
574
+
575
+ gd . data . forEach ( function ( trace , i ) {
576
+ var msgFull = msg + 'selectedpoints array for trace ' + i ;
577
+ var actual = trace . selectedpoints ;
578
+
579
+ if ( expected [ i ] ) {
580
+ expect ( actual ) . toBeCloseToArray ( expected [ i ] , 1 , msgFull ) ;
581
+ } else {
582
+ expect ( actual ) . toBe ( undefined , 1 , msgFull ) ;
583
+ }
584
+ } ) ;
585
+
586
+ callNumber ++ ;
587
+ } ;
588
+ }
589
+
569
590
function makeAssertRanges ( subplot , tol ) {
570
591
tol = tol || 1 ;
571
592
var callNumber = 0 ;
@@ -636,6 +657,7 @@ describe('Test select box and lasso per trace:', function() {
636
657
637
658
it ( 'should work on scatterternary traces' , function ( done ) {
638
659
var assertPoints = makeAssertPoints ( [ 'a' , 'b' , 'c' ] ) ;
660
+ var assertSelectedPoints = makeAssertSelectedPoints ( ) ;
639
661
640
662
var fig = Lib . extendDeep ( { } , require ( '@mocks/ternary_simple' ) ) ;
641
663
fig . layout . width = 800 ;
@@ -647,6 +669,7 @@ describe('Test select box and lasso per trace:', function() {
647
669
[ [ 400 , 200 ] , [ 445 , 235 ] ] ,
648
670
function ( ) {
649
671
assertPoints ( [ [ 0.5 , 0.25 , 0.25 ] ] ) ;
672
+ assertSelectedPoints ( { 0 : [ 0 ] } ) ;
650
673
} ,
651
674
[ 380 , 180 ] ,
652
675
BOXEVENTS , 'scatterternary select'
@@ -658,7 +681,10 @@ describe('Test select box and lasso per trace:', function() {
658
681
. then ( function ( ) {
659
682
return _run (
660
683
[ [ 400 , 200 ] , [ 445 , 200 ] , [ 445 , 235 ] , [ 400 , 235 ] , [ 400 , 200 ] ] ,
661
- function ( ) { assertPoints ( [ [ 0.5 , 0.25 , 0.25 ] ] ) ; } ,
684
+ function ( ) {
685
+ assertPoints ( [ [ 0.5 , 0.25 , 0.25 ] ] ) ;
686
+ assertSelectedPoints ( { 0 : [ 0 ] } ) ;
687
+ } ,
662
688
[ 380 , 180 ] ,
663
689
LASSOEVENTS , 'scatterternary lasso'
664
690
) ;
@@ -670,7 +696,10 @@ describe('Test select box and lasso per trace:', function() {
670
696
. then ( function ( ) {
671
697
return _run (
672
698
[ [ 200 , 200 ] , [ 230 , 200 ] , [ 230 , 230 ] , [ 200 , 230 ] , [ 200 , 200 ] ] ,
673
- function ( ) { assertPoints ( [ [ 0.5 , 0.25 , 0.25 ] ] ) ; } ,
699
+ function ( ) {
700
+ assertPoints ( [ [ 0.5 , 0.25 , 0.25 ] ] ) ;
701
+ assertSelectedPoints ( { 0 : [ 0 ] } ) ;
702
+ } ,
674
703
[ 180 , 180 ] ,
675
704
LASSOEVENTS , 'scatterternary lasso after relayout'
676
705
) ;
@@ -681,6 +710,7 @@ describe('Test select box and lasso per trace:', function() {
681
710
682
711
it ( 'should work on scattercarpet traces' , function ( done ) {
683
712
var assertPoints = makeAssertPoints ( [ 'a' , 'b' ] ) ;
713
+ var assertSelectedPoints = makeAssertSelectedPoints ( ) ;
684
714
685
715
var fig = Lib . extendDeep ( { } , require ( '@mocks/scattercarpet' ) ) ;
686
716
fig . layout . dragmode = 'select' ;
@@ -689,7 +719,10 @@ describe('Test select box and lasso per trace:', function() {
689
719
Plotly . plot ( gd , fig ) . then ( function ( ) {
690
720
return _run (
691
721
[ [ 300 , 200 ] , [ 400 , 250 ] ] ,
692
- function ( ) { assertPoints ( [ [ 0.2 , 1.5 ] ] ) ; } ,
722
+ function ( ) {
723
+ assertPoints ( [ [ 0.2 , 1.5 ] ] ) ;
724
+ assertSelectedPoints ( { 1 : [ ] , 2 : [ ] , 3 : [ ] , 4 : [ ] , 5 : [ 1 ] , 6 : [ ] } ) ;
725
+ } ,
693
726
null , BOXEVENTS , 'scattercarpet select'
694
727
) ;
695
728
} )
@@ -699,7 +732,10 @@ describe('Test select box and lasso per trace:', function() {
699
732
. then ( function ( ) {
700
733
return _run (
701
734
[ [ 300 , 200 ] , [ 400 , 200 ] , [ 400 , 250 ] , [ 300 , 250 ] , [ 300 , 200 ] ] ,
702
- function ( ) { assertPoints ( [ [ 0.2 , 1.5 ] ] ) ; } ,
735
+ function ( ) {
736
+ assertPoints ( [ [ 0.2 , 1.5 ] ] ) ;
737
+ assertSelectedPoints ( { 1 : [ ] , 2 : [ ] , 3 : [ ] , 4 : [ ] , 5 : [ 1 ] , 6 : [ ] } ) ;
738
+ } ,
703
739
null , LASSOEVENTS , 'scattercarpet lasso'
704
740
) ;
705
741
} )
@@ -711,6 +747,7 @@ describe('Test select box and lasso per trace:', function() {
711
747
var assertPoints = makeAssertPoints ( [ 'lon' , 'lat' ] ) ;
712
748
var assertRanges = makeAssertRanges ( 'mapbox' ) ;
713
749
var assertLassoPoints = makeAssertLassoPoints ( 'mapbox' ) ;
750
+ var assertSelectedPoints = makeAssertSelectedPoints ( ) ;
714
751
715
752
var fig = Lib . extendDeep ( { } , require ( '@mocks/mapbox_bubbles-text' ) ) ;
716
753
fig . layout . dragmode = 'select' ;
@@ -725,6 +762,7 @@ describe('Test select box and lasso per trace:', function() {
725
762
function ( ) {
726
763
assertPoints ( [ [ 30 , 30 ] ] ) ;
727
764
assertRanges ( [ [ 21.99 , 34.55 ] , [ 38.14 , 25.98 ] ] ) ;
765
+ assertSelectedPoints ( { 0 : [ 2 ] } ) ;
728
766
} ,
729
767
null , BOXEVENTS , 'scattermapbox select'
730
768
) ;
@@ -737,6 +775,7 @@ describe('Test select box and lasso per trace:', function() {
737
775
[ [ 300 , 200 ] , [ 300 , 300 ] , [ 400 , 300 ] , [ 400 , 200 ] , [ 300 , 200 ] ] ,
738
776
function ( ) {
739
777
assertPoints ( [ [ 20 , 20 ] ] ) ;
778
+ assertSelectedPoints ( { 0 : [ 1 ] } ) ;
740
779
assertLassoPoints ( [
741
780
[ 13.28 , 25.97 ] , [ 13.28 , 14.33 ] , [ 25.71 , 14.33 ] , [ 25.71 , 25.97 ] , [ 13.28 , 25.97 ]
742
781
] ) ;
@@ -759,8 +798,10 @@ describe('Test select box and lasso per trace:', function() {
759
798
760
799
it ( 'should work on scattergeo traces' , function ( done ) {
761
800
var assertPoints = makeAssertPoints ( [ 'lon' , 'lat' ] ) ;
801
+ var assertSelectedPoints = makeAssertSelectedPoints ( ) ;
762
802
var assertRanges = makeAssertRanges ( 'geo' ) ;
763
803
var assertLassoPoints = makeAssertLassoPoints ( 'geo' ) ;
804
+
764
805
var fig = {
765
806
data : [ {
766
807
type : 'scattergeo' ,
@@ -786,6 +827,7 @@ describe('Test select box and lasso per trace:', function() {
786
827
[ [ 350 , 200 ] , [ 450 , 400 ] ] ,
787
828
function ( ) {
788
829
assertPoints ( [ [ 10 , 10 ] , [ 20 , 20 ] , [ - 10 , 10 ] , [ - 20 , 20 ] ] ) ;
830
+ assertSelectedPoints ( { 0 : [ 0 , 1 ] , 1 : [ 0 , 1 ] } ) ;
789
831
assertRanges ( [ [ - 28.13 , 61.88 ] , [ 28.13 , - 50.64 ] ] ) ;
790
832
} ,
791
833
null , BOXEVENTS , 'scattergeo select'
@@ -799,17 +841,15 @@ describe('Test select box and lasso per trace:', function() {
799
841
[ [ 300 , 200 ] , [ 300 , 300 ] , [ 400 , 300 ] , [ 400 , 200 ] , [ 300 , 200 ] ] ,
800
842
function ( ) {
801
843
assertPoints ( [ [ - 10 , 10 ] , [ - 20 , 20 ] , [ - 30 , 30 ] ] ) ;
844
+ assertSelectedPoints ( { 0 : [ ] , 1 : [ 0 , 1 , 2 ] } ) ;
802
845
assertLassoPoints ( [
803
846
[ - 56.25 , 61.88 ] , [ - 56.24 , 5.63 ] , [ 0 , 5.63 ] , [ 0 , 61.88 ] , [ - 56.25 , 61.88 ]
804
847
] ) ;
805
848
} ,
806
849
null , LASSOEVENTS , 'scattergeo lasso'
807
850
) ;
808
851
} )
809
- // .then(deselectPromise)
810
852
. then ( function ( ) {
811
- // assertEventCounts(4, 2, 1, 'de-lasso');
812
-
813
853
// make sure selection handlers don't get called in 'pan' dragmode
814
854
return Plotly . relayout ( gd , 'dragmode' , 'pan' ) ;
815
855
} )
@@ -824,6 +864,7 @@ describe('Test select box and lasso per trace:', function() {
824
864
825
865
it ( 'should work on choropleth traces' , function ( done ) {
826
866
var assertPoints = makeAssertPoints ( [ 'location' , 'z' ] ) ;
867
+ var assertSelectedPoints = makeAssertSelectedPoints ( ) ;
827
868
var assertRanges = makeAssertRanges ( 'geo' , - 0.5 ) ;
828
869
var assertLassoPoints = makeAssertLassoPoints ( 'geo' , - 0.5 ) ;
829
870
@@ -847,6 +888,7 @@ describe('Test select box and lasso per trace:', function() {
847
888
[ [ 350 , 200 ] , [ 400 , 250 ] ] ,
848
889
function ( ) {
849
890
assertPoints ( [ [ 'GBR' , 26.507354205352502 ] , [ 'IRL' , 86.4125147625692 ] ] ) ;
891
+ assertSelectedPoints ( { 0 : [ 54 , 68 ] } ) ;
850
892
assertRanges ( [ [ - 19.11 , 63.06 ] , [ 7.31 , 53.72 ] ] ) ;
851
893
} ,
852
894
[ 280 , 190 ] ,
@@ -861,6 +903,7 @@ describe('Test select box and lasso per trace:', function() {
861
903
[ [ 350 , 200 ] , [ 400 , 200 ] , [ 400 , 250 ] , [ 350 , 250 ] , [ 350 , 200 ] ] ,
862
904
function ( ) {
863
905
assertPoints ( [ [ 'GBR' , 26.507354205352502 ] , [ 'IRL' , 86.4125147625692 ] ] ) ;
906
+ assertSelectedPoints ( { 0 : [ 54 , 68 ] } ) ;
864
907
assertLassoPoints ( [
865
908
[ - 19.11 , 63.06 ] , [ 5.50 , 65.25 ] , [ 7.31 , 53.72 ] , [ - 12.90 , 51.70 ] , [ - 19.11 , 63.06 ]
866
909
] ) ;
@@ -884,6 +927,7 @@ describe('Test select box and lasso per trace:', function() {
884
927
885
928
it ( 'should work for bar traces' , function ( done ) {
886
929
var assertPoints = makeAssertPoints ( [ 'curveNumber' , 'x' , 'y' ] ) ;
930
+ var assertSelectedPoints = makeAssertSelectedPoints ( ) ;
887
931
var assertRanges = makeAssertRanges ( ) ;
888
932
var assertLassoPoints = makeAssertLassoPoints ( ) ;
889
933
@@ -905,6 +949,11 @@ describe('Test select box and lasso per trace:', function() {
905
949
[ 2 , 4.9 , 0.473 ] , [ 2 , 5 , 0.368 ] , [ 2 , 5.1 , 0.258 ] ,
906
950
[ 2 , 5.2 , 0.146 ] , [ 2 , 5.3 , 0.036 ]
907
951
] ) ;
952
+ assertSelectedPoints ( {
953
+ 0 : [ 49 , 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 ] ,
954
+ 1 : [ 51 , 52 , 53 , 54 , 55 , 56 ] ,
955
+ 2 : [ 49 , 50 , 51 , 52 , 53 ]
956
+ } ) ;
908
957
assertLassoPoints ( [
909
958
[ 4.87 , 5.74 , 5.74 , 4.87 , 4.87 ] ,
910
959
[ 0.53 , 0.53 , - 0.02 , - 0.02 , 0.53 ]
@@ -935,6 +984,11 @@ describe('Test select box and lasso per trace:', function() {
935
984
[ 1 , 5.1 , 0.485 ] , [ 1 , 5.2 , 0.41 ] ,
936
985
[ 2 , 4.9 , 0.473 ] , [ 2 , 5 , 0.37 ]
937
986
] ) ;
987
+ assertSelectedPoints ( {
988
+ 0 : [ 49 , 50 , 51 , 52 ] ,
989
+ 1 : [ 51 , 52 ] ,
990
+ 2 : [ 49 , 50 ]
991
+ } ) ;
938
992
assertRanges ( [ [ 4.87 , 5.22 ] , [ 0.31 , 0.53 ] ] ) ;
939
993
} ,
940
994
null , BOXEVENTS , 'bar select'
@@ -946,6 +1000,7 @@ describe('Test select box and lasso per trace:', function() {
946
1000
947
1001
it ( 'should work for date/category traces' , function ( done ) {
948
1002
var assertPoints = makeAssertPoints ( [ 'curveNumber' , 'x' , 'y' ] ) ;
1003
+ var assertSelectedPoints = makeAssertSelectedPoints ( ) ;
949
1004
950
1005
var fig = {
951
1006
data : [ {
@@ -978,6 +1033,7 @@ describe('Test select box and lasso per trace:', function() {
978
1033
[ 0 , '2017-02-01' , 'b' ] ,
979
1034
[ 1 , '2017-02-02' , 'b' ]
980
1035
] ) ;
1036
+ assertSelectedPoints ( { 0 : [ 1 ] , 1 : [ 1 ] } ) ;
981
1037
} ,
982
1038
null , LASSOEVENTS , 'date/category lasso'
983
1039
) ;
@@ -993,6 +1049,7 @@ describe('Test select box and lasso per trace:', function() {
993
1049
[ 0 , '2017-02-01' , 'b' ] ,
994
1050
[ 1 , '2017-02-02' , 'b' ]
995
1051
] ) ;
1052
+ assertSelectedPoints ( { 0 : [ 1 ] , 1 : [ 1 ] } ) ;
996
1053
} ,
997
1054
null , BOXEVENTS , 'date/category select'
998
1055
) ;
@@ -1003,6 +1060,7 @@ describe('Test select box and lasso per trace:', function() {
1003
1060
1004
1061
it ( 'should work for histogram traces' , function ( done ) {
1005
1062
var assertPoints = makeAssertPoints ( [ 'curveNumber' , 'x' , 'y' , 'pointIndices' ] ) ;
1063
+ var assertSelectedPoints = makeAssertSelectedPoints ( ) ;
1006
1064
var assertRanges = makeAssertRanges ( ) ;
1007
1065
var assertLassoPoints = makeAssertLassoPoints ( ) ;
1008
1066
@@ -1020,6 +1078,7 @@ describe('Test select box and lasso per trace:', function() {
1020
1078
assertPoints ( [
1021
1079
[ 0 , 1.8 , 2 , [ 3 , 4 ] ] , [ 1 , 2.2 , 1 , [ 1 ] ] , [ 1 , 3.2 , 1 , [ 2 ] ]
1022
1080
] ) ;
1081
+ assertSelectedPoints ( { 0 : [ 3 , 4 ] , 1 : [ 1 , 2 ] } ) ;
1023
1082
assertLassoPoints ( [
1024
1083
[ 1.66 , 3.59 , 3.59 , 1.66 , 1.66 ] ,
1025
1084
[ 2.17 , 2.17 , 0.69 , 0.69 , 2.17 ]
@@ -1038,6 +1097,7 @@ describe('Test select box and lasso per trace:', function() {
1038
1097
assertPoints ( [
1039
1098
[ 0 , 1.8 , 2 , [ 3 , 4 ] ] , [ 1 , 2.2 , 1 , [ 1 ] ] , [ 1 , 3.2 , 1 , [ 2 ] ]
1040
1099
] ) ;
1100
+ assertSelectedPoints ( { 0 : [ 3 , 4 ] , 1 : [ 1 , 2 ] } ) ;
1041
1101
assertRanges ( [ [ 1.66 , 3.59 ] , [ 0.69 , 2.17 ] ] ) ;
1042
1102
} ,
1043
1103
null , BOXEVENTS , 'histogram select'
@@ -1049,6 +1109,7 @@ describe('Test select box and lasso per trace:', function() {
1049
1109
1050
1110
it ( 'should work for box traces' , function ( done ) {
1051
1111
var assertPoints = makeAssertPoints ( [ 'curveNumber' , 'y' , 'x' ] ) ;
1112
+ var assertSelectedPoints = makeAssertSelectedPoints ( ) ;
1052
1113
var assertRanges = makeAssertRanges ( ) ;
1053
1114
var assertLassoPoints = makeAssertLassoPoints ( ) ;
1054
1115
@@ -1071,6 +1132,11 @@ describe('Test select box and lasso per trace:', function() {
1071
1132
[ 1 , 0.2 , 'day 2' ] , [ 1 , 0.5 , 'day 2' ] , [ 1 , 0.7 , 'day 2' ] , [ 1 , 0.7 , 'day 2' ] ,
1072
1133
[ 2 , 0.3 , 'day 1' ] , [ 2 , 0.6 , 'day 1' ] , [ 2 , 0.6 , 'day 1' ]
1073
1134
] ) ;
1135
+ assertSelectedPoints ( {
1136
+ 0 : [ 6 , 11 , 10 , 7 ] ,
1137
+ 1 : [ 11 , 8 , 6 , 10 ] ,
1138
+ 2 : [ 1 , 4 , 5 ]
1139
+ } ) ;
1074
1140
assertLassoPoints ( [
1075
1141
[ 'day 1' , 'day 2' , 'day 2' , 'day 1' , 'day 1' ] ,
1076
1142
[ 0.71 , 0.71 , 0.1875 , 0.1875 , 0.71 ]
@@ -1091,6 +1157,11 @@ describe('Test select box and lasso per trace:', function() {
1091
1157
[ 1 , 0.2 , 'day 2' ] , [ 1 , 0.5 , 'day 2' ] , [ 1 , 0.7 , 'day 2' ] , [ 1 , 0.7 , 'day 2' ] ,
1092
1158
[ 2 , 0.3 , 'day 1' ] , [ 2 , 0.6 , 'day 1' ] , [ 2 , 0.6 , 'day 1' ]
1093
1159
] ) ;
1160
+ assertSelectedPoints ( {
1161
+ 0 : [ 6 , 11 , 10 , 7 ] ,
1162
+ 1 : [ 11 , 8 , 6 , 10 ] ,
1163
+ 2 : [ 1 , 4 , 5 ]
1164
+ } ) ;
1094
1165
assertRanges ( [ [ 'day 1' , 'day 2' ] , [ 0.1875 , 0.71 ] ] ) ;
1095
1166
} ,
1096
1167
null , BOXEVENTS , 'box select'
@@ -1102,6 +1173,7 @@ describe('Test select box and lasso per trace:', function() {
1102
1173
1103
1174
it ( 'should work for violin traces' , function ( done ) {
1104
1175
var assertPoints = makeAssertPoints ( [ 'curveNumber' , 'y' , 'x' ] ) ;
1176
+ var assertSelectedPoints = makeAssertSelectedPoints ( ) ;
1105
1177
var assertRanges = makeAssertRanges ( ) ;
1106
1178
var assertLassoPoints = makeAssertLassoPoints ( ) ;
1107
1179
@@ -1122,6 +1194,11 @@ describe('Test select box and lasso per trace:', function() {
1122
1194
[ 1 , 0.9 , 'day 2' ] ,
1123
1195
[ 2 , 0.3 , 'day 1' ] , [ 2 , 0.6 , 'day 1' ] , [ 2 , 0.6 , 'day 1' ] , [ 2 , 0.9 , 'day 1' ]
1124
1196
] ) ;
1197
+ assertSelectedPoints ( {
1198
+ 0 : [ 11 , 10 , 7 , 8 ] ,
1199
+ 1 : [ 8 , 6 , 10 , 9 , 7 ] ,
1200
+ 2 : [ 1 , 4 , 5 , 3 ]
1201
+ } ) ;
1125
1202
assertLassoPoints ( [
1126
1203
[ 'day 1' , 'day 2' , 'day 2' , 'day 1' , 'day 1' ] ,
1127
1204
[ 1.02 , 1.02 , 0.27 , 0.27 , 1.02 ]
@@ -1143,6 +1220,11 @@ describe('Test select box and lasso per trace:', function() {
1143
1220
[ 1 , 0.9 , 'day 2' ] ,
1144
1221
[ 2 , 0.3 , 'day 1' ] , [ 2 , 0.6 , 'day 1' ] , [ 2 , 0.6 , 'day 1' ] , [ 2 , 0.9 , 'day 1' ]
1145
1222
] ) ;
1223
+ assertSelectedPoints ( {
1224
+ 0 : [ 11 , 10 , 7 , 8 ] ,
1225
+ 1 : [ 8 , 6 , 10 , 9 , 7 ] ,
1226
+ 2 : [ 1 , 4 , 5 , 3 ]
1227
+ } ) ;
1146
1228
assertRanges ( [ [ 'day 1' , 'day 2' ] , [ 0.27 , 1.02 ] ] ) ;
1147
1229
} ,
1148
1230
null , BOXEVENTS , 'violin select'
@@ -1151,6 +1233,49 @@ describe('Test select box and lasso per trace:', function() {
1151
1233
. catch ( fail )
1152
1234
. then ( done ) ;
1153
1235
} ) ;
1236
+
1237
+ it ( 'should work on traces with enabled transforms' , function ( done ) {
1238
+ var assertSelectedPoints = makeAssertSelectedPoints ( ) ;
1239
+
1240
+ Plotly . plot ( gd , [ {
1241
+ x : [ 1 , 2 , 3 , 4 , 5 ] ,
1242
+ y : [ 2 , 3 , 1 , 7 , 9 ] ,
1243
+ marker : { size : [ 10 , 20 , 20 , 20 , 10 ] } ,
1244
+ transforms : [ {
1245
+ type : 'filter' ,
1246
+ operation : '>' ,
1247
+ value : 2 ,
1248
+ target : 'y'
1249
+ } , {
1250
+ type : 'aggregate' ,
1251
+ groups : 'marker.size' ,
1252
+ aggregations : [
1253
+ // 20: 6, 10: 5
1254
+ { target : 'x' , func : 'sum' } ,
1255
+ // 20: 5, 10: 9
1256
+ { target : 'y' , func : 'avg' }
1257
+ ]
1258
+ } ]
1259
+ } ] , {
1260
+ dragmode : 'select' ,
1261
+ showlegend : false ,
1262
+ width : 400 ,
1263
+ height : 400 ,
1264
+ margin : { l : 0 , t : 0 , r : 0 , b : 0 }
1265
+ } )
1266
+ . then ( function ( ) {
1267
+ return _run (
1268
+ [ [ 5 , 5 ] , [ 395 , 395 ] ] ,
1269
+ function ( ) {
1270
+ assertSelectedPoints ( { 0 : [ 1 , 3 , 4 ] } ) ;
1271
+ } ,
1272
+ [ 380 , 180 ] ,
1273
+ BOXEVENTS , 'transformed trace select (all points selected)'
1274
+ ) ;
1275
+ } )
1276
+ . catch ( fail )
1277
+ . then ( done ) ;
1278
+ } ) ;
1154
1279
} ) ;
1155
1280
1156
1281
// to make sure none of the above tests fail with extraneous invisible traces,
0 commit comments