ipld-eth-server/pkg/repositories/postgres/watched_events_test.go

70 lines
1.6 KiB
Go
Raw Normal View History

package postgres_test
2018-02-02 19:58:59 +00:00
import (
"log"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/vulcanize/vulcanizedb/pkg/config"
"github.com/vulcanize/vulcanizedb/pkg/core"
"github.com/vulcanize/vulcanizedb/pkg/filters"
"github.com/vulcanize/vulcanizedb/pkg/repositories/postgres"
2018-02-02 19:58:59 +00:00
)
var _ = Describe("Watched Events Repository", func() {
var repository *postgres.DB
2018-02-02 19:58:59 +00:00
BeforeEach(func() {
2018-02-02 19:58:59 +00:00
cfg, err := config.NewConfig("private")
if err != nil {
log.Fatal(err)
}
repository, err = postgres.NewDB(cfg.Database, core.Node{})
2018-02-02 19:58:59 +00:00
if err != nil {
log.Fatal(err)
}
postgres.ClearData(repository)
2018-02-02 19:58:59 +00:00
})
It("retrieves watched logs that match the event filter", func() {
filter := filters.LogFilter{
Name: "Filter1",
FromBlock: 0,
ToBlock: 10,
Address: "0x123",
Topics: core.Topics{0: "event1=10", 2: "event3=hello"},
}
logs := []core.Log{
{
BlockNumber: 0,
TxHash: "0x1",
Address: "0x123",
Topics: core.Topics{0: "event1=10", 2: "event3=hello"},
Index: 0,
Data: "",
},
}
expectedWatchedEventLog := []*postgres.WatchedEventLog{
2018-02-02 19:58:59 +00:00
{
Name: "Filter1",
BlockNumber: 0,
TxHash: "0x1",
Address: "0x123",
Topic0: "event1=10",
Topic2: "event3=hello",
Index: 0,
Data: "",
},
}
err := repository.AddFilter(filter)
Expect(err).ToNot(HaveOccurred())
err = repository.CreateLogs(logs)
Expect(err).ToNot(HaveOccurred())
matchingLogs, err := repository.AllWatchedEventLogs()
Expect(err).ToNot(HaveOccurred())
Expect(matchingLogs).To(Equal(expectedWatchedEventLog))
})
})