Add tests to src/free_api_v25/query

This commit is contained in:
Candifloss 2025-10-10 01:48:46 +05:30
parent 96bd494161
commit dd8f19424f
2 changed files with 72 additions and 0 deletions

View File

@ -25,3 +25,6 @@ pub mod urls;
pub use queryparams::*; pub use queryparams::*;
pub use units::*; pub use units::*;
pub use urls::*; pub use urls::*;
#[cfg(test)]
mod tests;

View File

@ -0,0 +1,69 @@
use super::*;
#[test]
fn test_weather_url_city_name() {
let query = QueryParams {
api_key: "KEY".into(),
city_name: Some("Paris".into()),
..Default::default()
};
let url = query.weather_url().unwrap();
assert!(url.contains("q=Paris"));
assert!(url.contains("appid=KEY"));
assert!(url.starts_with(WEATHER_URL));
}
#[test]
fn test_weather_url_city_id() {
let query = QueryParams {
api_key: "KEY".into(),
city_id: Some("123".into()),
..Default::default()
};
let url = query.weather_url().unwrap();
assert!(url.contains("id=123"));
}
#[test]
fn test_weather_url_lat_lon() {
let query = QueryParams {
api_key: "KEY".into(),
lat: Some(10.0),
lon: Some(20.0),
..Default::default()
};
let url = query.weather_url().unwrap();
assert!(url.contains("lat=10") && url.contains("lon=20"));
}
#[test]
fn test_weather_url_zip() {
let query = QueryParams {
api_key: "KEY".into(),
zip: Some("94040,us".into()),
..Default::default()
};
let url = query.weather_url().unwrap();
assert!(url.contains("zip=94040,us"));
}
#[test]
fn test_weather_url_error() {
let query = QueryParams {
api_key: "KEY".into(),
..Default::default()
};
assert!(query.weather_url().is_err());
}
#[test]
fn test_forecast_url() {
let query = QueryParams {
api_key: "KEY".into(),
city_name: Some("Berlin".into()),
..Default::default()
};
let url = query.forecast_url().unwrap();
assert!(url.contains("q=Berlin"));
assert!(url.starts_with(FORECAST_URL));
}