Skip to content

Commit

Permalink
minor bug fix
Browse files Browse the repository at this point in the history
  • Loading branch information
h3lio5 committed Dec 10, 2023
1 parent 5c2a4f8 commit 9a13e4d
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions test/unit/p2p_blocks_test.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
defmodule Unit.P2PBlocks do
use ExUnit.Case, async: true
use Patch

alias LambdaEthereumConsensus.Store.BlockStore
alias LambdaEthereumConsensus.P2P.BlockDownloader
alias LambdaEthereumConsensus.Libp2pPort
alias LambdaEthereumConsensus.P2P.IncomingRequests.Handler
alias SszTypes.BeaconBlocksByRootRequest

setup do
expose(Handler, :all)
end

test "one block retrieve" do
#
signed_block_input = Fixtures.Block.signed_beacon_block()
block_root = Ssz.hash_tree_root!(signed_block.message)

# store the block in the BlockStore
BlockStore.store_block(signed_block_input)

# ssz serialize and snappy compress the block root
with {:ok, ssz_serialized} <- Ssz.to_ssz(%BeaconBlocksByRootRequest{body: [block_root]}),
{:ok, snappy_compressed_message} <- Snappy.compress(ssz_serialized) do
# patch the Libp2pPort's send_request function to call the incoming_requests handler function we want to test
patch(Libp2pPort, :send_request, fn _peer_id, _protocol, _message ->
Handler.handle_req("beacon_blocks_by_root/2/ssz_snappy", 1, snappy_compressed_message)
end)

patch(Libp2pPort, :send_response, fn _request_id, message -> {:ok, message} end)

# call the block_downloader's request_blocks_by_root function
with {:ok, signed_beacon_blocks} <- BlockDownloader.request_blocks_by_root([block_root]) do
assert Enum.at(signed_beacon_blocks, 0) == signed_block_input
end
end
end
end

0 comments on commit 9a13e4d

Please sign in to comment.