MCPcopy Create free account
hub / github.com/Commit-Boost/commit-boost-client / test_get_header

Function test_get_header

tests/tests/pbs_get_header.rs:24–65  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

22
23#[tokio::test]
24async fn test_get_header() -> Result<()> {
25 setup_test_env();
26 let signer = random_secret();
27 let pubkey = signer.public_key();
28
29 let chain = Chain::Holesky;
30 let pbs_port = 3200;
31 let relay_port = pbs_port + 1;
32
33 // Run a mock relay
34 let mock_state = Arc::new(MockRelayState::new(chain, signer));
35 let mock_relay = generate_mock_relay(relay_port, pubkey)?;
36 tokio::spawn(start_mock_relay_service(mock_state.clone(), relay_port));
37
38 // Run the PBS service
39 let config = to_pbs_config(chain, get_pbs_static_config(pbs_port), vec![mock_relay.clone()]);
40 let state = PbsState::new(config);
41 tokio::spawn(PbsService::run::<(), DefaultBuilderApi>(state));
42
43 // leave some time to start servers
44 tokio::time::sleep(Duration::from_millis(100)).await;
45
46 let mock_validator = MockValidator::new(pbs_port)?;
47 info!("Sending get header");
48 let res = mock_validator.do_get_header(None).await?;
49 assert_eq!(res.status(), StatusCode::OK);
50
51 let res = serde_json::from_slice::<GetHeaderResponse>(&res.bytes().await?)?;
52
53 assert_eq!(mock_state.received_get_header(), 1);
54 assert_eq!(res.version, ForkName::Electra);
55 assert_eq!(res.data.message.header().block_hash().0[0], 1);
56 assert_eq!(res.data.message.header().parent_hash().0, B256::ZERO);
57 assert_eq!(*res.data.message.value(), U256::from(10));
58 assert_eq!(*res.data.message.pubkey(), BlsPublicKeyBytes::from(mock_state.signer.public_key()));
59 assert_eq!(res.data.message.header().timestamp(), timestamp_of_slot_start_sec(0, chain));
60 assert_eq!(
61 res.data.signature,
62 sign_builder_root(chain, &mock_state.signer, res.data.message.tree_hash_root())
63 );
64 Ok(())
65}
66
67#[tokio::test]
68async fn test_get_header_returns_204_if_relay_down() -> Result<()> {

Callers

nothing calls this directly

Calls 8

setup_test_envFunction · 0.85
random_secretFunction · 0.85
generate_mock_relayFunction · 0.85
start_mock_relay_serviceFunction · 0.85
to_pbs_configFunction · 0.85
get_pbs_static_configFunction · 0.85
public_keyMethod · 0.80
do_get_headerMethod · 0.80

Tested by

no test coverage detected