use mockito::{mock, server_url};
use proxctl_bindings::ProxmoxApi;
#[tokio::test]
async fn test_authenticate() {
let _m = mock("POST", "/api2/json/access/ticket")
.with_status(200)
.with_body(r#"{"data": {"ticket": "fake_ticket", "CSRFPreventionToken": "fake_csrf_token", "username": "test_user"}}"#)
.create();
let mut proxmox_api = ProxmoxApi::new(server_url());
let response = proxmox_api
.authenticate("test_user", "test_password", "pam")
.await
.unwrap();
assert!(proxmox_api.client.api_token.is_some());
assert!(proxmox_api.client.csrf_token.is_some());
assert_eq!(response.data.ticket, "fake_ticket");
assert_eq!(response.data.csrf_prevention_token, "fake_csrf_token");
assert_eq!(response.data.username, "test_user");
}