use mcp_gmailcal::errors::GmailApiError;
use mcp_gmailcal::utils::{
map_gmail_error, parse_max_results, to_mcp_error,
error_codes::API_ERROR
};
use serde_json::{json, Number, Value};
use std::env;
use std::sync::Once;
static INIT: Once = Once::new();
fn init_logger() {
INIT.call_once(|| {
env::set_var("RUST_LOG", "debug");
env_logger::builder().init();
});
}
#[cfg(test)]
mod utils_final_coverage_tests {
use super::*;
#[test]
fn test_max_u32_boundary() {
init_logger();
let exact_u32_max = u32::MAX as u64;
let number = Number::from(exact_u32_max);
let value = Value::Number(number);
let result = parse_max_results(Some(value), 100);
assert_eq!(result, u32::MAX);
}
#[test]
fn test_rate_limit_condition() {
init_logger();
let quota_error = map_gmail_error(GmailApiError::ApiError("quota limit".to_string()));
let debug_str = format!("{:?}", quota_error);
assert!(debug_str.contains("Gmail API rate limit exceeded"));
assert!(debug_str.contains(&API_ERROR.to_string()));
let rate_error = map_gmail_error(GmailApiError::ApiError("rate limit".to_string()));
let debug_str = format!("{:?}", rate_error);
assert!(debug_str.contains("Gmail API rate limit exceeded"));
}
#[test]
fn test_unspecified_api_error() {
init_logger();
let generic_message = "xyz";
let api_error = map_gmail_error(GmailApiError::ApiError(generic_message.to_string()));
let error_string = format!("{:?}", api_error);
assert!(error_string.contains("Unspecified Gmail API error"));
assert!(error_string.contains(generic_message));
}
}