mina_node_testing/scenario/
step.rs1use node::{event_source::Event, p2p::connection::outgoing::P2pConnectionOutgoingInitOpts};
2use serde::{Deserialize, Serialize};
3
4use crate::{
5 cluster::{ClusterNodeId, ClusterOcamlNodeId},
6 node::{NodeTestingConfig, NonDeterministicEvent, OcamlStep},
7};
8
9#[derive(Serialize, Deserialize, Debug, Clone)]
10#[serde(tag = "kind")]
11pub enum ScenarioStep {
12 Event {
16 node_id: ClusterNodeId,
17 event: String,
18 },
19 ManualEvent {
21 node_id: ClusterNodeId,
22 event: Box<Event>,
23 },
24 NonDeterministicEvent {
29 node_id: ClusterNodeId,
30 event: Box<NonDeterministicEvent>,
31 },
32 AddNode {
34 config: Box<NodeTestingConfig>,
35 },
36 ConnectNodes {
37 dialer: ClusterNodeId,
38 listener: ListenerNode,
39 },
40 CheckTimeouts {
41 node_id: ClusterNodeId,
42 },
43 AdvanceTime {
45 by_nanos: u64,
46 },
47 AdvanceNodeTime {
49 node_id: ClusterNodeId,
50 by_nanos: u64,
51 },
52 Ocaml {
53 node_id: ClusterOcamlNodeId,
54 step: OcamlStep,
55 },
56}
57
58#[derive(Serialize, Deserialize, derive_more::From, Debug, Clone)]
59pub enum ListenerNode {
60 Rust(ClusterNodeId),
61 Ocaml(ClusterOcamlNodeId),
62 Custom(P2pConnectionOutgoingInitOpts),
63}