diff --git a/bin/reth/src/args/network_args.rs b/bin/reth/src/args/network_args.rs index f42fa76eb6..23a995f0f7 100644 --- a/bin/reth/src/args/network_args.rs +++ b/bin/reth/src/args/network_args.rs @@ -47,7 +47,8 @@ pub struct NetworkArgs { #[arg(long, verbatim_doc_comment)] pub no_persist_peers: bool, - /// NAT resolution method. + #[allow(rustdoc::invalid_html_tags)] + /// NAT resolution method (any|none|upnp|publicip|extip:) #[arg(long, default_value = "any")] pub nat: NatResolver, @@ -131,3 +132,25 @@ impl DiscoveryArgs { network_config_builder } } + +#[cfg(test)] +mod tests { + use super::*; + use clap::Parser; + /// A helper type to parse Args more easily + #[derive(Parser)] + struct CommandParser { + #[clap(flatten)] + args: T, + } + + #[test] + fn parse_nat_args() { + let args = CommandParser::::parse_from(["reth", "--nat", "none"]).args; + assert_eq!(args.nat, NatResolver::None); + + let args = + CommandParser::::parse_from(["reth", "--nat", "extip:0.0.0.0"]).args; + assert_eq!(args.nat, NatResolver::ExternalIp("0.0.0.0".parse().unwrap())); + } +}