@@ -913,17 +913,51 @@ describe('FakeAsyncTestZoneSpec', () => {
913
913
expect ( d instanceof Date ) . toBe ( true ) ;
914
914
} ) ;
915
915
} ) ;
916
+
917
+ it ( 'should new Date with parameter correctly' , ( ) => {
918
+ fakeAsyncTestZone . run ( ( ) => {
919
+ const d : Date = new Date ( 0 ) ;
920
+ expect ( d . getFullYear ( ) ) . toBeLessThan ( 1971 ) ;
921
+ const d1 : Date = new Date ( 'December 17, 1995 03:24:00' ) ;
922
+ expect ( d1 . getFullYear ( ) ) . toEqual ( 1995 ) ;
923
+ const d2 : Date = new Date ( 1995 , 11 , 17 , 3 , 24 , 0 ) ;
924
+ expect ( d2 . getFullYear ( ) ) . toEqual ( 1995 ) ;
925
+
926
+ d2 . setFullYear ( 1985 ) ;
927
+ expect ( isNaN ( d2 . getTime ( ) ) ) . toBeFalsy ( ) ;
928
+ expect ( d2 . getFullYear ( ) ) . toBe ( 1985 ) ;
929
+ expect ( d2 . getMonth ( ) ) . toBe ( 11 ) ;
930
+ expect ( d2 . getDate ( ) ) . toBe ( 17 ) ;
931
+ } ) ;
932
+ } ) ;
933
+
934
+ it ( 'should get Date.UTC() correctly' , ( ) => {
935
+ fakeAsyncTestZone . run ( ( ) => {
936
+ const utcDate = new Date ( Date . UTC ( 96 , 11 , 1 , 0 , 0 , 0 ) ) ;
937
+ expect ( utcDate . getFullYear ( ) ) . toBe ( 1996 ) ;
938
+ } ) ;
939
+ } ) ;
940
+
941
+ it ( 'should call Date.parse() correctly' , ( ) => {
942
+ fakeAsyncTestZone . run ( ( ) => {
943
+ const unixTimeZero = Date . parse ( '01 Jan 1970 00:00:00 GMT' ) ;
944
+ expect ( unixTimeZero ) . toBe ( 0 ) ;
945
+ } ) ;
946
+ } ) ;
947
+
916
948
} ) ;
917
949
918
950
describe (
919
- 'fakeAsyncTest should work without jasmine.clock' ,
951
+ 'fakeAsyncTest should work without patch jasmine.clock' ,
920
952
ifEnvSupports (
921
953
( ) => {
922
954
return ! supportClock ( ) && supportNode ( ) ;
923
955
} ,
924
956
( ) => {
925
957
const fakeAsync = ( Zone as any ) [ Zone . __symbol__ ( 'fakeAsyncTest' ) ] . fakeAsync ;
958
+ let spy : any ;
926
959
beforeEach ( ( ) => {
960
+ spy = jasmine . createSpy ( 'timer' ) ;
927
961
jasmine . clock ( ) . install ( ) ;
928
962
} ) ;
929
963
@@ -932,11 +966,44 @@ describe('FakeAsyncTestZoneSpec', () => {
932
966
} ) ;
933
967
934
968
it ( 'should check date type correctly' , fakeAsync ( ( ) => {
969
+ const d : any = new Date ( ) ;
970
+ expect ( d instanceof Date ) . toBe ( true ) ;
971
+ } ) ) ;
972
+
973
+ it ( 'should check date type correctly without fakeAsync' , ( ) => {
935
974
const d : any = new Date ( ) ;
936
975
expect ( d instanceof Date ) . toBe ( true ) ;
937
- } ) ) ;
976
+ } ) ;
977
+
978
+ it ( 'should tick correctly' , fakeAsync ( ( ) => {
979
+ jasmine . clock ( ) . mockDate ( ) ;
980
+ const start = Date . now ( ) ;
981
+ jasmine . clock ( ) . tick ( 100 ) ;
982
+ const end = Date . now ( ) ;
983
+ expect ( end - start ) . toBe ( 100 ) ;
984
+ } ) ) ;
985
+
986
+ it ( 'should tick correctly without fakeAsync' , ( ) => {
987
+ jasmine . clock ( ) . mockDate ( ) ;
988
+ const start = Date . now ( ) ;
989
+ jasmine . clock ( ) . tick ( 100 ) ;
990
+ const end = Date . now ( ) ;
991
+ expect ( end - start ) . toBe ( 100 ) ;
992
+ } ) ;
938
993
939
994
it ( 'should mock date correctly' , fakeAsync ( ( ) => {
995
+ const baseTime = new Date ( 2013 , 9 , 23 ) ;
996
+ jasmine . clock ( ) . mockDate ( baseTime ) ;
997
+ const start = Date . now ( ) ;
998
+ expect ( start ) . toBe ( baseTime . getTime ( ) ) ;
999
+ jasmine . clock ( ) . tick ( 100 ) ;
1000
+ const end = Date . now ( ) ;
1001
+ expect ( end - start ) . toBe ( 100 ) ;
1002
+ expect ( end ) . toBe ( baseTime . getTime ( ) + 100 ) ;
1003
+ expect ( new Date ( ) . getFullYear ( ) ) . toEqual ( 2013 ) ;
1004
+ } ) ) ;
1005
+
1006
+ it ( 'should mock date correctly without fakeAsync' , ( ) => {
940
1007
const baseTime = new Date ( 2013 , 9 , 23 ) ;
941
1008
jasmine . clock ( ) . mockDate ( baseTime ) ;
942
1009
const start = Date . now ( ) ;
@@ -945,9 +1012,21 @@ describe('FakeAsyncTestZoneSpec', () => {
945
1012
const end = Date . now ( ) ;
946
1013
expect ( end - start ) . toBe ( 100 ) ;
947
1014
expect ( end ) . toBe ( baseTime . getTime ( ) + 100 ) ;
948
- } ) ) ;
1015
+ expect ( new Date ( ) . getFullYear ( ) ) . toEqual ( 2013 ) ;
1016
+ } ) ;
949
1017
950
1018
it ( 'should handle new Date correctly' , fakeAsync ( ( ) => {
1019
+ const baseTime = new Date ( 2013 , 9 , 23 ) ;
1020
+ jasmine . clock ( ) . mockDate ( baseTime ) ;
1021
+ const start = new Date ( ) ;
1022
+ expect ( start . getTime ( ) ) . toBe ( baseTime . getTime ( ) ) ;
1023
+ jasmine . clock ( ) . tick ( 100 ) ;
1024
+ const end = new Date ( ) ;
1025
+ expect ( end . getTime ( ) - start . getTime ( ) ) . toBe ( 100 ) ;
1026
+ expect ( end . getTime ( ) ) . toBe ( baseTime . getTime ( ) + 100 ) ;
1027
+ } ) ) ;
1028
+
1029
+ it ( 'should handle new Date correctly without fakeAsync' , ( ) => {
951
1030
const baseTime = new Date ( 2013 , 9 , 23 ) ;
952
1031
jasmine . clock ( ) . mockDate ( baseTime ) ;
953
1032
const start = new Date ( ) ;
@@ -956,11 +1035,27 @@ describe('FakeAsyncTestZoneSpec', () => {
956
1035
const end = new Date ( ) ;
957
1036
expect ( end . getTime ( ) - start . getTime ( ) ) . toBe ( 100 ) ;
958
1037
expect ( end . getTime ( ) ) . toBe ( baseTime . getTime ( ) + 100 ) ;
959
- } ) ) ;
1038
+ } ) ;
1039
+
1040
+ it ( 'should handle setTimeout correctly' , fakeAsync ( ( ) => {
1041
+ setTimeout ( spy , 100 ) ;
1042
+ expect ( spy ) . not . toHaveBeenCalled ( ) ;
1043
+ jasmine . clock ( ) . tick ( 100 ) ;
1044
+ expect ( spy ) . toHaveBeenCalled ( ) ;
1045
+ } ) ) ;
1046
+
1047
+ it ( 'should handle setTimeout correctly without fakeAsync' , ( ) => {
1048
+ setTimeout ( spy , 100 ) ;
1049
+ expect ( spy ) . not . toHaveBeenCalled ( ) ;
1050
+ jasmine . clock ( ) . tick ( 100 ) ;
1051
+ expect ( spy ) . toHaveBeenCalled ( ) ;
1052
+ } ) ;
960
1053
} ) ) ;
961
1054
962
1055
describe ( 'fakeAsyncTest should patch jasmine.clock' , ifEnvSupports ( supportClock , ( ) => {
1056
+ let spy : any ;
963
1057
beforeEach ( ( ) => {
1058
+ spy = jasmine . createSpy ( 'timer' ) ;
964
1059
jasmine . clock ( ) . install ( ) ;
965
1060
} ) ;
966
1061
@@ -980,6 +1075,13 @@ describe('FakeAsyncTestZoneSpec', () => {
980
1075
expect ( end - start ) . toBe ( 100 ) ;
981
1076
} ) ;
982
1077
1078
+ it ( 'should tick correctly' , ( ) => {
1079
+ const start = Date . now ( ) ;
1080
+ jasmine . clock ( ) . tick ( 100 ) ;
1081
+ const end = Date . now ( ) ;
1082
+ expect ( end - start ) . toBe ( 100 ) ;
1083
+ } ) ;
1084
+
983
1085
it ( 'should mock date correctly' , ( ) => {
984
1086
const baseTime = new Date ( 2013 , 9 , 23 ) ;
985
1087
jasmine . clock ( ) . mockDate ( baseTime ) ;
@@ -1001,6 +1103,13 @@ describe('FakeAsyncTestZoneSpec', () => {
1001
1103
expect ( end . getTime ( ) - start . getTime ( ) ) . toBe ( 100 ) ;
1002
1104
expect ( end . getTime ( ) ) . toBe ( baseTime . getTime ( ) + 100 ) ;
1003
1105
} ) ;
1106
+
1107
+ it ( 'should handle setTimeout correctly' , ( ) => {
1108
+ setTimeout ( spy , 100 ) ;
1109
+ expect ( spy ) . not . toHaveBeenCalled ( ) ;
1110
+ jasmine . clock ( ) . tick ( 100 ) ;
1111
+ expect ( spy ) . toHaveBeenCalled ( ) ;
1112
+ } ) ;
1004
1113
} ) ) ;
1005
1114
1006
1115
describe ( 'fakeAsyncTest should patch rxjs scheduler' , ifEnvSupports ( supportClock , ( ) => {
@@ -1427,6 +1536,44 @@ const {fakeAsync, tick, discardPeriodicTasks, flush, flushMicrotasks} = fakeAsyn
1427
1536
expect ( zoneInTest1 ) . toBe ( zoneInBeforeEach ) ;
1428
1537
} ) ) ;
1429
1538
} ) ;
1539
+
1540
+ describe ( 'fakeAsync should work with Date' , ( ) => {
1541
+ it ( 'should get date diff correctly' , fakeAsync ( ( ) => {
1542
+ const start = Date . now ( ) ;
1543
+ tick ( 100 ) ;
1544
+ const end = Date . now ( ) ;
1545
+ expect ( end - start ) . toBe ( 100 ) ;
1546
+ } ) ) ;
1547
+
1548
+ it ( 'should check date type correctly' , fakeAsync ( ( ) => {
1549
+ const d : any = new Date ( ) ;
1550
+ expect ( d instanceof Date ) . toBe ( true ) ;
1551
+ } ) ) ;
1552
+
1553
+ it ( 'should new Date with parameter correctly' , fakeAsync ( ( ) => {
1554
+ const d : Date = new Date ( 0 ) ;
1555
+ expect ( d . getFullYear ( ) ) . toBeLessThan ( 1971 ) ;
1556
+ const d1 : Date = new Date ( 'December 17, 1995 03:24:00' ) ;
1557
+ expect ( d1 . getFullYear ( ) ) . toEqual ( 1995 ) ;
1558
+ const d2 : Date = new Date ( 1995 , 11 , 17 , 3 , 24 , 0 ) ;
1559
+ expect ( isNaN ( d2 . getTime ( ) ) ) . toBeFalsy ( ) ;
1560
+ expect ( d2 . getFullYear ( ) ) . toEqual ( 1995 ) ;
1561
+ d2 . setFullYear ( 1985 ) ;
1562
+ expect ( d2 . getFullYear ( ) ) . toBe ( 1985 ) ;
1563
+ expect ( d2 . getMonth ( ) ) . toBe ( 11 ) ;
1564
+ expect ( d2 . getDate ( ) ) . toBe ( 17 ) ;
1565
+ } ) ) ;
1566
+
1567
+ it ( 'should get Date.UTC() correctly' , fakeAsync ( ( ) => {
1568
+ const utcDate = new Date ( Date . UTC ( 96 , 11 , 1 , 0 , 0 , 0 ) ) ;
1569
+ expect ( utcDate . getFullYear ( ) ) . toBe ( 1996 ) ;
1570
+ } ) ) ;
1571
+
1572
+ it ( 'should call Date.parse() correctly' , fakeAsync ( ( ) => {
1573
+ const unixTimeZero = Date . parse ( '01 Jan 1970 00:00:00 GMT' ) ;
1574
+ expect ( unixTimeZero ) . toBe ( 0 ) ;
1575
+ } ) ) ;
1576
+ } ) ;
1430
1577
} ) ;
1431
1578
1432
1579
describe ( 'ProxyZone' , ( ) => {
0 commit comments