Stabilize integration test qualification

This commit is contained in:
ms2k 2026-08-19 22:33:56 +09:00
commit 560e1df9b2

View file

@ -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)