Skip to content

Commit e964fde

Browse files
update sync monitor tests
1 parent a9f26d8 commit e964fde

File tree

1 file changed

+1
-186
lines changed

1 file changed

+1
-186
lines changed

rolling-shutter/keyperimpl/shutterservice/syncmonitor_test.go

Lines changed: 1 addition & 186 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"github.com/jackc/pgx/v4/pgxpool"
99
"gotest.tools/assert"
1010

11-
keyperDB "github.com/shutter-network/rolling-shutter/rolling-shutter/keyper/database"
1211
"github.com/shutter-network/rolling-shutter/rolling-shutter/keyperimpl/shutterservice"
1312
"github.com/shutter-network/rolling-shutter/rolling-shutter/keyperimpl/shutterservice/database"
1413
"github.com/shutter-network/rolling-shutter/rolling-shutter/medley/service"
@@ -18,23 +17,9 @@ import (
1817
func setupTestData(ctx context.Context, t *testing.T, dbpool *pgxpool.Pool, blockNumber int64) {
1918
t.Helper()
2019
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)
3520

3621
// Set up initial block
37-
err = db.SetIdentityRegisteredEventSyncedUntil(ctx, database.SetIdentityRegisteredEventSyncedUntilParams{
22+
err := db.SetIdentityRegisteredEventSyncedUntil(ctx, database.SetIdentityRegisteredEventSyncedUntilParams{
3823
BlockHash: []byte{0x01, 0x02, 0x03},
3924
BlockNumber: blockNumber,
4025
})
@@ -121,132 +106,13 @@ func TestAPISyncMonitor_HandlesBlockNumberIncreasing(t *testing.T) {
121106
assert.Equal(t, initialBlockNumber+5, syncedData.BlockNumber, "block number should have been incremented correctly")
122107
}
123108

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-
229109
func TestAPISyncMonitor_ContinuesWhenNoRows(t *testing.T) {
230110
ctx, cancel := context.WithCancel(context.Background())
231111
defer cancel()
232112

233113
dbpool, closeDB := testsetup.NewTestDBPool(ctx, t, database.Definition)
234114
defer closeDB()
235115

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-
250116
monitor := &shutterservice.SyncMonitor{
251117
DBPool: dbpool,
252118
CheckInterval: 5 * time.Second,
@@ -272,54 +138,3 @@ func TestAPISyncMonitor_ContinuesWhenNoRows(t *testing.T) {
272138
case <-time.After(1 * time.Second):
273139
}
274140
}
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

Comments
 (0)