fix(tests): add comprehensive unit and async tests across Rust crates and TypeScript runtime
This commit is contained in:
@@ -369,3 +369,58 @@ async fn handle_request(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_ipc_request_deserialize() {
|
||||
let json = r#"{"id": "1", "method": "ping", "params": {}}"#;
|
||||
let req: IpcRequest = serde_json::from_str(json).unwrap();
|
||||
assert_eq!(req.id, "1");
|
||||
assert_eq!(req.method, "ping");
|
||||
assert!(req.params.is_object());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_ipc_response_skip_error_when_none() {
|
||||
let resp = IpcResponse {
|
||||
id: "1".to_string(),
|
||||
success: true,
|
||||
result: Some(serde_json::json!({"pong": true})),
|
||||
error: None,
|
||||
};
|
||||
let json = serde_json::to_value(&resp).unwrap();
|
||||
assert_eq!(json["id"], "1");
|
||||
assert_eq!(json["success"], true);
|
||||
assert_eq!(json["result"]["pong"], true);
|
||||
assert!(json.get("error").is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_ipc_response_skip_result_when_none() {
|
||||
let resp = IpcResponse {
|
||||
id: "2".to_string(),
|
||||
success: false,
|
||||
result: None,
|
||||
error: Some("something failed".to_string()),
|
||||
};
|
||||
let json = serde_json::to_value(&resp).unwrap();
|
||||
assert_eq!(json["id"], "2");
|
||||
assert_eq!(json["success"], false);
|
||||
assert_eq!(json["error"], "something failed");
|
||||
assert!(json.get("result").is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_ipc_event_serialize() {
|
||||
let evt = IpcEvent {
|
||||
event: "ready".to_string(),
|
||||
data: serde_json::json!({"version": "2.0.0"}),
|
||||
};
|
||||
let json = serde_json::to_value(&evt).unwrap();
|
||||
assert_eq!(json["event"], "ready");
|
||||
assert_eq!(json["data"]["version"], "2.0.0");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user