8
8
"github.com/jackc/pgx/v4/pgxpool"
9
9
"gotest.tools/assert"
10
10
11
- keyperDB "github.com/shutter-network/rolling-shutter/rolling-shutter/keyper/database"
12
11
"github.com/shutter-network/rolling-shutter/rolling-shutter/keyperimpl/shutterservice"
13
12
"github.com/shutter-network/rolling-shutter/rolling-shutter/keyperimpl/shutterservice/database"
14
13
"github.com/shutter-network/rolling-shutter/rolling-shutter/medley/service"
@@ -18,23 +17,9 @@ import (
18
17
func setupTestData (ctx context.Context , t * testing.T , dbpool * pgxpool.Pool , blockNumber int64 ) {
19
18
t .Helper ()
20
19
db := database .New (dbpool )
21
- keyperdb := keyperDB .New (dbpool )
22
-
23
- // Set up eon
24
- err := keyperdb .InsertEon (ctx , keyperDB.InsertEonParams {
25
- Eon : 1 ,
26
- })
27
- assert .NilError (t , err )
28
-
29
- // Set up DKG result
30
- err = keyperdb .InsertDKGResult (ctx , keyperDB.InsertDKGResultParams {
31
- Eon : 1 ,
32
- Success : true ,
33
- })
34
- assert .NilError (t , err )
35
20
36
21
// Set up initial block
37
- err = db .SetIdentityRegisteredEventSyncedUntil (ctx , database.SetIdentityRegisteredEventSyncedUntilParams {
22
+ err : = db .SetIdentityRegisteredEventSyncedUntil (ctx , database.SetIdentityRegisteredEventSyncedUntilParams {
38
23
BlockHash : []byte {0x01 , 0x02 , 0x03 },
39
24
BlockNumber : blockNumber ,
40
25
})
@@ -121,132 +106,13 @@ func TestAPISyncMonitor_HandlesBlockNumberIncreasing(t *testing.T) {
121
106
assert .Equal (t , initialBlockNumber + 5 , syncedData .BlockNumber , "block number should have been incremented correctly" )
122
107
}
123
108
124
- func TestAPISyncMonitor_SkipsWhenDKGIsRunning (t * testing.T ) {
125
- ctx , cancel := context .WithCancel (context .Background ())
126
- defer cancel ()
127
-
128
- dbpool , closeDB := testsetup .NewTestDBPool (ctx , t , database .Definition )
129
- defer closeDB ()
130
- db := database .New (dbpool )
131
- keyperdb := keyperDB .New (dbpool )
132
-
133
- // Set up eon but no DKG result to simulate DKG running
134
- err := keyperdb .InsertEon (ctx , keyperDB.InsertEonParams {
135
- Eon : 1 ,
136
- })
137
- assert .NilError (t , err )
138
-
139
- // Set up initial block data
140
- initialBlockNumber := int64 (100 )
141
- err = db .SetIdentityRegisteredEventSyncedUntil (ctx , database.SetIdentityRegisteredEventSyncedUntilParams {
142
- BlockHash : []byte {0x01 , 0x02 , 0x03 },
143
- BlockNumber : initialBlockNumber ,
144
- })
145
- assert .NilError (t , err )
146
-
147
- monitor := & shutterservice.SyncMonitor {
148
- DBPool : dbpool ,
149
- CheckInterval : 5 * time .Second ,
150
- }
151
-
152
- monitorCtx , cancelMonitor := context .WithCancel (ctx )
153
- defer cancelMonitor ()
154
-
155
- errCh := make (chan error , 1 )
156
- go func () {
157
- err := service .RunWithSighandler (monitorCtx , monitor )
158
- if err != nil {
159
- errCh <- err
160
- }
161
- }()
162
-
163
- // Let it run for a while without incrementing the block number
164
- time .Sleep (15 * time .Second )
165
- cancelMonitor ()
166
-
167
- select {
168
- case err := <- errCh :
169
- t .Fatalf ("expected monitor to continue without error, but got: %v" , err )
170
- case <- time .After (1 * time .Second ):
171
- // Test passes if no error is received
172
- }
173
-
174
- // Verify the block number hasn't changed
175
- syncedData , err := db .GetIdentityRegisteredEventsSyncedUntil (ctx )
176
- assert .NilError (t , err )
177
- assert .Equal (t , initialBlockNumber , syncedData .BlockNumber , "block number should remain unchanged" )
178
- }
179
-
180
- func TestAPISyncMonitor_RunsNormallyWhenNoEons (t * testing.T ) {
181
- ctx , cancel := context .WithCancel (context .Background ())
182
- defer cancel ()
183
-
184
- dbpool , closeDB := testsetup .NewTestDBPool (ctx , t , database .Definition )
185
- defer closeDB ()
186
- db := database .New (dbpool )
187
-
188
- // Only set up initial block data, no eon entries
189
- initialBlockNumber := int64 (100 )
190
- err := db .SetIdentityRegisteredEventSyncedUntil (ctx , database.SetIdentityRegisteredEventSyncedUntilParams {
191
- BlockHash : []byte {0x01 , 0x02 , 0x03 },
192
- BlockNumber : initialBlockNumber ,
193
- })
194
- assert .NilError (t , err )
195
-
196
- monitor := & shutterservice.SyncMonitor {
197
- DBPool : dbpool ,
198
- CheckInterval : 5 * time .Second ,
199
- }
200
-
201
- monitorCtx , cancelMonitor := context .WithCancel (ctx )
202
- defer cancelMonitor ()
203
-
204
- errCh := make (chan error , 1 )
205
- go func () {
206
- err := service .RunWithSighandler (monitorCtx , monitor )
207
- if err != nil {
208
- errCh <- err
209
- }
210
- }()
211
-
212
- // Let it run for a while without incrementing the block number
213
- time .Sleep (15 * time .Second )
214
- cancelMonitor ()
215
-
216
- select {
217
- case err := <- errCh :
218
- assert .ErrorContains (t , err , shutterservice .ErrBlockNotIncreasing .Error ())
219
- case <- time .After (1 * time .Second ):
220
- t .Fatalf ("expected monitor to throw error, but no error returned" )
221
- }
222
-
223
- // Verify the block number hasn't changed
224
- syncedData , err := db .GetIdentityRegisteredEventsSyncedUntil (ctx )
225
- assert .NilError (t , err )
226
- assert .Equal (t , initialBlockNumber , syncedData .BlockNumber , "block number should remain unchanged" )
227
- }
228
-
229
109
func TestAPISyncMonitor_ContinuesWhenNoRows (t * testing.T ) {
230
110
ctx , cancel := context .WithCancel (context .Background ())
231
111
defer cancel ()
232
112
233
113
dbpool , closeDB := testsetup .NewTestDBPool (ctx , t , database .Definition )
234
114
defer closeDB ()
235
115
236
- // Set up eon and DKG result, but no block data
237
- keyperdb := keyperDB .New (dbpool )
238
-
239
- err := keyperdb .InsertEon (ctx , keyperDB.InsertEonParams {
240
- Eon : 1 ,
241
- })
242
- assert .NilError (t , err )
243
-
244
- err = keyperdb .InsertDKGResult (ctx , keyperDB.InsertDKGResultParams {
245
- Eon : 1 ,
246
- Success : true ,
247
- })
248
- assert .NilError (t , err )
249
-
250
116
monitor := & shutterservice.SyncMonitor {
251
117
DBPool : dbpool ,
252
118
CheckInterval : 5 * time .Second ,
@@ -272,54 +138,3 @@ func TestAPISyncMonitor_ContinuesWhenNoRows(t *testing.T) {
272
138
case <- time .After (1 * time .Second ):
273
139
}
274
140
}
275
-
276
- func TestAPISyncMonitor_RunsNormallyWithCompletedDKG (t * testing.T ) {
277
- ctx , cancel := context .WithCancel (context .Background ())
278
- defer cancel ()
279
-
280
- dbpool , closeDB := testsetup .NewTestDBPool (ctx , t , database .Definition )
281
- defer closeDB ()
282
- db := database .New (dbpool )
283
-
284
- initialBlockNumber := int64 (100 )
285
- setupTestData (ctx , t , dbpool , initialBlockNumber )
286
-
287
- // Set up initial block data
288
- err := db .SetIdentityRegisteredEventSyncedUntil (ctx , database.SetIdentityRegisteredEventSyncedUntilParams {
289
- BlockHash : []byte {0x01 , 0x02 , 0x03 },
290
- BlockNumber : initialBlockNumber ,
291
- })
292
- assert .NilError (t , err )
293
-
294
- monitor := & shutterservice.SyncMonitor {
295
- DBPool : dbpool ,
296
- CheckInterval : 5 * time .Second ,
297
- }
298
-
299
- monitorCtx , cancelMonitor := context .WithCancel (ctx )
300
- defer cancelMonitor ()
301
-
302
- errCh := make (chan error , 1 )
303
- go func () {
304
- err := service .RunWithSighandler (monitorCtx , monitor )
305
- if err != nil {
306
- errCh <- err
307
- }
308
- }()
309
-
310
- // Let it run for a while without incrementing the block number
311
- time .Sleep (15 * time .Second )
312
- cancelMonitor ()
313
-
314
- select {
315
- case err := <- errCh :
316
- assert .ErrorContains (t , err , shutterservice .ErrBlockNotIncreasing .Error ())
317
- case <- time .After (1 * time .Second ):
318
- t .Fatalf ("expected monitor to throw error, but no error returned" )
319
- }
320
-
321
- // Verify the block number hasn't changed
322
- syncedData , err := db .GetIdentityRegisteredEventsSyncedUntil (ctx )
323
- assert .NilError (t , err )
324
- assert .Equal (t , initialBlockNumber , syncedData .BlockNumber , "block number should remain unchanged" )
325
- }
0 commit comments