Simplify checked header repository tests
- Use assertions instead of comments to document expectations - Also randomize the fake timestamp in test data
This commit is contained in:
parent
b9f3b9f946
commit
ce91b0d9e6
@ -159,11 +159,12 @@ var _ = Describe("Saving blocks", func() {
|
||||
})
|
||||
|
||||
It("saves one uncle associated to the block", func() {
|
||||
fakeUncle := fakes.GetFakeUncle(common.BytesToHash([]byte{1, 2, 3}).String(), "100000")
|
||||
block := core.Block{
|
||||
Hash: fakes.FakeHash.String(),
|
||||
Number: 123,
|
||||
Transactions: []core.TransactionModel{fakes.FakeTransaction},
|
||||
Uncles: []core.Uncle{fakes.GetFakeUncle(common.BytesToHash([]byte{1, 2, 3}).String(), "100000")},
|
||||
Uncles: []core.Uncle{fakeUncle},
|
||||
UnclesReward: "156250000000000000",
|
||||
}
|
||||
|
||||
@ -179,20 +180,20 @@ var _ = Describe("Saving blocks", func() {
|
||||
err := db.Get(&uncleModel, `SELECT hash, reward, miner, raw, block_timestamp FROM uncles
|
||||
WHERE block_id = $1 AND hash = $2`, id, common.BytesToHash([]byte{1, 2, 3}).Hex())
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(uncleModel.Hash).To(Equal(common.BytesToHash([]byte{1, 2, 3}).Hex()))
|
||||
Expect(uncleModel.Reward).To(Equal("100000"))
|
||||
Expect(uncleModel.Miner).To(Equal(fakes.FakeAddress.Hex()))
|
||||
Expect(uncleModel.Timestamp).To(Equal("111111111"))
|
||||
Expect(uncleModel.Hash).To(Equal(fakeUncle.Hash))
|
||||
Expect(uncleModel.Reward).To(Equal(fakeUncle.Reward))
|
||||
Expect(uncleModel.Miner).To(Equal(fakeUncle.Miner))
|
||||
Expect(uncleModel.Timestamp).To(Equal(fakeUncle.Timestamp))
|
||||
})
|
||||
|
||||
It("saves two uncles associated to the block", func() {
|
||||
fakeUncleOne := fakes.GetFakeUncle(common.BytesToHash([]byte{1, 2, 3}).String(), "100000")
|
||||
fakeUncleTwo := fakes.GetFakeUncle(common.BytesToHash([]byte{3, 2, 1}).String(), "90000")
|
||||
block := core.Block{
|
||||
Hash: fakes.FakeHash.String(),
|
||||
Number: 123,
|
||||
Transactions: []core.TransactionModel{fakes.FakeTransaction},
|
||||
Uncles: []core.Uncle{
|
||||
fakes.GetFakeUncle(common.BytesToHash([]byte{1, 2, 3}).String(), "100000"),
|
||||
fakes.GetFakeUncle(common.BytesToHash([]byte{3, 2, 1}).String(), "90000")},
|
||||
Uncles: []core.Uncle{fakeUncleOne, fakeUncleTwo},
|
||||
UnclesReward: "312500000000000000",
|
||||
}
|
||||
|
||||
@ -210,18 +211,18 @@ var _ = Describe("Saving blocks", func() {
|
||||
err := db.Get(&uncleModel, `SELECT hash, reward, miner, raw, block_timestamp FROM uncles
|
||||
WHERE block_id = $1 AND hash = $2`, id, common.BytesToHash([]byte{1, 2, 3}).Hex())
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(uncleModel.Hash).To(Equal(common.BytesToHash([]byte{1, 2, 3}).Hex()))
|
||||
Expect(uncleModel.Reward).To(Equal("100000"))
|
||||
Expect(uncleModel.Miner).To(Equal(fakes.FakeAddress.Hex()))
|
||||
Expect(uncleModel.Timestamp).To(Equal("111111111"))
|
||||
Expect(uncleModel.Hash).To(Equal(fakeUncleOne.Hash))
|
||||
Expect(uncleModel.Reward).To(Equal(fakeUncleOne.Reward))
|
||||
Expect(uncleModel.Miner).To(Equal(fakeUncleOne.Miner))
|
||||
Expect(uncleModel.Timestamp).To(Equal(fakeUncleOne.Timestamp))
|
||||
|
||||
err = db.Get(&uncleModel, `SELECT hash, reward, miner, raw, block_timestamp FROM uncles
|
||||
WHERE block_id = $1 AND hash = $2`, id, common.BytesToHash([]byte{3, 2, 1}).Hex())
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(uncleModel.Hash).To(Equal(common.BytesToHash([]byte{3, 2, 1}).Hex()))
|
||||
Expect(uncleModel.Reward).To(Equal("90000"))
|
||||
Expect(uncleModel.Miner).To(Equal(fakes.FakeAddress.Hex()))
|
||||
Expect(uncleModel.Timestamp).To(Equal("111111111"))
|
||||
Expect(uncleModel.Hash).To(Equal(fakeUncleTwo.Hash))
|
||||
Expect(uncleModel.Reward).To(Equal(fakeUncleTwo.Reward))
|
||||
Expect(uncleModel.Miner).To(Equal(fakeUncleTwo.Miner))
|
||||
Expect(uncleModel.Timestamp).To(Equal(fakeUncleTwo.Timestamp))
|
||||
})
|
||||
|
||||
It(`replaces blocks and transactions associated to the block
|
||||
|
@ -154,13 +154,11 @@ var _ = Describe("Checked Headers repository", func() {
|
||||
Describe("when ending block is specified", func() {
|
||||
It("excludes headers that are out of range", func() {
|
||||
headers, err := repo.UncheckedHeaders(startingBlockNumber, endingBlockNumber, uncheckedCheckCount)
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
// doesn't include outOfRangeBlockNumber
|
||||
Expect(len(headers)).To(Equal(3))
|
||||
Expect(headers[0].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(endingBlockNumber), Equal(middleBlockNumber)))
|
||||
Expect(headers[1].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(endingBlockNumber), Equal(middleBlockNumber)))
|
||||
Expect(headers[2].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(endingBlockNumber), Equal(middleBlockNumber)))
|
||||
|
||||
headerBlockNumbers := getBlockNumbers(headers)
|
||||
Expect(headerBlockNumbers).To(ConsistOf(startingBlockNumber, middleBlockNumber, endingBlockNumber))
|
||||
Expect(headerBlockNumbers).NotTo(ContainElement(outOfRangeBlockNumber))
|
||||
})
|
||||
|
||||
It("excludes headers that have been checked more than the check count", func() {
|
||||
@ -168,12 +166,11 @@ var _ = Describe("Checked Headers repository", func() {
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
|
||||
headers, err := repo.UncheckedHeaders(startingBlockNumber, endingBlockNumber, uncheckedCheckCount)
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
// doesn't include middleBlockNumber
|
||||
Expect(len(headers)).To(Equal(2))
|
||||
Expect(headers[0].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(endingBlockNumber)))
|
||||
Expect(headers[1].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(endingBlockNumber)))
|
||||
|
||||
headerBlockNumbers := getBlockNumbers(headers)
|
||||
Expect(headerBlockNumbers).To(ConsistOf(startingBlockNumber, endingBlockNumber))
|
||||
Expect(headerBlockNumbers).NotTo(ContainElement(middleBlockNumber))
|
||||
})
|
||||
|
||||
It("does not exclude headers that have been checked less than the check count", func() {
|
||||
@ -181,12 +178,10 @@ var _ = Describe("Checked Headers repository", func() {
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
|
||||
headers, err := repo.UncheckedHeaders(startingBlockNumber, endingBlockNumber, recheckCheckCount)
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(len(headers)).To(Equal(3))
|
||||
Expect(headers[0].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber)))
|
||||
Expect(headers[1].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber)))
|
||||
Expect(headers[2].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber)))
|
||||
|
||||
headerBlockNumbers := getBlockNumbers(headers)
|
||||
Expect(headerBlockNumbers).To(ConsistOf(startingBlockNumber, middleBlockNumber, endingBlockNumber))
|
||||
})
|
||||
|
||||
It("only returns headers associated with the current node", func() {
|
||||
@ -198,20 +193,15 @@ var _ = Describe("Checked Headers repository", func() {
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
}
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
nodeOneMissingHeaders, err := repo.UncheckedHeaders(startingBlockNumber, endingBlockNumber, uncheckedCheckCount)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(len(nodeOneMissingHeaders)).To(Equal(3))
|
||||
Expect(nodeOneMissingHeaders[0].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber)))
|
||||
Expect(nodeOneMissingHeaders[1].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber)))
|
||||
Expect(nodeOneMissingHeaders[2].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber)))
|
||||
nodeOneHeaderBlockNumbers := getBlockNumbers(nodeOneMissingHeaders)
|
||||
Expect(nodeOneHeaderBlockNumbers).To(ConsistOf(startingBlockNumber, middleBlockNumber, endingBlockNumber))
|
||||
|
||||
nodeTwoMissingHeaders, err := repoTwo.UncheckedHeaders(startingBlockNumber, endingBlockNumber+10, uncheckedCheckCount)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(len(nodeTwoMissingHeaders)).To(Equal(3))
|
||||
Expect(nodeTwoMissingHeaders[0].BlockNumber).To(Or(Equal(startingBlockNumber+10), Equal(middleBlockNumber+10), Equal(endingBlockNumber+10)))
|
||||
Expect(nodeTwoMissingHeaders[1].BlockNumber).To(Or(Equal(startingBlockNumber+10), Equal(middleBlockNumber+10), Equal(endingBlockNumber+10)))
|
||||
Expect(nodeTwoMissingHeaders[2].BlockNumber).To(Or(Equal(startingBlockNumber+10), Equal(middleBlockNumber+10), Equal(endingBlockNumber+10)))
|
||||
nodeTwoHeaderBlockNumbers := getBlockNumbers(nodeTwoMissingHeaders)
|
||||
Expect(nodeTwoHeaderBlockNumbers).To(ConsistOf(startingBlockNumber+10, middleBlockNumber+10, endingBlockNumber+10))
|
||||
})
|
||||
})
|
||||
|
||||
@ -220,13 +210,10 @@ var _ = Describe("Checked Headers repository", func() {
|
||||
|
||||
It("includes all non-checked headers when ending block is -1 ", func() {
|
||||
headers, err := repo.UncheckedHeaders(startingBlockNumber, endingBlock, uncheckedCheckCount)
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(len(headers)).To(Equal(4))
|
||||
Expect(headers[0].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(endingBlockNumber), Equal(middleBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
Expect(headers[1].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(endingBlockNumber), Equal(middleBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
Expect(headers[2].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(endingBlockNumber), Equal(middleBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
Expect(headers[3].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(endingBlockNumber), Equal(middleBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
|
||||
headerBlockNumbers := getBlockNumbers(headers)
|
||||
Expect(headerBlockNumbers).To(ConsistOf(startingBlockNumber, middleBlockNumber, endingBlockNumber, outOfRangeBlockNumber))
|
||||
})
|
||||
|
||||
It("excludes headers that have been checked more than the check count", func() {
|
||||
@ -234,13 +221,11 @@ var _ = Describe("Checked Headers repository", func() {
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
|
||||
headers, err := repo.UncheckedHeaders(startingBlockNumber, endingBlock, uncheckedCheckCount)
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
// doesn't include middleBlockNumber
|
||||
Expect(len(headers)).To(Equal(3))
|
||||
Expect(headers[0].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(endingBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
Expect(headers[1].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(endingBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
Expect(headers[2].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(endingBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
|
||||
headerBlockNumbers := getBlockNumbers(headers)
|
||||
Expect(headerBlockNumbers).To(ConsistOf(startingBlockNumber, endingBlockNumber, outOfRangeBlockNumber))
|
||||
Expect(headerBlockNumbers).NotTo(ContainElement(middleBlockNumber))
|
||||
})
|
||||
|
||||
It("does not exclude headers that have been checked less than the check count", func() {
|
||||
@ -248,13 +233,10 @@ var _ = Describe("Checked Headers repository", func() {
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
|
||||
headers, err := repo.UncheckedHeaders(startingBlockNumber, endingBlock, recheckCheckCount)
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(len(headers)).To(Equal(4))
|
||||
Expect(headers[0].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
Expect(headers[1].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
Expect(headers[2].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
Expect(headers[3].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
|
||||
headerBlockNumbers := getBlockNumbers(headers)
|
||||
Expect(headerBlockNumbers).To(ConsistOf(startingBlockNumber, middleBlockNumber, endingBlockNumber, outOfRangeBlockNumber))
|
||||
})
|
||||
|
||||
It("only returns headers associated with the current node", func() {
|
||||
@ -266,23 +248,24 @@ var _ = Describe("Checked Headers repository", func() {
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
}
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
nodeOneMissingHeaders, err := repo.UncheckedHeaders(startingBlockNumber, endingBlock, uncheckedCheckCount)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(len(nodeOneMissingHeaders)).To(Equal(4))
|
||||
Expect(nodeOneMissingHeaders[0].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
Expect(nodeOneMissingHeaders[1].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
Expect(nodeOneMissingHeaders[2].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
Expect(nodeOneMissingHeaders[3].BlockNumber).To(Or(Equal(startingBlockNumber), Equal(middleBlockNumber), Equal(endingBlockNumber), Equal(outOfRangeBlockNumber)))
|
||||
nodeOneBlockNumbers := getBlockNumbers(nodeOneMissingHeaders)
|
||||
Expect(nodeOneBlockNumbers).To(ConsistOf(startingBlockNumber, middleBlockNumber, endingBlockNumber, outOfRangeBlockNumber))
|
||||
|
||||
nodeTwoMissingHeaders, err := repoTwo.UncheckedHeaders(startingBlockNumber, endingBlock, uncheckedCheckCount)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(len(nodeTwoMissingHeaders)).To(Equal(4))
|
||||
Expect(nodeTwoMissingHeaders[0].BlockNumber).To(Or(Equal(startingBlockNumber+10), Equal(middleBlockNumber+10), Equal(endingBlockNumber+10), Equal(outOfRangeBlockNumber+10)))
|
||||
Expect(nodeTwoMissingHeaders[1].BlockNumber).To(Or(Equal(startingBlockNumber+10), Equal(middleBlockNumber+10), Equal(endingBlockNumber+10), Equal(outOfRangeBlockNumber+10)))
|
||||
Expect(nodeTwoMissingHeaders[2].BlockNumber).To(Or(Equal(startingBlockNumber+10), Equal(middleBlockNumber+10), Equal(endingBlockNumber+10), Equal(outOfRangeBlockNumber+10)))
|
||||
Expect(nodeTwoMissingHeaders[3].BlockNumber).To(Or(Equal(startingBlockNumber+10), Equal(middleBlockNumber+10), Equal(endingBlockNumber+10), Equal(outOfRangeBlockNumber+10)))
|
||||
nodeTwoBlockNumbers := getBlockNumbers(nodeTwoMissingHeaders)
|
||||
Expect(nodeTwoBlockNumbers).To(ConsistOf(startingBlockNumber+10, middleBlockNumber+10, endingBlockNumber+10, outOfRangeBlockNumber+10))
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
func getBlockNumbers(headers []core.Header) []int64 {
|
||||
var headerBlockNumbers []int64
|
||||
for _, header := range headers {
|
||||
headerBlockNumbers = append(headerBlockNumbers, header.BlockNumber)
|
||||
}
|
||||
return headerBlockNumbers
|
||||
}
|
||||
|
@ -161,7 +161,6 @@ var _ = Describe("Full sync log Repository", func() {
|
||||
})
|
||||
|
||||
It("saves the logs attached to a receipt", func() {
|
||||
|
||||
logs := []core.FullSyncLog{{
|
||||
Address: "0x8a4774fe82c63484afef97ca8d89a6ea5e21f973",
|
||||
BlockNumber: 4745407,
|
||||
@ -215,7 +214,7 @@ var _ = Describe("Full sync log Repository", func() {
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
expected := logs[1:]
|
||||
Expect(retrievedLogs).To(Equal(expected))
|
||||
Expect(retrievedLogs).To(ConsistOf(expected))
|
||||
})
|
||||
})
|
||||
})
|
||||
|
@ -32,7 +32,7 @@ var (
|
||||
FakeAddress = common.HexToAddress("0x" + RandomString(40))
|
||||
FakeError = errors.New("failed")
|
||||
FakeHash = common.BytesToHash([]byte{1, 2, 3, 4, 5})
|
||||
fakeTimestamp = int64(111111111)
|
||||
fakeTimestamp = rand.Int63()
|
||||
)
|
||||
|
||||
var rawFakeHeader, _ = json.Marshal(types.Header{})
|
||||
|
Loading…
Reference in New Issue
Block a user