@@ -46,6 +46,8 @@ describe('CronjobController', () => {
4646 messenger : controllerMessenger ,
4747 } ) ;
4848
49+ cronjobController . init ( ) ;
50+
4951 cronjobController . register ( MOCK_SNAP_ID ) ;
5052
5153 expect ( rootMessenger . call ) . toHaveBeenCalledWith (
@@ -92,6 +94,8 @@ describe('CronjobController', () => {
9294 messenger : controllerMessenger ,
9395 } ) ;
9496
97+ cronjobController . init ( ) ;
98+
9599 cronjobController . register ( MOCK_SNAP_ID ) ;
96100
97101 expect ( rootMessenger . call ) . toHaveBeenCalledWith (
@@ -127,6 +131,8 @@ describe('CronjobController', () => {
127131 messenger : controllerMessenger ,
128132 } ) ;
129133
134+ cronjobController . init ( ) ;
135+
130136 cronjobController . register ( MOCK_SNAP_ID ) ;
131137 cronjobController . unregister ( MOCK_SNAP_ID ) ;
132138
@@ -157,6 +163,8 @@ describe('CronjobController', () => {
157163 messenger : controllerMessenger ,
158164 } ) ;
159165
166+ cronjobController . init ( ) ;
167+
160168 // @ts -expect-error: `update` is protected.
161169 cronjobController . update ( ( ) => {
162170 return {
@@ -226,6 +234,8 @@ describe('CronjobController', () => {
226234 } ,
227235 } ) ;
228236
237+ cronjobController . init ( ) ;
238+
229239 await new Promise ( ( resolve ) => originalProcessNextTick ( resolve ) ) ;
230240 expect ( rootMessenger . call ) . toHaveBeenCalledWith (
231241 'SnapController:handleRequest' ,
@@ -245,6 +255,8 @@ describe('CronjobController', () => {
245255 state : cronjobController . state ,
246256 } ) ;
247257
258+ secondCronjobController . init ( ) ;
259+
248260 await new Promise ( ( resolve ) => originalProcessNextTick ( resolve ) ) ;
249261 expect ( handleRequest ) . toHaveBeenCalledTimes ( 1 ) ;
250262
@@ -272,6 +284,8 @@ describe('CronjobController', () => {
272284 messenger : controllerMessenger ,
273285 } ) ;
274286
287+ cronjobController . init ( ) ;
288+
275289 cronjobController . register ( MOCK_SNAP_ID ) ;
276290 jest . runOnlyPendingTimers ( ) ;
277291
@@ -317,6 +331,8 @@ describe('CronjobController', () => {
317331 messenger : controllerMessenger ,
318332 } ) ;
319333
334+ cronjobController . init ( ) ;
335+
320336 cronjobController . register ( MOCK_SNAP_ID ) ;
321337
322338 jest . advanceTimersByTime ( inMilliseconds ( 1 , Duration . Day ) ) ;
@@ -372,6 +388,8 @@ describe('CronjobController', () => {
372388 messenger : controllerMessenger ,
373389 } ) ;
374390
391+ cronjobController . init ( ) ;
392+
375393 cronjobController . register ( MOCK_SNAP_ID ) ;
376394 expect ( cronjobController . state . events ) . toStrictEqual ( { } ) ;
377395
@@ -403,6 +421,8 @@ describe('CronjobController', () => {
403421 } ,
404422 } ) ;
405423
424+ cronjobController . init ( ) ;
425+
406426 jest . advanceTimersByTime ( inMilliseconds ( 1 , Duration . Day ) ) ;
407427
408428 expect ( rootMessenger . call ) . toHaveBeenCalledWith (
@@ -432,6 +452,8 @@ describe('CronjobController', () => {
432452 messenger : controllerMessenger ,
433453 } ) ;
434454
455+ cronjobController . init ( ) ;
456+
435457 const snapInfo : TruncatedSnap = {
436458 blocked : false ,
437459 enabled : true ,
@@ -514,6 +536,8 @@ describe('CronjobController', () => {
514536 } ,
515537 } ) ;
516538
539+ cronjobController . init ( ) ;
540+
517541 const snapInfo : TruncatedSnap = {
518542 blocked : false ,
519543 enabled : true ,
@@ -594,6 +618,8 @@ describe('CronjobController', () => {
594618 messenger : controllerMessenger ,
595619 } ) ;
596620
621+ cronjobController . init ( ) ;
622+
597623 const snapInfo : TruncatedSnap = {
598624 blocked : false ,
599625 enabled : true ,
@@ -626,6 +652,8 @@ describe('CronjobController', () => {
626652 messenger : controllerMessenger ,
627653 } ) ;
628654
655+ cronjobController . init ( ) ;
656+
629657 const snapInfo : TruncatedSnap = {
630658 blocked : false ,
631659 enabled : true ,
@@ -686,6 +714,8 @@ describe('CronjobController', () => {
686714 } ,
687715 } ) ;
688716
717+ cronjobController . init ( ) ;
718+
689719 const snapInfo : TruncatedSnap = {
690720 blocked : false ,
691721 enabled : true ,
@@ -729,6 +759,8 @@ describe('CronjobController', () => {
729759 messenger : controllerMessenger ,
730760 } ) ;
731761
762+ cronjobController . init ( ) ;
763+
732764 cronjobController . register ( MOCK_SNAP_ID ) ;
733765
734766 cronjobController . destroy ( ) ;
@@ -764,6 +796,8 @@ describe('CronjobController', () => {
764796 messenger : controllerMessenger ,
765797 } ) ;
766798
799+ cronjobController . init ( ) ;
800+
767801 const error = new Error ( 'Test error.' ) ;
768802 rootMessenger . registerActionHandler (
769803 'SnapController:handleRequest' ,
@@ -795,6 +829,8 @@ describe('CronjobController', () => {
795829 messenger : controllerMessenger ,
796830 } ) ;
797831
832+ cronjobController . init ( ) ;
833+
798834 const event = {
799835 snapId : MOCK_SNAP_ID ,
800836 schedule : '2022-01-01T01:00Z' ,
@@ -844,6 +880,8 @@ describe('CronjobController', () => {
844880 messenger : controllerMessenger ,
845881 } ) ;
846882
883+ cronjobController . init ( ) ;
884+
847885 const event = {
848886 snapId : MOCK_SNAP_ID ,
849887 schedule : '2021-01-01T01:00Z' ,
@@ -873,6 +911,8 @@ describe('CronjobController', () => {
873911 messenger : controllerMessenger ,
874912 } ) ;
875913
914+ cronjobController . init ( ) ;
915+
876916 const event = {
877917 snapId : MOCK_SNAP_ID ,
878918 schedule : '2022-01-01T01:00Z' ,
@@ -911,6 +951,8 @@ describe('CronjobController', () => {
911951 messenger : controllerMessenger ,
912952 } ) ;
913953
954+ cronjobController . init ( ) ;
955+
914956 const event = {
915957 snapId : MOCK_SNAP_ID ,
916958 schedule : '2022-01-01T01:00Z' ,
@@ -949,6 +991,8 @@ describe('CronjobController', () => {
949991 messenger : controllerMessenger ,
950992 } ) ;
951993
994+ cronjobController . init ( ) ;
995+
952996 const event = {
953997 snapId : MOCK_SNAP_ID ,
954998 schedule : '2025-05-21T13:25:21.500Z' ,
@@ -979,4 +1023,51 @@ describe('CronjobController', () => {
9791023 cronjobController . destroy ( ) ;
9801024 } ) ;
9811025 } ) ;
1026+
1027+ describe ( 'CronjobController:init' , ( ) => {
1028+ it ( 'initializes the controller' , ( ) => {
1029+ const rootMessenger = getRootCronjobControllerMessenger ( ) ;
1030+ const controllerMessenger =
1031+ getRestrictedCronjobControllerMessenger ( rootMessenger ) ;
1032+
1033+ const cronjobController = new CronjobController ( {
1034+ messenger : controllerMessenger ,
1035+ state : {
1036+ events : {
1037+ [ `cronjob-${ MOCK_SNAP_ID } -0` ] : {
1038+ id : `cronjob-${ MOCK_SNAP_ID } -0` ,
1039+ snapId : MOCK_SNAP_ID ,
1040+ date : new Date ( '2022-01-01T00:00Z' ) . toISOString ( ) ,
1041+ scheduledAt : new Date ( '2022-01-01T00:00Z' ) . toISOString ( ) ,
1042+ schedule : 'PT25H' ,
1043+ recurring : true ,
1044+ request : {
1045+ method : 'exampleMethod' ,
1046+ params : [ 'p1' ] ,
1047+ } ,
1048+ } ,
1049+ } ,
1050+ } ,
1051+ } ) ;
1052+
1053+ controllerMessenger . call ( 'CronjobController:init' ) ;
1054+
1055+ jest . advanceTimersByTime ( inMilliseconds ( 1 , Duration . Day ) ) ;
1056+
1057+ expect ( rootMessenger . call ) . toHaveBeenCalledWith (
1058+ 'SnapController:handleRequest' ,
1059+ {
1060+ snapId : MOCK_SNAP_ID ,
1061+ origin : METAMASK_ORIGIN ,
1062+ handler : HandlerType . OnCronjob ,
1063+ request : {
1064+ method : 'exampleMethod' ,
1065+ params : [ 'p1' ] ,
1066+ } ,
1067+ } ,
1068+ ) ;
1069+
1070+ cronjobController . destroy ( ) ;
1071+ } ) ;
1072+ } ) ;
9821073} ) ;
0 commit comments