Implement adaptive client list
This commit is contained in:
@@ -21,6 +21,7 @@ use wireguard_admin::tui::events::{
|
||||
ShutdownProgress, StatisticsReader, UiCommand, WorkerConfig, WorkerEvent,
|
||||
};
|
||||
use wireguard_admin::tui::forms::{FormAction, FormController};
|
||||
use wireguard_admin::tui::state::SessionView;
|
||||
use wireguard_admin::vault::WireGuardPrivateKey;
|
||||
|
||||
const SETTINGS: &str = r#"
|
||||
@@ -75,6 +76,32 @@ fn fixture() -> Fixture {
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn saved_peer_projection_counts_legacy_peers_without_inventing_managed_state() {
|
||||
let fixture = fixture();
|
||||
let legacy_key = WireGuardPrivateKey::generate()
|
||||
.expect("synthetic legacy peer key")
|
||||
.public_key();
|
||||
let mut server_config =
|
||||
fs::read_to_string(&fixture.settings.server_config_path).expect("synthetic server config");
|
||||
server_config.push_str(&format!(
|
||||
"\n[Peer]\nPublicKey = {legacy_key}\nAllowedIPs = 10.20.0.2/32\n"
|
||||
));
|
||||
fs::write(&fixture.settings.server_config_path, server_config)
|
||||
.expect("write synthetic legacy peer");
|
||||
|
||||
let app = wireguard_admin::app::Application::open_from_saved_store(fixture.store.clone())
|
||||
.expect("application opens with an inspect-only legacy peer");
|
||||
let view = SessionView::from_application(&app, 0);
|
||||
|
||||
assert_eq!(view.saved_peer_count, Some(1));
|
||||
assert_eq!(view.clients.len(), 1);
|
||||
assert_eq!(view.clients[0].identity, Some(legacy_key));
|
||||
assert_eq!(view.clients[0].mutable_identity, None);
|
||||
assert!(view.client_states.is_empty());
|
||||
assert!(!view.has_draft);
|
||||
}
|
||||
|
||||
#[derive(Clone, Default)]
|
||||
struct CountingStatistics(Arc<AtomicUsize>);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user