Improve Testing for Insert, add a query function

This commit is contained in:
Abdul Rabbani 2022-03-22 15:49:30 -04:00
parent e3df60c506
commit 07cc0b3b34
5 changed files with 34 additions and 8 deletions

View File

@ -534,3 +534,7 @@ func (sdi *StateDiffIndexer) SetWatchedAddresses(args []sdtypes.WatchAddressArg,
func (sdi *StateDiffIndexer) ClearWatchedAddresses() error {
return nil
}
func (sdi *StateDiffIndexer) QueryDb(queryString string) (string, error) {
return "", nil
}

View File

@ -685,3 +685,16 @@ func (sdi *StateDiffIndexer) ClearWatchedAddresses() error {
return nil
}
// This is a simple wrapper function which will run QueryRow on the DB
func (sdi *StateDiffIndexer) QueryDb(queryString string) (string, error) {
var name string
err := sdi.dbWriter.db.QueryRow(context.Background(), queryString).Scan(&name)
// err := sdi.dbWriter.db.QueryRow(context.Background(), "SELECT ename FROM emp ORDER BY sal DESC LIMIT 1;").Scan(&name)
if err != nil {
return "", err
}
fmt.Println(name)
return name, nil
}

View File

@ -117,22 +117,28 @@ func tearDown(t *testing.T) {
}
func TestKnownGapsUpsert(t *testing.T) {
var blockNumber int64 = 111
startBlock := big.NewInt(blockNumber)
endBlock := big.NewInt(blockNumber + 10)
var startBlockNumber int64 = 111
var endBlockNumber int64 = 121
ind, err := setupDb(t)
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)
testKnownGapsUpsert(t, startBlockNumber, endBlockNumber, ind)
//str, err := ind.QueryDb("SELECT MAX(block_number) FROM eth.header_cids") // Figure out the string.
queryString := fmt.Sprintf("SELECT starting_block_number from eth.known_gaps WHERE starting_block_number = %d AND ending_block_number = %d", startBlockNumber, endBlockNumber)
_, queryErr := ind.QueryDb(queryString) // Figure out the string.
require.NoError(t, queryErr)
}
func testKnownGapsUpsert(t *testing.T, startBlockNumber int64, endBlockNumber int64, ind interfaces.StateDiffIndexer) {
startBlock := big.NewInt(startBlockNumber)
endBlock := big.NewInt(endBlockNumber)
processGapError := ind.PushKnownGaps(startBlock, endBlock, false, 1)
if processGapError != nil {
t.Fatal(processGapError)
}
// Read data from the database!
// And compare
require.NoError(t, processGapError)
}

View File

@ -108,7 +108,8 @@ func (db *DB) InsertKnownGapsStm() string {
WHERE eth_meta.known_gaps.ending_block_number <= $2`
}
// InsertKnownGapsStm satisfies the sql.Statements interface
func (db *DB) InsertKnownGapsStm() string {
return `INSERT INTO eth.known_gaps (starting_block_number, ending_block_number, checked_out, processing_key) VALUES ($1, $2, $3, $4)`
return `INSERT INTO eth.known_gaps (starting_block_number, ending_block_number, checked_out, processing_key) VALUES ($1, $2, $3, $4) ON CONFLICT (starting_block_number) DO NOTHING`
//return `INSERT INTO eth.known_gaps (starting_block_number, ending_block_number, checked_out, processing_key) VALUES (1, 2, true, 1)`
}

View File

@ -187,6 +187,8 @@ func (w *Writer) upsertStorageCID(tx Tx, storageCID models.StorageNodeModel) err
return nil
}
// Upserts known gaps to the DB.
// INSERT INTO eth.known_gaps (starting_block_number, ending_block_number, checked_out, processing_key) VALUES ($1, $2, $3, $4)
func (w *Writer) upsertKnownGaps(knownGaps models.KnownGapsModel) error {
_, err := w.db.Exec(context.Background(), w.db.InsertKnownGapsStm(),
knownGaps.StartingBlockNumber, knownGaps.EndingBlockNumber, knownGaps.CheckedOut, knownGaps.ProcessingKey)