mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-11-08 11:02:08 +08:00
test: trim redundant test coverage
This commit is contained in:
@@ -234,16 +234,3 @@ impl Logger {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::should_sync_service_writer;
|
||||
use crate::core::manager::RunningMode;
|
||||
|
||||
#[test]
|
||||
fn service_writer_sync_requires_service_running_mode() {
|
||||
assert!(should_sync_service_writer(RunningMode::Service));
|
||||
assert!(!should_sync_service_writer(RunningMode::Sidecar));
|
||||
assert!(!should_sync_service_writer(RunningMode::NotRunning));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -298,151 +298,3 @@ impl NotificationSystem {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::{FailedOperation, FailureTable};
|
||||
|
||||
fn table() -> FailureTable {
|
||||
FailureTable::default()
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn reading_does_not_clear() {
|
||||
let table = table();
|
||||
table.record(
|
||||
FailedOperation::SystemProxyRestore,
|
||||
"SYSPROXY_PRIVILEGE_REQUIRED",
|
||||
"refused".into(),
|
||||
);
|
||||
|
||||
assert_eq!(table.snapshot(), table.snapshot());
|
||||
assert_eq!(table.snapshot().len(), 1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_code_keeps_only_its_most_recent_failure() {
|
||||
let table = table();
|
||||
table.record(
|
||||
FailedOperation::SystemProxyRestore,
|
||||
"SYSPROXY_PRIVILEGE_REQUIRED",
|
||||
"first".into(),
|
||||
);
|
||||
table.record(
|
||||
FailedOperation::SystemProxyRestore,
|
||||
"SYSPROXY_PRIVILEGE_REQUIRED",
|
||||
"second".into(),
|
||||
);
|
||||
|
||||
let failures = table.snapshot();
|
||||
assert_eq!(failures.len(), 1);
|
||||
assert_eq!(failures[0].detail, "second");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_new_failure_under_a_known_code_gets_a_new_sequence() {
|
||||
let table = table();
|
||||
table.record(
|
||||
FailedOperation::SystemProxyRestore,
|
||||
"SYSPROXY_DIRECT_FALLBACK",
|
||||
"a".into(),
|
||||
);
|
||||
let first = table.snapshot()[0].sequence;
|
||||
table.record(
|
||||
FailedOperation::SystemProxyRestore,
|
||||
"SYSPROXY_DIRECT_FALLBACK",
|
||||
"b".into(),
|
||||
);
|
||||
|
||||
assert!(table.snapshot()[0].sequence > first);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn failures_are_reported_oldest_first() {
|
||||
let table = table();
|
||||
table.record(FailedOperation::SystemProxyRestore, "FIRST", "a".into());
|
||||
table.record(FailedOperation::SystemProxyRestore, "SECOND", "b".into());
|
||||
|
||||
let failures = table.snapshot();
|
||||
let codes: Vec<&str> = failures.iter().map(|failure| failure.code.as_str()).collect();
|
||||
assert_eq!(codes, ["FIRST", "SECOND"]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_working_proxy_retires_what_it_disproves() {
|
||||
let table = table();
|
||||
table.record(
|
||||
FailedOperation::SystemProxyRestore,
|
||||
"SYSPROXY_PRIVILEGE_REQUIRED",
|
||||
"refused".into(),
|
||||
);
|
||||
|
||||
assert!(table.retire_system_proxy(false));
|
||||
assert!(table.snapshot().is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_users_request_is_retired_only_by_reaching_the_state_they_asked_for() {
|
||||
let table = table();
|
||||
table.record(
|
||||
FailedOperation::SystemProxyDisable,
|
||||
"SYSPROXY_PRIVILEGE_REQUIRED",
|
||||
"refused".into(),
|
||||
);
|
||||
|
||||
assert!(!table.retire_system_proxy(true));
|
||||
assert_eq!(table.snapshot().len(), 1);
|
||||
|
||||
assert!(table.retire_system_proxy(false));
|
||||
assert!(table.snapshot().is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_failed_enable_is_retired_by_the_proxy_coming_on() {
|
||||
let table = table();
|
||||
table.record(
|
||||
FailedOperation::SystemProxyEnable,
|
||||
"SYSPROXY_DIRECT_FALLBACK",
|
||||
"fell back".into(),
|
||||
);
|
||||
|
||||
assert!(!table.retire_system_proxy(false));
|
||||
assert!(table.retire_system_proxy(true));
|
||||
assert!(table.snapshot().is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_stopped_guard_is_retired_by_a_guard_starting_again_and_not_by_an_apply() {
|
||||
let table = table();
|
||||
table.record(
|
||||
FailedOperation::SystemProxyGuard,
|
||||
"SYSPROXY_GUARD_STOPPED",
|
||||
"gave up".into(),
|
||||
);
|
||||
|
||||
assert!(!table.retire_system_proxy(true));
|
||||
assert!(!table.retire_system_proxy(false));
|
||||
assert_eq!(table.snapshot().len(), 1);
|
||||
|
||||
assert!(table.retire_guard());
|
||||
assert!(table.snapshot().is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn retiring_a_guard_leaves_everything_else_alone() {
|
||||
let table = table();
|
||||
table.record(
|
||||
FailedOperation::SystemProxyEnable,
|
||||
"SYSPROXY_PRIVILEGE_REQUIRED",
|
||||
"refused".into(),
|
||||
);
|
||||
|
||||
assert!(!table.retire_guard());
|
||||
assert_eq!(table.snapshot().len(), 1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn retiring_nothing_reports_nothing() {
|
||||
assert!(!table().retire_system_proxy(true));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -492,73 +492,3 @@ impl SilentUpdater {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
#[allow(clippy::unwrap_used)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_version_equal() {
|
||||
assert!(version_lte("2.4.7", "2.4.7"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_version_less() {
|
||||
assert!(version_lte("2.4.7", "2.4.8"));
|
||||
assert!(version_lte("2.4.7", "2.5.0"));
|
||||
assert!(version_lte("2.4.7", "3.0.0"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_version_greater() {
|
||||
assert!(!version_lte("2.4.8", "2.4.7"));
|
||||
assert!(!version_lte("2.5.0", "2.4.7"));
|
||||
assert!(!version_lte("3.0.0", "2.4.7"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_version_with_v_prefix() {
|
||||
assert!(version_lte("v2.4.7", "2.4.8"));
|
||||
assert!(version_lte("2.4.7", "v2.4.8"));
|
||||
assert!(version_lte("v2.4.7", "v2.4.8"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_version_with_prerelease() {
|
||||
assert!(version_lte("2.4.7", "2.4.8-alpha"));
|
||||
assert!(version_lte("2.4.8-alpha", "2.4.8"));
|
||||
assert!(version_lte("2.4.8-alpha", "2.4.8-beta"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_version_different_lengths() {
|
||||
assert!(version_lte("2.4", "2.4.1"));
|
||||
assert!(!version_lte("2.4.1", "2.4"));
|
||||
assert!(version_lte("2.4.0", "2.4"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_cache_meta_serialize_roundtrip() {
|
||||
let meta = UpdateCacheMeta {
|
||||
version: "2.5.0".to_string(),
|
||||
downloaded_at: "2026-03-31T00:00:00Z".to_string(),
|
||||
};
|
||||
let json = serde_json::to_string(&meta).unwrap();
|
||||
let parsed: UpdateCacheMeta = serde_json::from_str(&json).unwrap();
|
||||
assert_eq!(parsed.version, "2.5.0");
|
||||
assert_eq!(parsed.downloaded_at, "2026-03-31T00:00:00Z");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_cache_meta_invalid_json() {
|
||||
let result = serde_json::from_str::<UpdateCacheMeta>("not valid json");
|
||||
assert!(result.is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_cache_meta_missing_required_field() {
|
||||
let result = serde_json::from_str::<UpdateCacheMeta>(r#"{"version":"2.5.0"}"#);
|
||||
assert!(result.is_err()); // missing downloaded_at
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user