锁定桌面网络状态不可用响应
桌面网络状态探测失败转为稳定 host_error 桌面网络状态单测覆盖不可用响应 code 和 message 桌面壳配置检查反查网络不可用边界
This commit is contained in:
@@ -1920,8 +1920,10 @@ if (
|
||||
for (const snippet of [
|
||||
'resolve_desktop_host_bridge_network_status',
|
||||
'resolve_desktop_host_bridge_network_status_payload',
|
||||
'network_status_unavailable_response',
|
||||
'spawn_blocking(resolve_desktop_network_status)',
|
||||
'failed(request.id.clone(), "host_error", error)',
|
||||
'"network status unavailable"',
|
||||
'network_status_unavailable_response_is_stable',
|
||||
]) {
|
||||
if (!desktopHostBridgeNetworkSource.includes(snippet)) {
|
||||
throw new Error(`desktop shell network module is missing ${snippet}`);
|
||||
|
||||
@@ -13,6 +13,26 @@ pub(crate) async fn resolve_desktop_host_bridge_network_status(
|
||||
) -> HostBridgeResponse {
|
||||
match resolve_desktop_host_bridge_network_status_payload().await {
|
||||
Ok(status) => ok(request.id.clone(), status),
|
||||
Err(error) => failed(request.id.clone(), "host_error", error),
|
||||
Err(_) => network_status_unavailable_response(request),
|
||||
}
|
||||
}
|
||||
|
||||
fn network_status_unavailable_response(request: &HostBridgeRequest) -> HostBridgeResponse {
|
||||
failed(request.id.clone(), "host_error", "network status unavailable")
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::host_bridge::protocol::request;
|
||||
|
||||
#[test]
|
||||
fn network_status_unavailable_response_is_stable() {
|
||||
let response = network_status_unavailable_response(&request("network.status"));
|
||||
|
||||
assert!(!response.ok);
|
||||
let error = response.error.expect("network status error");
|
||||
assert_eq!(error.code, "host_error");
|
||||
assert_eq!(error.message, "network status unavailable");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user