Skip to content

Commit 48af082

Browse files
author
ylembachar
committed
refactor tests to use available functions
1 parent 9dab17f commit 48af082

File tree

2 files changed

+35
-86
lines changed

2 files changed

+35
-86
lines changed

rolling-shutter/keyperimpl/gnosis/syncmonitor.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func (s *SyncMonitor) runMonitor(ctx context.Context) error {
5959
}
6060
case <-ctx.Done():
6161
log.Info().Msg("stopping syncMonitor due to context cancellation")
62-
return nil
62+
return ctx.Err()
6363
}
6464
}
65-
}
65+
}

rolling-shutter/keyperimpl/gnosis/syncmonitor_test.go

Lines changed: 33 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@ package gnosis_test
22

33
import (
44
"context"
5+
"github.com/shutter-network/rolling-shutter/rolling-shutter/keyperimpl/gnosis/database"
56
"testing"
67
"time"
78

8-
"github.com/rs/zerolog/log"
99
"gotest.tools/assert"
1010

11-
"github.com/shutter-network/rolling-shutter/rolling-shutter/keyper/database"
1211
"github.com/shutter-network/rolling-shutter/rolling-shutter/keyperimpl/gnosis"
1312
"github.com/shutter-network/rolling-shutter/rolling-shutter/medley/service"
1413
"github.com/shutter-network/rolling-shutter/rolling-shutter/medley/testsetup"
@@ -18,28 +17,19 @@ func TestSyncMonitor_ThrowsErrorWhenBlockNotIncreasing(t *testing.T) {
1817
ctx, cancel := context.WithCancel(context.Background())
1918
defer cancel()
2019

21-
dbpool, closeDB := testsetup.NewTestDBPool(ctx, t, database.Definition)
22-
defer closeDB()
23-
24-
_, err := dbpool.Exec(ctx, `
25-
CREATE TABLE IF NOT EXISTS transaction_submitted_events_synced_until(
26-
enforce_one_row bool PRIMARY KEY DEFAULT true,
27-
block_hash bytea NOT NULL,
28-
block_number bigint NOT NULL CHECK (block_number >= 0),
29-
slot bigint NOT NULL CHECK (slot >= 0)
30-
);
31-
`)
32-
if err != nil {
33-
t.Fatalf("failed to create table: %v", err)
34-
}
20+
dbpool, dbclose := testsetup.NewTestDBPool(ctx, t, database.Definition)
21+
defer dbclose()
22+
db := database.New(dbpool)
3523

3624
initialBlockNumber := int64(100)
37-
_, err = dbpool.Exec(ctx, `
38-
INSERT INTO transaction_submitted_events_synced_until (block_hash, block_number, slot)
39-
VALUES ($1, $2, $3);
40-
`, []byte{0x01, 0x02, 0x03}, initialBlockNumber, 1)
25+
26+
err := db.SetTransactionSubmittedEventsSyncedUntil(ctx, database.SetTransactionSubmittedEventsSyncedUntilParams{
27+
BlockHash: []byte{0x01, 0x02, 0x03},
28+
BlockNumber: initialBlockNumber,
29+
Slot: 1,
30+
})
4131
if err != nil {
42-
t.Fatalf("failed to insert initial data: %v", err)
32+
t.Fatalf("failed to set initial synced data: %v", err)
4333
}
4434

4535
monitor := &gnosis.SyncMonitor{
@@ -72,41 +62,21 @@ func TestSyncMonitor_HandlesBlockNumberIncreasing(t *testing.T) {
7262

7363
dbpool, closeDB := testsetup.NewTestDBPool(ctx, t, database.Definition)
7464
defer closeDB()
75-
76-
_, err := dbpool.Exec(ctx, `
77-
CREATE TABLE IF NOT EXISTS transaction_submitted_events_synced_until(
78-
enforce_one_row bool PRIMARY KEY DEFAULT true,
79-
block_hash bytea NOT NULL,
80-
block_number bigint NOT NULL CHECK (block_number >= 0),
81-
slot bigint NOT NULL CHECK (slot >= 0)
82-
);
83-
`)
84-
if err != nil {
85-
t.Fatalf("failed to create table: %v", err)
86-
}
65+
db := database.New(dbpool)
8766

8867
initialBlockNumber := int64(100)
89-
_, err = dbpool.Exec(ctx, `
90-
INSERT INTO transaction_submitted_events_synced_until (block_hash, block_number, slot)
91-
VALUES ($1, $2, $3);
92-
`, []byte{0x01, 0x02, 0x03}, initialBlockNumber, 1)
93-
if err != nil {
94-
t.Fatalf("failed to insert initial data: %v", err)
95-
}
96-
97-
var count int
98-
err = dbpool.QueryRow(ctx, `
99-
SELECT count(*) FROM transaction_submitted_events_synced_until
100-
WHERE block_number = $1;
101-
`, initialBlockNumber).Scan(&count)
68+
err := db.SetTransactionSubmittedEventsSyncedUntil(ctx, database.SetTransactionSubmittedEventsSyncedUntilParams{
69+
BlockHash: []byte{0x01, 0x02, 0x03},
70+
BlockNumber: initialBlockNumber,
71+
Slot: 1,
72+
})
10273
if err != nil {
103-
t.Fatalf("failed to verify initial data: %v", err)
74+
t.Fatalf("failed to set initial synced data: %v", err)
10475
}
10576

106-
assert.Equal(t, 1, count, "initial data should be inserted")
107-
10877
monitor := &gnosis.SyncMonitor{
109-
DBPool: dbpool,
78+
DBPool: dbpool,
79+
CheckInterval: 30 * time.Second,
11080
}
11181

11282
_, deferFn := service.RunBackground(ctx, monitor)
@@ -115,18 +85,12 @@ func TestSyncMonitor_HandlesBlockNumberIncreasing(t *testing.T) {
11585
doneCh := make(chan struct{})
11686
go func() {
11787
for i := 0; i < 5; i++ {
118-
// Simulate block number increment by updating the database
11988
newBlockNumber := initialBlockNumber + int64(i+1)
120-
log.Info().
121-
Int64("previous-block-number", initialBlockNumber+int64(i)).
122-
Int64("new-block-number", newBlockNumber).
123-
Msg("comparing consecutive blocks")
124-
125-
_, err := dbpool.Exec(ctx, `
126-
UPDATE transaction_submitted_events_synced_until
127-
SET block_number = $1
128-
WHERE block_number = $2;
129-
`, newBlockNumber, initialBlockNumber+int64(i))
89+
err := db.SetTransactionSubmittedEventsSyncedUntil(ctx, database.SetTransactionSubmittedEventsSyncedUntilParams{
90+
BlockHash: []byte{0x01, 0x02, 0x03},
91+
BlockNumber: newBlockNumber,
92+
Slot: 1,
93+
})
13094
if err != nil {
13195
t.Errorf("failed to update block number: %v", err)
13296
return
@@ -139,43 +103,28 @@ func TestSyncMonitor_HandlesBlockNumberIncreasing(t *testing.T) {
139103
}()
140104

141105
<-doneCh
142-
var finalBlockNumber int64
143-
err = dbpool.QueryRow(ctx, `SELECT block_number FROM transaction_submitted_events_synced_until LIMIT 1;`).Scan(&finalBlockNumber)
106+
syncedData, err := db.GetTransactionSubmittedEventsSyncedUntil(ctx)
144107
if err != nil {
145108
t.Fatalf("failed to retrieve final block number: %v", err)
146109
}
147110

148-
assert.Equal(t, initialBlockNumber+5, finalBlockNumber, "block number should have been incremented correctly")
111+
assert.Equal(t, initialBlockNumber+5, syncedData.BlockNumber, "block number should have been incremented correctly")
149112
}
150113

151114
func TestSyncMonitor_ContinuesWhenNoRows(t *testing.T) {
152-
parentCtx, cancelParent := context.WithCancel(context.Background())
153-
defer cancelParent()
154-
155-
dbpool, closeDB := testsetup.NewTestDBPool(parentCtx, t, database.Definition)
156-
defer func() {
157-
closeDB()
158-
cancelParent()
159-
}()
115+
ctx, cancel := context.WithCancel(context.Background())
116+
defer cancel()
160117

161-
_, err := dbpool.Exec(parentCtx, `
162-
CREATE TABLE IF NOT EXISTS transaction_submitted_events_synced_until(
163-
enforce_one_row bool PRIMARY KEY DEFAULT true,
164-
block_hash bytea NOT NULL,
165-
block_number bigint NOT NULL CHECK (block_number >= 0),
166-
slot bigint NOT NULL CHECK (slot >= 0)
167-
);
168-
`)
169-
if err != nil {
170-
t.Fatalf("failed to create table: %v", err)
171-
}
118+
dbpool, closeDB := testsetup.NewTestDBPool(ctx, t, database.Definition)
119+
defer closeDB()
120+
_ = database.New(dbpool)
172121

173122
monitor := &gnosis.SyncMonitor{
174123
DBPool: dbpool,
175124
CheckInterval: 5 * time.Second,
176125
}
177126

178-
monitorCtx, cancelMonitor := context.WithCancel(parentCtx)
127+
monitorCtx, cancelMonitor := context.WithCancel(ctx)
179128
defer cancelMonitor()
180129

181130
errCh := make(chan error, 1)

0 commit comments

Comments
 (0)