use anyhow::Result; use crate::auth::credentials::{FirebaseToken, RefreshToken};#[cfg(feature = "skip_login")]use crate::server::server_api::ServerApi; #[test]fn test_firebase_token_urls() -> Result<()> { let custom_token = FirebaseToken::Custom("ct".to_string()); let refresh_token = FirebaseToken::Refresh(RefreshToken::new("rt".to_string())); assert_eq!( custom_token.access_token_url("api_key"), "https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=api_key" ); assert_eq!( refresh_token.access_token_url("api_key"), "https://securetoken.googleapis.com/v1/token?key=api_key" ); assert_eq!( custom_token.access_token_request_body(), vec![("returnSecureToken", "true"), ("token", "ct")] ); assert_eq!( refresh_token.access_token_request_body(), vec![("grant_type", "refresh_token"), ("refresh_token", "rt")], ); assert_eq!( custom_token.proxy_url("https://staging.warp.dev", "api_key"), "https://staging.warp.dev/proxy/customToken?key=api_key" ); assert_eq!( refresh_token.proxy_url("https://staging.warp.dev", "api_key"), "https://staging.warp.dev/proxy/token?key=api_key" ); Ok(())} #[cfg(feature = "skip_login")]#[test]fn access_token_skip_login_rejects_bearer_token() { let (event_sender, _) = async_channel::unbounded(); let server_api = ServerApi::new_for_test_with_bearer_token(Some("daemon-token".to_string()), event_sender); let error = futures::executor::block_on(server_api.get_or_refresh_access_token()).unwrap_err(); assert_eq!( error.to_string(), "skip_login enabled; failing all authenticated requests" );}
use anyhow::Result;
use crate::auth::credentials::{FirebaseToken, RefreshToken};
#[cfg(feature = "skip_login")]
use crate::server::server_api::ServerApi;
#[test]
fn test_firebase_token_urls() -> Result<()> {
let custom_token = FirebaseToken::Custom("ct".to_string());
let refresh_token = FirebaseToken::Refresh(RefreshToken::new("rt".to_string()));
assert_eq!(
custom_token.access_token_url("api_key"),
"https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=api_key"
);
assert_eq!(
refresh_token.access_token_url("api_key"),
"https://securetoken.googleapis.com/v1/token?key=api_key"
);
assert_eq!(
custom_token.access_token_request_body(),
vec![("returnSecureToken", "true"), ("token", "ct")]
);
assert_eq!(
refresh_token.access_token_request_body(),
vec![("grant_type", "refresh_token"), ("refresh_token", "rt")],
);
assert_eq!(
custom_token.proxy_url("https://staging.warp.dev", "api_key"),
"https://staging.warp.dev/proxy/customToken?key=api_key"
);
assert_eq!(
refresh_token.proxy_url("https://staging.warp.dev", "api_key"),
"https://staging.warp.dev/proxy/token?key=api_key"
);
Ok(())
}
#[cfg(feature = "skip_login")]
#[test]
fn access_token_skip_login_rejects_bearer_token() {
let (event_sender, _) = async_channel::unbounded();
let server_api =
ServerApi::new_for_test_with_bearer_token(Some("daemon-token".to_string()), event_sender);
let error = futures::executor::block_on(server_api.get_or_refresh_access_token()).unwrap_err();
assert_eq!(
error.to_string(),
"skip_login enabled; failing all authenticated requests"
);
}