use serde::Serialize;
use wiremock::matchers::{body_partial_json, method};
use wiremock::{Mock, MockServer, ResponseTemplate};
pub async fn setup_mock_server() -> MockServer {
MockServer::start().await
}
pub fn mock_anki_response<T: Serialize>(result: T) -> ResponseTemplate {
ResponseTemplate::new(200).set_body_json(serde_json::json!({
"result": result,
"error": null
}))
}
#[allow(dead_code)] pub fn mock_anki_error(error: &str) -> ResponseTemplate {
ResponseTemplate::new(200).set_body_json(serde_json::json!({
"result": null,
"error": error
}))
}
pub async fn mock_action(server: &MockServer, action: &str, response: ResponseTemplate) {
Mock::given(method("POST"))
.and(body_partial_json(serde_json::json!({
"action": action,
"version": 6
})))
.respond_with(response)
.expect(1)
.mount(server)
.await;
}