Shift capability builders to with_* phrasing

This commit is contained in:
andrussal 2026-03-08 15:32:54 +01:00
parent 54a1592d97
commit 8efba317cc
12 changed files with 44 additions and 20 deletions

View File

@ -7,7 +7,7 @@ use crate::SnippetResult;
pub fn random_restart_plan() -> SnippetResult<Scenario<NodeControlCapability>> {
ScenarioBuilder::topology_with(|t| t.network_star().nodes(2))
.enable_node_control()
.with_node_control()
.with_workload(RandomRestartWorkload::new(
Duration::from_secs(45), // min delay
Duration::from_secs(75), // max delay

View File

@ -8,7 +8,7 @@ use crate::SnippetResult;
pub fn chaos_plan()
-> SnippetResult<testing_framework_core::scenario::Scenario<NodeControlCapability>> {
ScenarioBuilder::topology_with(|t| t.network_star().nodes(3))
.enable_node_control() // Enable node control capability
.with_node_control() // Enable node control capability
.chaos_with(|c| {
c.restart() // Random restart chaos
.min_delay(Duration::from_secs(30)) // Min time between restarts

View File

@ -7,7 +7,7 @@ use testing_framework_workflows::{ChaosBuilderExt, ScenarioBuilderExt};
pub async fn aggressive_chaos_test() -> Result<()> {
let mut plan = ScenarioBuilder::topology_with(|t| t.network_star().nodes(4))
.enable_node_control()
.with_node_control()
.wallets(50)
.transactions_with(|txs| txs.rate(10).users(20))
.chaos_with(|c| {

View File

@ -7,7 +7,7 @@ use testing_framework_workflows::{ChaosBuilderExt, ScenarioBuilderExt};
pub async fn chaos_resilience() -> Result<()> {
let mut plan = ScenarioBuilder::topology_with(|t| t.network_star().nodes(4))
.enable_node_control()
.with_node_control()
.wallets(20)
.transactions_with(|txs| txs.rate(3).users(10))
.chaos_with(|c| {

View File

@ -16,7 +16,7 @@ pub fn determinism_first() -> SnippetResult<()> {
// Separate: chaos test (introduces randomness)
let _chaos_plan = ScenarioBuilder::topology_with(|t| t.network_star().nodes(3))
.enable_node_control()
.with_node_control()
.chaos_with(|c| {
c.restart()
.min_delay(Duration::from_secs(30))

View File

@ -41,7 +41,7 @@ async fn run_compose_case(nodes: usize, run_duration: Duration) -> Result<()> {
t.with_network_layout(Libp2pNetworkLayout::Star)
.with_node_count(nodes)
})
.enable_node_control()
.with_node_control()
.with_run_duration(run_duration)
.with_deployment_seed(seed)
.initialize_wallet(

View File

@ -37,7 +37,7 @@ async fn run_k8s_case(nodes: usize, run_duration: Duration) -> Result<()> {
t.with_network_layout(Libp2pNetworkLayout::Star)
.with_node_count(nodes)
})
.enable_observability()
.with_observability()
.with_run_duration(run_duration)
.with_deployment_seed(seed)
.initialize_wallet(

View File

@ -115,7 +115,7 @@ async fn dynamic_join_reaches_consensus_liveness() -> Result<()> {
t.with_network_layout(Libp2pNetworkLayout::Star)
.with_node_count(2)
})
.enable_node_control()
.with_node_control()
.with_workload(JoinNodeWorkload::new("joiner"))
.with_expectation(lb_framework::workloads::ConsensusLiveness::<LbcEnv>::default())
.with_run_duration(Duration::from_secs(60))
@ -135,7 +135,7 @@ async fn dynamic_join_with_peers_reaches_consensus_liveness() -> Result<()> {
t.with_network_layout(Libp2pNetworkLayout::Star)
.with_node_count(2)
})
.enable_node_control()
.with_node_control()
.with_workload(JoinNodeWithPeersWorkload::new(
"joiner",
vec!["node-0".to_string()],

View File

@ -12,7 +12,7 @@ use tracing_subscriber::fmt::try_init;
async fn local_restart_node() -> Result<()> {
let _ = try_init();
let mut scenario = ScenarioBuilder::deployment_with(|t| t.with_node_count(1))
.enable_node_control()
.with_node_control()
.with_run_duration(Duration::from_secs(1))
.build()?;

View File

@ -63,7 +63,7 @@ impl CoreBuilderExt for ScenarioBuilder {
impl CoreBuilderExt for NodeControlScenarioBuilder<LbcExtEnv> {
fn deployment_with(f: impl FnOnce(DeploymentBuilder) -> DeploymentBuilder) -> Self {
ScenarioBuilder::deployment_with(f).enable_node_control()
ScenarioBuilder::deployment_with(f).with_node_control()
}
fn with_wallet_config(self, wallet: WalletConfig) -> Self {
@ -82,7 +82,7 @@ impl CoreBuilderExt for NodeControlScenarioBuilder<LbcExtEnv> {
impl CoreBuilderExt for ObservabilityScenarioBuilder<LbcExtEnv> {
fn deployment_with(f: impl FnOnce(DeploymentBuilder) -> DeploymentBuilder) -> Self {
ScenarioBuilder::deployment_with(f).enable_observability()
ScenarioBuilder::deployment_with(f).with_observability()
}
fn with_wallet_config(self, wallet: WalletConfig) -> Self {

View File

@ -95,7 +95,7 @@ impl<E: Application> ObservabilityBuilderExt for ScenarioBuilder<E> {
type Env = E;
fn with_metrics_query_url(self, url: Url) -> ObservabilityScenarioBuilder<E> {
self.with_observability(single_url_observability(Some(url), None, None))
self.with_observability_capability(single_url_observability(Some(url), None, None))
}
fn with_metrics_query_url_str(self, url: &str) -> ObservabilityScenarioBuilder<E> {
@ -112,7 +112,7 @@ impl<E: Application> ObservabilityBuilderExt for ScenarioBuilder<E> {
}
fn with_metrics_otlp_ingest_url(self, url: Url) -> ObservabilityScenarioBuilder<E> {
self.with_observability(single_url_observability(None, Some(url), None))
self.with_observability_capability(single_url_observability(None, Some(url), None))
}
fn with_metrics_otlp_ingest_url_str(self, url: &str) -> ObservabilityScenarioBuilder<E> {
@ -129,7 +129,7 @@ impl<E: Application> ObservabilityBuilderExt for ScenarioBuilder<E> {
}
fn with_grafana_url(self, url: Url) -> ObservabilityScenarioBuilder<E> {
self.with_observability(single_url_observability(None, None, Some(url)))
self.with_observability_capability(single_url_observability(None, None, Some(url)))
}
fn with_grafana_url_str(self, url: &str) -> ObservabilityScenarioBuilder<E> {

View File

@ -405,14 +405,20 @@ impl<E: Application> ScenarioBuilder<E> {
}
#[must_use]
pub fn enable_node_control(self) -> NodeControlScenarioBuilder<E> {
pub fn with_node_control(self) -> NodeControlScenarioBuilder<E> {
NodeControlScenarioBuilder {
inner: self.inner.with_capabilities(NodeControlCapability),
}
}
#[must_use]
pub fn enable_observability(self) -> ObservabilityScenarioBuilder<E> {
#[doc(hidden)]
pub fn enable_node_control(self) -> NodeControlScenarioBuilder<E> {
self.with_node_control()
}
#[must_use]
pub fn with_observability(self) -> ObservabilityScenarioBuilder<E> {
ObservabilityScenarioBuilder {
inner: self
.inner
@ -420,11 +426,17 @@ impl<E: Application> ScenarioBuilder<E> {
}
}
#[must_use]
#[doc(hidden)]
pub fn enable_observability(self) -> ObservabilityScenarioBuilder<E> {
self.with_observability()
}
pub fn build(self) -> Result<Scenario<E>, ScenarioBuildError> {
self.inner.build()
}
pub(crate) fn with_observability(
pub(crate) fn with_observability_capability(
self,
observability: ObservabilityCapability,
) -> ObservabilityScenarioBuilder<E> {
@ -842,14 +854,26 @@ where
impl<E: Application> Builder<E, ()> {
#[must_use]
pub fn enable_node_control(self) -> Builder<E, NodeControlCapability> {
pub fn with_node_control(self) -> Builder<E, NodeControlCapability> {
self.with_capabilities(NodeControlCapability)
}
#[must_use]
pub fn enable_observability(self) -> Builder<E, ObservabilityCapability> {
#[doc(hidden)]
pub fn enable_node_control(self) -> Builder<E, NodeControlCapability> {
self.with_node_control()
}
#[must_use]
pub fn with_observability(self) -> Builder<E, ObservabilityCapability> {
self.with_capabilities(ObservabilityCapability::default())
}
#[must_use]
#[doc(hidden)]
pub fn enable_observability(self) -> Builder<E, ObservabilityCapability> {
self.with_observability()
}
}
fn initialize_components<E: Application>(