65 lines
1.6 KiB
Rust
65 lines
1.6 KiB
Rust
use super::*;
|
|
|
|
fn worker(worker_host: &str) -> ConnectedSelfHostedWorker {
|
|
ConnectedSelfHostedWorker {
|
|
worker_host: worker_host.to_string(),
|
|
connection_count: 1,
|
|
connected_at: "2026-05-18T19:00:00Z".to_string(),
|
|
last_seen_at: "2026-05-18T19:05:00Z".to_string(),
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn worker_hosts_excluding_sorts_dedups_and_filters_empty_and_warp_hosts() {
|
|
let model = ConnectedSelfHostedWorkersModel {
|
|
workers: vec![
|
|
worker("worker-2"),
|
|
worker(""),
|
|
worker("warp"),
|
|
worker("WARP"),
|
|
worker("worker-1"),
|
|
worker("worker-2"),
|
|
],
|
|
};
|
|
|
|
assert_eq!(
|
|
model.worker_hosts_excluding(None),
|
|
vec!["worker-1".to_string(), "worker-2".to_string()]
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn worker_hosts_excluding_filters_excluded_host() {
|
|
let model = ConnectedSelfHostedWorkersModel {
|
|
workers: vec![
|
|
worker("default-host"),
|
|
worker("worker-1"),
|
|
worker("worker-2"),
|
|
],
|
|
};
|
|
|
|
assert_eq!(
|
|
model.worker_hosts_excluding(Some("default-host")),
|
|
vec!["worker-1".to_string(), "worker-2".to_string()]
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn clear_worker_cache_removes_cached_hosts() {
|
|
let mut model = ConnectedSelfHostedWorkersModel {
|
|
workers: vec![worker("private-host")],
|
|
};
|
|
|
|
assert!(model.clear_worker_cache());
|
|
assert!(model.worker_hosts_excluding(None).is_empty());
|
|
}
|
|
|
|
#[test]
|
|
fn clear_worker_cache_is_noop_when_empty() {
|
|
let mut model = ConnectedSelfHostedWorkersModel {
|
|
workers: Vec::new(),
|
|
};
|
|
|
|
assert!(!model.clear_worker_cache());
|
|
}
|