Skip to content

Commit

Permalink
Refactor tests for watched addressess methods
Browse files Browse the repository at this point in the history
  • Loading branch information
prathamesh0 committed Aug 16, 2022
1 parent 3e896c6 commit d6563c0
Show file tree
Hide file tree
Showing 18 changed files with 1,137 additions and 1,503 deletions.
9 changes: 5 additions & 4 deletions statediff/indexer/database/file/csv_indexer_legacy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,20 +86,21 @@ func dumpCSVFileData(t *testing.T) {
}
}

func dumpWatchedAddressesCSVFileData(t *testing.T) {
func resetAndDumpWatchedAddressesCSVFileData(t *testing.T) {
test_helpers.TearDownDB(t, db)

outputFilePath := filepath.Join(dbDirectory, file.CSVTestConfig.WatchedAddressesFilePath)
stmt := fmt.Sprintf(pgCopyStatement, types.TableWatchedAddresses.Name, outputFilePath)

_, err = sqlxdb.Exec(stmt)
_, err = db.Exec(context.Background(), stmt)
require.NoError(t, err)
}

func tearDownCSV(t *testing.T) {
test_helpers.TearDownDB(t, db)
require.NoError(t, db.Close())

err := os.RemoveAll(file.CSVTestConfig.OutputDir)
require.NoError(t, err)
require.NoError(t, os.RemoveAll(file.CSVTestConfig.OutputDir))

if err := os.Remove(file.CSVTestConfig.WatchedAddressesFilePath); !errors.Is(err, os.ErrNotExist) {
require.NoError(t, err)
Expand Down
159 changes: 91 additions & 68 deletions statediff/indexer/database/file/csv_indexer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package file_test
import (
"context"
"errors"
"math/big"
"os"
"testing"

Expand Down Expand Up @@ -162,71 +163,93 @@ func TestCSVFileIndexerNonCanonical(t *testing.T) {
})
}

// func TestCSVFileWatchAddressMethods(t *testing.T) {
// setupCSVIndexer(t)
// defer tearDownCSV(t)

// t.Run("Load watched addresses (empty table)", func(t *testing.T) {
// testLoadEmptyWatchedAddresses(t)
// })

// t.Run("Insert watched addresses", func(t *testing.T) {
// testInsertWatchedAddresses(t, func(t *testing.T) {
// test_helpers.TearDownDB(t, db)
// dumpWatchedAddressesCSVFileData(t)
// })
// })

// t.Run("Insert watched addresses (some already watched)", func(t *testing.T) {
// testInsertAlreadyWatchedAddresses(t, func(t *testing.T) {
// test_helpers.TearDownDB(t, db)
// dumpWatchedAddressesCSVFileData(t)
// })
// })

// t.Run("Remove watched addresses", func(t *testing.T) {
// testRemoveWatchedAddresses(t, func(t *testing.T) {
// test_helpers.TearDownDB(t, db)
// dumpWatchedAddressesCSVFileData(t)
// })
// })

// t.Run("Remove watched addresses (some non-watched)", func(t *testing.T) {
// testRemoveNonWatchedAddresses(t, func(t *testing.T) {
// test_helpers.TearDownDB(t, db)
// dumpWatchedAddressesCSVFileData(t)
// })
// })

// t.Run("Set watched addresses", func(t *testing.T) {
// testSetWatchedAddresses(t, func(t *testing.T) {
// test_helpers.TearDownDB(t, db)
// dumpWatchedAddressesCSVFileData(t)
// })
// })

// t.Run("Set watched addresses (some already watched)", func(t *testing.T) {
// testSetAlreadyWatchedAddresses(t, func(t *testing.T) {
// test_helpers.TearDownDB(t, db)
// dumpWatchedAddressesCSVFileData(t)
// })
// })

// t.Run("Load watched addresses", func(t *testing.T) {
// testLoadWatchedAddresses(t)
// })

// t.Run("Clear watched addresses", func(t *testing.T) {
// testClearWatchedAddresses(t, func(t *testing.T) {
// test_helpers.TearDownDB(t, db)
// dumpWatchedAddressesCSVFileData(t)
// })
// })

// t.Run("Clear watched addresses (empty table)", func(t *testing.T) {
// testClearEmptyWatchedAddresses(t, func(t *testing.T) {
// test_helpers.TearDownDB(t, db)
// dumpWatchedAddressesCSVFileData(t)
// })
// })
// }
func TestCSVFileWatchAddressMethods(t *testing.T) {
setupCSVIndexer(t)
defer tearDownCSV(t)

t.Run("Load watched addresses (empty table)", func(t *testing.T) {
test.TestLoadEmptyWatchedAddresses(t, ind)
})

t.Run("Insert watched addresses", func(t *testing.T) {
args := mocks.GetInsertWatchedAddressesArgs()
err = ind.InsertWatchedAddresses(args, big.NewInt(int64(mocks.WatchedAt1)))
require.NoError(t, err)

resetAndDumpWatchedAddressesCSVFileData(t)

test.TestInsertWatchedAddresses(t, db)
})

t.Run("Insert watched addresses (some already watched)", func(t *testing.T) {
args := mocks.GetInsertAlreadyWatchedAddressesArgs()
err = ind.InsertWatchedAddresses(args, big.NewInt(int64(mocks.WatchedAt2)))
require.NoError(t, err)

resetAndDumpWatchedAddressesCSVFileData(t)

test.TestInsertAlreadyWatchedAddresses(t, db)
})

t.Run("Remove watched addresses", func(t *testing.T) {
args := mocks.GetRemoveWatchedAddressesArgs()
err = ind.RemoveWatchedAddresses(args)
require.NoError(t, err)

resetAndDumpWatchedAddressesCSVFileData(t)

test.TestRemoveWatchedAddresses(t, db)
})

t.Run("Remove watched addresses (some non-watched)", func(t *testing.T) {
args := mocks.GetRemoveNonWatchedAddressesArgs()
err = ind.RemoveWatchedAddresses(args)
require.NoError(t, err)

resetAndDumpWatchedAddressesCSVFileData(t)

test.TestRemoveNonWatchedAddresses(t, db)
})

t.Run("Set watched addresses", func(t *testing.T) {
args := mocks.GetSetWatchedAddressesArgs()
err = ind.SetWatchedAddresses(args, big.NewInt(int64(mocks.WatchedAt2)))
require.NoError(t, err)

resetAndDumpWatchedAddressesCSVFileData(t)

test.TestSetWatchedAddresses(t, db)
})

t.Run("Set watched addresses (some already watched)", func(t *testing.T) {
args := mocks.GetSetAlreadyWatchedAddressesArgs()
err = ind.SetWatchedAddresses(args, big.NewInt(int64(mocks.WatchedAt3)))
require.NoError(t, err)

resetAndDumpWatchedAddressesCSVFileData(t)

test.TestSetAlreadyWatchedAddresses(t, db)
})

t.Run("Load watched addresses", func(t *testing.T) {
test.TestLoadWatchedAddresses(t, ind)
})

t.Run("Clear watched addresses", func(t *testing.T) {
err = ind.ClearWatchedAddresses()
require.NoError(t, err)

resetAndDumpWatchedAddressesCSVFileData(t)

test.TestClearWatchedAddresses(t, db)
})

t.Run("Clear watched addresses (empty table)", func(t *testing.T) {
err = ind.ClearWatchedAddresses()
require.NoError(t, err)

resetAndDumpWatchedAddressesCSVFileData(t)

test.TestClearEmptyWatchedAddresses(t, db)
})
}
Loading

0 comments on commit d6563c0

Please sign in to comment.