Stabilize integration test qualification
This commit is contained in:
parent
414b380516
commit
560e1df9b2
1 changed files with 68 additions and 180 deletions
|
|
@ -29,6 +29,13 @@ fn env_required(name: &str) -> String {
|
|||
.unwrap_or_else(|_| panic!("{name} is required when REMORA_IDENTITY_REQUIRE is set"))
|
||||
}
|
||||
|
||||
fn keycloak_admin_url() -> String {
|
||||
std::env::var("REMORA_KEYCLOAK_ADMIN_URL")
|
||||
.unwrap_or_else(|_| "http://keycloak.remora.test:8080".to_owned())
|
||||
.trim_end_matches('/')
|
||||
.to_owned()
|
||||
}
|
||||
|
||||
async fn test_pool() -> Option<PgPool> {
|
||||
let Some(url) = database_url() else {
|
||||
if require_env() {
|
||||
|
|
@ -370,8 +377,9 @@ async fn revoke_keycloak_remora_client_roles() -> Result<(), String> {
|
|||
let (admin_token, realm, user_id, client_uuid, storage_role) =
|
||||
keycloak_admin_role_context().await?;
|
||||
let client = reqwest::Client::new();
|
||||
let keycloak_url = keycloak_admin_url();
|
||||
let roles_url = format!(
|
||||
"http://keycloak.remora.test:8080/admin/realms/{realm}/users/{user_id}/role-mappings/clients/{client_uuid}"
|
||||
"{keycloak_url}/admin/realms/{realm}/users/{user_id}/role-mappings/clients/{client_uuid}"
|
||||
);
|
||||
let mapped: Value = client
|
||||
.get(&roles_url)
|
||||
|
|
@ -504,8 +512,9 @@ async fn ensure_keycloak_remora_client_roles() -> Result<(), String> {
|
|||
let (admin_token, realm, user_id, client_uuid, storage_role) =
|
||||
keycloak_admin_role_context().await?;
|
||||
let client = reqwest::Client::new();
|
||||
let keycloak_url = keycloak_admin_url();
|
||||
let available_url = format!(
|
||||
"http://keycloak.remora.test:8080/admin/realms/{realm}/users/{user_id}/role-mappings/clients/{client_uuid}/available"
|
||||
"{keycloak_url}/admin/realms/{realm}/users/{user_id}/role-mappings/clients/{client_uuid}/available"
|
||||
);
|
||||
let available: Value = client
|
||||
.get(available_url)
|
||||
|
|
@ -532,7 +541,7 @@ async fn ensure_keycloak_remora_client_roles() -> Result<(), String> {
|
|||
return Ok(());
|
||||
}
|
||||
let roles_url = format!(
|
||||
"http://keycloak.remora.test:8080/admin/realms/{realm}/users/{user_id}/role-mappings/clients/{client_uuid}"
|
||||
"{keycloak_url}/admin/realms/{realm}/users/{user_id}/role-mappings/clients/{client_uuid}"
|
||||
);
|
||||
let post = client
|
||||
.post(roles_url)
|
||||
|
|
@ -556,10 +565,10 @@ async fn keycloak_admin_role_context() -> Result<(String, String, String, String
|
|||
let client_id = env_required("REMORA_OIDC_CLIENT_ID");
|
||||
let username = env_required("REMORA_OIDC_USERNAME");
|
||||
let storage_role = env_required("REMORA_OIDC_STORAGE_ROLE");
|
||||
let keycloak_url = keycloak_admin_url();
|
||||
let client = reqwest::Client::new();
|
||||
|
||||
let admin_token_url =
|
||||
"http://keycloak.remora.test:8080/realms/master/protocol/openid-connect/token";
|
||||
let admin_token_url = format!("{keycloak_url}/realms/master/protocol/openid-connect/token");
|
||||
let admin_token_response = client
|
||||
.post(admin_token_url)
|
||||
.form(&[
|
||||
|
|
@ -588,9 +597,8 @@ async fn keycloak_admin_role_context() -> Result<(String, String, String, String
|
|||
.ok_or("keycloak admin token missing access_token")?
|
||||
.to_owned();
|
||||
|
||||
let users_url = format!(
|
||||
"http://keycloak.remora.test:8080/admin/realms/{realm}/users?username={username}&exact=true"
|
||||
);
|
||||
let users_url =
|
||||
format!("{keycloak_url}/admin/realms/{realm}/users?username={username}&exact=true");
|
||||
let users: Value = client
|
||||
.get(users_url)
|
||||
.bearer_auth(&admin_token)
|
||||
|
|
@ -608,9 +616,7 @@ async fn keycloak_admin_role_context() -> Result<(String, String, String, String
|
|||
.ok_or("keycloak user not found")?
|
||||
.to_owned();
|
||||
|
||||
let clients_url = format!(
|
||||
"http://keycloak.remora.test:8080/admin/realms/{realm}/clients?clientId={client_id}"
|
||||
);
|
||||
let clients_url = format!("{keycloak_url}/admin/realms/{realm}/clients?clientId={client_id}");
|
||||
let clients: Value = client
|
||||
.get(clients_url)
|
||||
.bearer_auth(&admin_token)
|
||||
|
|
|
|||
Loading…
Reference in a new issue