@@ -772,46 +772,66 @@ o.spec("event", function() {
772
772
} )
773
773
} )
774
774
o ( "async function (event.redraw = false)" , function ( done ) {
775
+ var spy = o . spy ( )
775
776
var div = m ( "div" , { onclick : async function ( ev ) {
776
777
// set event.redraw = false to prevent redraws
777
778
ev . redraw = false
779
+ spy ( )
778
780
} } )
779
781
var e = $window . document . createEvent ( "MouseEvents" )
780
782
e . initEvent ( "click" , true , true )
781
783
782
784
render ( root , div )
785
+
786
+ // event listener has not yet been called
787
+ o ( spy . callCount ) . equals ( 0 )
788
+
783
789
div . dom . dispatchEvent ( e )
784
790
791
+ // event listener called but not redraw
792
+ o ( spy . callCount ) . equals ( 1 )
785
793
o ( redraw . callCount ) . equals ( 0 )
786
794
787
795
callAsync ( function ( ) {
796
+ o ( spy . callCount ) . equals ( 1 )
788
797
o ( redraw . callCount ) . equals ( 0 )
789
798
790
799
done ( )
791
800
} )
792
801
} )
793
802
o ( "async function (event.redraw = false, await Promise)" , function ( done ) {
794
803
var thenCB
804
+ var spy = o . spy ( function ( resolve ) { thenCB = resolve } )
795
805
var div = m ( "div" , { onclick : async function ( ev ) {
796
806
// set event.redraw = false to prevent redraws
797
807
ev . redraw = false
798
- await new Promise ( function ( resolve ) { thenCB = resolve } )
808
+ await new Promise ( spy )
799
809
} } )
800
810
var e = $window . document . createEvent ( "MouseEvents" )
801
811
e . initEvent ( "click" , true , true )
802
812
803
813
render ( root , div )
814
+
815
+ // event listener has not yet been called
816
+ o ( spy . callCount ) . equals ( 0 )
817
+ o ( thenCB ) . equals ( undefined )
818
+
804
819
div . dom . dispatchEvent ( e )
805
820
821
+ // event listener called but not redraw
822
+ o ( spy . callCount ) . equals ( 1 )
823
+ o ( thenCB ) . notEquals ( undefined )
806
824
o ( redraw . callCount ) . equals ( 0 )
807
825
808
826
callAsync ( function ( ) {
809
827
// not resolved yet
828
+ o ( spy . callCount ) . equals ( 1 )
810
829
o ( redraw . callCount ) . equals ( 0 )
811
830
812
831
// resolve
813
832
thenCB ( )
814
833
callAsync ( function ( ) {
834
+ o ( spy . callCount ) . equals ( 1 )
815
835
o ( redraw . callCount ) . equals ( 0 )
816
836
817
837
done ( )
@@ -850,28 +870,38 @@ o.spec("event", function() {
850
870
} )
851
871
o ( "async function (event.redraw = false, await Promise, event.redraw = true)" , function ( done ) {
852
872
var thenCB
873
+ var spy = o . spy ( function ( resolve ) { thenCB = resolve } )
853
874
var div = m ( "div" , { onclick : async function ( ev ) {
854
875
// set event.redraw = false to prevent sync redraw
855
876
ev . redraw = false
856
- await new Promise ( function ( resolve ) { thenCB = resolve } )
877
+ await new Promise ( spy )
857
878
// set event.redraw = true to enable async redraw
858
879
ev . redraw = true
859
880
} } )
860
881
var e = $window . document . createEvent ( "MouseEvents" )
861
882
e . initEvent ( "click" , true , true )
862
883
863
884
render ( root , div )
885
+
886
+ // event listener has not yet been called
887
+ o ( spy . callCount ) . equals ( 0 )
888
+ o ( thenCB ) . equals ( undefined )
889
+
864
890
div . dom . dispatchEvent ( e )
865
891
892
+ // event listener called but not redraw
893
+ o ( spy . callCount ) . equals ( 1 )
894
+ o ( thenCB ) . notEquals ( undefined )
866
895
o ( redraw . callCount ) . equals ( 0 )
867
-
868
896
callAsync ( function ( ) {
869
897
// not resolved yet
898
+ o ( spy . callCount ) . equals ( 1 )
870
899
o ( redraw . callCount ) . equals ( 0 )
871
900
872
901
// resolve
873
902
thenCB ( )
874
903
callAsync ( function ( ) {
904
+ o ( spy . callCount ) . equals ( 1 )
875
905
o ( redraw . callCount ) . equals ( 1 )
876
906
o ( redraw . this ) . equals ( undefined )
877
907
o ( redraw . args . length ) . equals ( 0 )
@@ -917,35 +947,52 @@ o.spec("event", function() {
917
947
} )
918
948
} )
919
949
o ( "avoid sync redraw after removal" , function ( ) {
920
- var div = m ( "div" , { onclick : function ( ) { } } )
950
+ var spy = o . spy ( )
951
+ var div = m ( "div" , { onclick : spy } )
921
952
var e = $window . document . createEvent ( "MouseEvents" )
922
953
e . initEvent ( "click" , true , true )
923
954
924
955
render ( root , div )
925
956
// remove div
926
957
render ( root , [ ] )
927
958
959
+ // event listener has not yet been called
960
+ o ( spy . callCount ) . equals ( 0 )
961
+
928
962
div . dom . dispatchEvent ( e )
929
963
964
+ // event listener called but not redraw
965
+ o ( spy . callCount ) . equals ( 1 )
930
966
o ( redraw . callCount ) . equals ( 0 )
931
967
} )
932
968
o ( "avoid async redraw after removal" , function ( done ) {
933
969
var thenCB
970
+ var spy = o . spy ( function ( resolve ) { thenCB = resolve } )
934
971
var div = m ( "div" , { onclick : async function ( ) {
935
- await new Promise ( function ( resolve ) { thenCB = resolve } )
972
+ await new Promise ( spy )
936
973
} } )
937
974
var e = $window . document . createEvent ( "MouseEvents" )
938
975
e . initEvent ( "click" , true , true )
939
976
940
977
render ( root , div )
978
+
979
+ // event listener has not yet been called
980
+ o ( spy . callCount ) . equals ( 0 )
981
+ o ( thenCB ) . equals ( undefined )
982
+
941
983
div . dom . dispatchEvent ( e )
942
984
985
+ // event listener called
986
+ o ( spy . callCount ) . equals ( 1 )
987
+ o ( thenCB ) . notEquals ( undefined )
988
+
943
989
o ( redraw . callCount ) . equals ( 1 )
944
990
o ( redraw . this ) . equals ( undefined )
945
991
o ( redraw . args . length ) . equals ( 0 )
946
992
947
993
callAsync ( function ( ) {
948
994
// not resolved yet
995
+ o ( spy . callCount ) . equals ( 1 )
949
996
o ( redraw . callCount ) . equals ( 1 )
950
997
951
998
// remove div
@@ -954,6 +1001,7 @@ o.spec("event", function() {
954
1001
// resolve
955
1002
thenCB ( )
956
1003
callAsync ( function ( ) {
1004
+ o ( spy . callCount ) . equals ( 1 )
957
1005
o ( redraw . callCount ) . equals ( 1 )
958
1006
959
1007
done ( )
0 commit comments