use zulip_api::client::Client;
use zulip_api::fetch_api_key;
use zulip_api::response::{ApiResult, Response};
#[tokio::test]
async fn test_fetch_api_key() {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info"))
.try_init()
.ok();
let config = ini::ini!("./tests/zuliprc");
let client = Client::from_zuliprc("./tests/zuliprc").unwrap();
let algo = jwt::Algorithm::HS256;
let key = jwt::EncodingKey::from_secret(
"1ae182f87735332be1410ac23de04d74e9b06b8276b402ffac369e509e8b7b42".as_bytes(),
);
let email = fetch_api_key::Email::new(config["api"]["email"].as_deref().unwrap());
let password = fetch_api_key::Password::new(config["api"]["password"].as_deref().unwrap());
let req = fetch_api_key::Request::create(algo, &key, &email, &password).unwrap();
let res = client.fetch_api_key(&req).await.unwrap();
log::debug!("Render message response: {res}");
assert_eq!(res.result(), ApiResult::Success);
}