Add Windows diagnostics test
This commit is contained in:
parent
2e7f575682
commit
04a0127c6b
2 changed files with 233 additions and 0 deletions
|
|
@ -1041,3 +1041,66 @@ impl AgentRuntime {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(all(test, target_os = "windows"))]
|
||||
mod windows_tests {
|
||||
use super::collect_windows_extended;
|
||||
use serde_json::Value;
|
||||
|
||||
fn expect_object<'a>(value: &'a Value, context: &str) -> &'a serde_json::Map<String, Value> {
|
||||
value
|
||||
.as_object()
|
||||
.unwrap_or_else(|| panic!("{context} não é um objeto JSON: {value:?}"))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn collects_activation_and_defender_status() {
|
||||
let extended = collect_windows_extended();
|
||||
let windows = extended.get("windows").unwrap_or_else(|| {
|
||||
panic!("payload windows ausente: {extended:?}");
|
||||
});
|
||||
let windows_obj = expect_object(windows, "windows");
|
||||
|
||||
let os_info = windows_obj
|
||||
.get("osInfo")
|
||||
.unwrap_or_else(|| panic!("windows.osInfo ausente: {windows_obj:?}"));
|
||||
let os_info_obj = expect_object(os_info, "windows.osInfo");
|
||||
|
||||
let is_activated = os_info_obj.get("IsActivated").unwrap_or_else(|| {
|
||||
panic!(
|
||||
"campo IsActivated ausente em windows.osInfo: {os_info_obj:?}"
|
||||
)
|
||||
});
|
||||
assert!(
|
||||
is_activated.as_bool().is_some(),
|
||||
"esperava booleano em windows.osInfo.IsActivated, valor recebido: {is_activated:?}"
|
||||
);
|
||||
|
||||
let license_status = os_info_obj.get("LicenseStatus").unwrap_or_else(|| {
|
||||
panic!(
|
||||
"campo LicenseStatus ausente em windows.osInfo: {os_info_obj:?}"
|
||||
)
|
||||
});
|
||||
assert!(
|
||||
license_status.as_i64().is_some(),
|
||||
"esperava número em windows.osInfo.LicenseStatus, valor recebido: {license_status:?}"
|
||||
);
|
||||
|
||||
let defender = windows_obj.get("defender").unwrap_or_else(|| {
|
||||
panic!("windows.defender ausente: {windows_obj:?}");
|
||||
});
|
||||
let defender_obj = expect_object(defender, "windows.defender");
|
||||
|
||||
let realtime = defender_obj
|
||||
.get("RealTimeProtectionEnabled")
|
||||
.unwrap_or_else(|| {
|
||||
panic!(
|
||||
"campo RealTimeProtectionEnabled ausente em windows.defender: {defender_obj:?}"
|
||||
)
|
||||
});
|
||||
assert!(
|
||||
realtime.as_bool().is_some(),
|
||||
"esperava booleano em windows.defender.RealTimeProtectionEnabled, valor recebido: {realtime:?}"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue