@@ -4,6 +4,7 @@ import { MockEmitter } from "../utils/emitter";
44
55describe ( "snapshot" , ( ) => {
66 let veaInbox : any ;
7+ let veaOutbox : any ;
78 let count : number = 1 ;
89 const chainId = 11155111 ;
910 let fetchLastSavedMessage : jest . Mock ;
@@ -14,8 +15,12 @@ describe("snapshot", () => {
1415 filters : {
1516 SnapshotSaved : jest . fn ( ) ,
1617 } ,
18+ snapshots : jest . fn ( ) ,
1719 getAddress : jest . fn ( ) . mockResolvedValue ( "0x1" ) ,
1820 } ;
21+ veaOutbox = {
22+ stateRoot : jest . fn ( ) ,
23+ } ;
1924 } ) ;
2025 describe ( "isSnapshotNeeded" , ( ) => {
2126 it ( "should return false and updated count when there are no new messages and count is -1 " , ( ) => {
@@ -27,9 +32,10 @@ describe("snapshot", () => {
2732 const params = {
2833 chainId,
2934 veaInbox,
35+ veaOutbox,
3036 count,
3137 fetchLastSavedMessage,
32- } ;
38+ } as any ;
3339 expect ( isSnapshotNeeded ( params ) ) . resolves . toEqual ( {
3440 snapshotNeeded : false ,
3541 latestCount : currentCount ,
@@ -45,9 +51,10 @@ describe("snapshot", () => {
4551 const params = {
4652 chainId,
4753 veaInbox,
54+ veaOutbox,
4855 count,
4956 fetchLastSavedMessage,
50- } ;
57+ } as any ;
5158 expect ( isSnapshotNeeded ( params ) ) . resolves . toEqual ( {
5259 snapshotNeeded : false ,
5360 latestCount : count ,
@@ -62,9 +69,10 @@ describe("snapshot", () => {
6269 const params = {
6370 chainId,
6471 veaInbox,
72+ veaOutbox,
6573 count,
6674 fetchLastSavedMessage,
67- } ;
75+ } as any ;
6876 expect ( isSnapshotNeeded ( params ) ) . resolves . toEqual ( {
6977 snapshotNeeded : false ,
7078 latestCount : currentCount ,
@@ -79,9 +87,10 @@ describe("snapshot", () => {
7987 const params = {
8088 chainId,
8189 veaInbox,
90+ veaOutbox,
8291 count,
8392 fetchLastSavedMessage,
84- } ;
93+ } as any ;
8594 expect ( isSnapshotNeeded ( params ) ) . resolves . toEqual ( {
8695 snapshotNeeded : true ,
8796 latestCount : currentCount ,
@@ -96,9 +105,30 @@ describe("snapshot", () => {
96105 const params = {
97106 chainId,
98107 veaInbox,
108+ veaOutbox,
99109 count,
100110 fetchLastSavedMessage,
101- } ;
111+ } as any ;
112+ expect ( isSnapshotNeeded ( params ) ) . resolves . toEqual ( {
113+ snapshotNeeded : true ,
114+ latestCount : currentCount ,
115+ } ) ;
116+ } ) ;
117+ it . only ( "should return true if claim was missed in previous epoch" , async ( ) => {
118+ count = 1 ;
119+ let currentCount = 3 ;
120+ veaInbox . count . mockResolvedValue ( currentCount ) ;
121+ fetchLastSavedMessage = jest . fn ( ) . mockResolvedValue ( "message-3" ) ;
122+ veaInbox . queryFilter . mockRejectedValue ( new Error ( "queryFilter failed" ) ) ;
123+ veaOutbox . stateRoot . mockResolvedValue ( "0xabcde" ) ;
124+ veaInbox . snapshots . mockResolvedValue ( "0x0" ) ;
125+ const params = {
126+ chainId,
127+ veaInbox,
128+ veaOutbox,
129+ count,
130+ fetchLastSavedMessage,
131+ } as any ;
102132 expect ( isSnapshotNeeded ( params ) ) . resolves . toEqual ( {
103133 snapshotNeeded : true ,
104134 latestCount : currentCount ,
@@ -119,6 +149,7 @@ describe("snapshot", () => {
119149 const res = await saveSnapshot ( {
120150 chainId,
121151 veaInbox,
152+ veaOutbox,
122153 network,
123154 epochPeriod,
124155 count,
@@ -146,6 +177,7 @@ describe("snapshot", () => {
146177 const res = await saveSnapshot ( {
147178 chainId,
148179 veaInbox,
180+ veaOutbox,
149181 network,
150182 epochPeriod,
151183 count,
@@ -172,6 +204,7 @@ describe("snapshot", () => {
172204 const res = await saveSnapshot ( {
173205 chainId,
174206 veaInbox,
207+ veaOutbox,
175208 network,
176209 epochPeriod,
177210 count : - 1 ,
@@ -200,6 +233,7 @@ describe("snapshot", () => {
200233 const res = await saveSnapshot ( {
201234 chainId,
202235 veaInbox,
236+ veaOutbox,
203237 network : Network . DEVNET ,
204238 epochPeriod,
205239 count,
0 commit comments