Skip to content

Commit 4b207fd

Browse files
authored
chore(common): add serde skip for compute_units_per_second in EvmArgs (foundry-rs#11662)
* chore(common): add serde skip for compute_units_per_second in EvmArgs * add tests
1 parent 8722778 commit 4b207fd

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

crates/common/src/evm.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ pub struct EvmArgs {
113113
///
114114
/// See also --fork-url and <https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second>
115115
#[arg(long, alias = "cups", value_name = "CUPS", help_heading = "Fork config")]
116+
#[serde(skip_serializing_if = "Option::is_none")]
116117
pub compute_units_per_second: Option<u64>,
117118

118119
/// Disables rate limiting for this node's provider.
@@ -298,6 +299,26 @@ mod tests {
298299
use super::*;
299300
use foundry_config::NamedChain;
300301

302+
#[test]
303+
fn compute_units_per_second_skips_when_none() {
304+
let args = EvmArgs::default();
305+
let data = args.data().expect("provider data");
306+
let dict = data.get(&Config::selected_profile()).expect("profile dict");
307+
assert!(
308+
!dict.contains_key("compute_units_per_second"),
309+
"compute_units_per_second should be skipped when None"
310+
);
311+
}
312+
313+
#[test]
314+
fn compute_units_per_second_present_when_some() {
315+
let args = EvmArgs { compute_units_per_second: Some(1000), ..Default::default() };
316+
let data = args.data().expect("provider data");
317+
let dict = data.get(&Config::selected_profile()).expect("profile dict");
318+
let val = dict.get("compute_units_per_second").expect("cups present");
319+
assert_eq!(val, &Value::from(1000u64));
320+
}
321+
301322
#[test]
302323
fn can_parse_chain_id() {
303324
let args = EvmArgs {

0 commit comments

Comments
 (0)