use open_lark::prelude::*;
#[tokio::test]
async fn test_standard_response_compatibility() {
let client = create_test_client();
match simulate_api_success() {
Ok(data) => {
println!("API成功: {:?}", data);
},
Err(e) => {
println!("API失败: {:?}", e);
}
}
match simulate_api_error() {
Ok(_) => panic!("应该返回错误"),
Err(e) => {
assert!(matches!(e, LarkAPIError::HttpError(_)));
}
}
}
#[tokio::test]
async fn test_chaining_compatibility() {
let client = create_test_client();
let result = client
.im .v1
.message
.create(create_message_request(), None)
.await
.map(|data| {
process_message_data(data)
})
.map_err(|e| {
log::error!("消息发送失败: {:?}", e);
e
});
}
fn create_test_client() -> LarkClient {
LarkClient::builder("test", "test").build()
}
fn simulate_api_success() -> SDKResult<String> {
Ok("success_data".to_string())
}
fn simulate_api_error() -> SDKResult<String> {
Err(LarkAPIError::HttpError("network error".to_string()))
}
fn create_message_request() -> String {
"test_message".to_string()
}
fn process_message_data(data: String) -> String {
format!("processed: {}", data)
}