Skip to content
This repository was archived by the owner on Jan 24, 2025. It is now read-only.

Commit 71dae40

Browse files
committed
Add functionality to test suite to assert block state from retainer
1 parent 5a02d79 commit 71dae40

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

pkg/testsuite/blocks_retainer.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package testsuite
2+
3+
import (
4+
"github.com/iotaledger/hive.go/ierrors"
5+
"github.com/iotaledger/iota-core/pkg/protocol/engine/blocks"
6+
"github.com/iotaledger/iota-core/pkg/testsuite/mock"
7+
"github.com/iotaledger/iota.go/v4/api"
8+
)
9+
10+
func (t *TestSuite) AssertRetainerBlocksState(expectedBlocks []*blocks.Block, expectedState api.BlockState, nodes ...*mock.Node) {
11+
mustNodes(nodes)
12+
13+
for _, node := range nodes {
14+
for _, block := range expectedBlocks {
15+
t.Eventually(func() error {
16+
blockFromRetainer, err := node.Protocol.Engines.Main.Get().Retainer.BlockMetadata(block.ID())
17+
if err != nil {
18+
return ierrors.Errorf("AssertRetainerBlocksState: %s: block %s: error when loading %s", node.Name, block.ID(), err.Error())
19+
}
20+
21+
if expectedState != blockFromRetainer.BlockState {
22+
return ierrors.Errorf("AssertRetainerBlocksState: %s: block %s: expected %s, got %s", node.Name, block.ID(), expectedState, blockFromRetainer.BlockState)
23+
}
24+
25+
return nil
26+
})
27+
28+
t.AssertBlock(block, node)
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)