refactor(web): use generated proto network types (#2373)

* refactor(web): use generated proto network types
* fix(core): preserve dumped config flags
* test(web): cover config flag save paths
* fix(ci): use system protoc before frontend codegen
* fix(ci): serialize frontend-lib builds
This commit is contained in:
KKRainbow
2026-06-27 13:09:28 +08:00
committed by GitHub
parent 034f5066cd
commit f0d00d6161
22 changed files with 5035 additions and 247 deletions
+26
View File
@@ -1210,6 +1210,32 @@ mod tests {
Ok(())
}
#[test]
fn network_config_dump_preserves_web_flags() -> Result<(), anyhow::Error> {
let network_config = super::NetworkConfig {
instance_id: Some(uuid::Uuid::new_v4().to_string()),
dhcp: Some(true),
network_name: Some("demo".to_string()),
network_secret: Some("secret".to_string()),
networking_method: Some(crate::proto::api::manage::NetworkingMethod::Manual as i32),
peer_urls: vec!["tcp://1.2.3.4:11010".to_string()],
listener_urls: vec!["tcp://0.0.0.0:11010".to_string()],
dev_name: Some("et_test".to_string()),
enable_quic_proxy: Some(true),
disable_tcp_hole_punching: Some(true),
disable_sym_hole_punching: Some(true),
..Default::default()
};
let dumped = network_config.gen_config()?.dump();
assert!(dumped.contains("dev_name = \"et_test\""));
assert!(dumped.contains("enable_quic_proxy = true"));
assert!(dumped.contains("disable_tcp_hole_punching = true"));
assert!(dumped.contains("disable_sym_hole_punching = true"));
Ok(())
}
#[test]
fn test_network_config_conversion_random() -> Result<(), anyhow::Error> {
let mut rng = rand::thread_rng();