1use crate::apis::configuration::Configuration;
4
5pub const DEFAULT_BASE_URL: &str = "https://api.timeweb.cloud";
7
8#[must_use]
27pub fn authenticated(token: impl Into<String>) -> Configuration {
28 Configuration {
29 bearer_access_token: Some(token.into()),
30 user_agent: Some(concat!("timeweb-rs/", env!("CARGO_PKG_VERSION")).to_string()),
31 ..Configuration::default()
32 }
33}
34
35#[must_use]
40pub fn authenticated_with_base_url(
41 token: impl Into<String>,
42 base_url: impl Into<String>
43) -> Configuration {
44 Configuration {
45 base_path: base_url.into(),
46 ..authenticated(token)
47 }
48}
49
50#[cfg(test)]
51mod tests {
52 use super::{DEFAULT_BASE_URL, authenticated, authenticated_with_base_url};
53
54 #[test]
55 fn authenticated_sets_bearer_token_and_default_base_url() {
56 let config = authenticated("jwt-token");
57 assert_eq!(config.bearer_access_token.as_deref(), Some("jwt-token"));
58 assert_eq!(config.base_path, DEFAULT_BASE_URL);
59 }
60
61 #[test]
62 fn authenticated_sets_crate_user_agent() {
63 let config = authenticated("jwt-token");
64 let user_agent = config.user_agent.expect("user agent is set");
65 assert!(user_agent.starts_with("timeweb-rs/"));
66 }
67
68 #[test]
69 fn authenticated_with_base_url_overrides_base_path() {
70 let config = authenticated_with_base_url("jwt-token", "http://localhost:8080");
71 assert_eq!(config.base_path, "http://localhost:8080");
72 assert_eq!(config.bearer_access_token.as_deref(), Some("jwt-token"));
73 }
74}