Stabilize integration test qualification

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

View file

@ -11,6 +11,13 @@ pub fn required_env(name: &str) -> String {
std::env::var(name).unwrap_or_else(|_| panic!("{name} is required"))
}
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()
}
pub fn oidc_provider() -> OidcIdentityProvider {
let provider = required_env("REMORA_OIDC_PROVIDER");
let audience = if provider == "zitadel" {
@ -179,9 +186,12 @@ async fn revoke_keycloak_remora_roles() -> Result<(), String> {
let realm = required_env("REMORA_OIDC_TENANT");
let client_id = required_env("REMORA_OIDC_CLIENT_ID");
let username = required_env("REMORA_OIDC_USERNAME");
let keycloak_url = keycloak_admin_url();
let client = Client::new();
let admin_response = client
.post("http://keycloak.remora.test:8080/realms/master/protocol/openid-connect/token")
.post(format!(
"{keycloak_url}/realms/master/protocol/openid-connect/token"
))
.form(&[
("grant_type", "password"),
("client_id", "admin-cli"),
@ -200,7 +210,7 @@ async fn revoke_keycloak_remora_roles() -> Result<(), String> {
.ok_or_else(|| "keycloak admin token missing".to_owned())?;
let users: Value = client
.get(format!(
"http://keycloak.remora.test:8080/admin/realms/{realm}/users?username={username}&exact=true"
"{keycloak_url}/admin/realms/{realm}/users?username={username}&exact=true"
))
.bearer_auth(admin_token)
.send()
@ -216,7 +226,7 @@ async fn revoke_keycloak_remora_roles() -> Result<(), String> {
.ok_or_else(|| "keycloak user missing".to_owned())?;
let clients: Value = client
.get(format!(
"http://keycloak.remora.test:8080/admin/realms/{realm}/clients?clientId={client_id}"
"{keycloak_url}/admin/realms/{realm}/clients?clientId={client_id}"
))
.bearer_auth(admin_token)
.send()
@ -231,7 +241,7 @@ async fn revoke_keycloak_remora_roles() -> Result<(), String> {
.and_then(|row| row["id"].as_str())
.ok_or_else(|| "keycloak client missing".to_owned())?;
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)
@ -274,9 +284,12 @@ async fn restore_keycloak_remora_roles() -> Result<(), String> {
let realm = required_env("REMORA_OIDC_TENANT");
let client_id = required_env("REMORA_OIDC_CLIENT_ID");
let username = required_env("REMORA_OIDC_USERNAME");
let keycloak_url = keycloak_admin_url();
let client = Client::new();
let admin_response = client
.post("http://keycloak.remora.test:8080/realms/master/protocol/openid-connect/token")
.post(format!(
"{keycloak_url}/realms/master/protocol/openid-connect/token"
))
.form(&[
("grant_type", "password"),
("client_id", "admin-cli"),
@ -295,7 +308,7 @@ async fn restore_keycloak_remora_roles() -> Result<(), String> {
.ok_or_else(|| "keycloak admin token missing".to_owned())?;
let users: Value = client
.get(format!(
"http://keycloak.remora.test:8080/admin/realms/{realm}/users?username={username}&exact=true"
"{keycloak_url}/admin/realms/{realm}/users?username={username}&exact=true"
))
.bearer_auth(admin_token)
.send()
@ -311,7 +324,7 @@ async fn restore_keycloak_remora_roles() -> Result<(), String> {
.ok_or_else(|| "keycloak user missing".to_owned())?;
let clients: Value = client
.get(format!(
"http://keycloak.remora.test:8080/admin/realms/{realm}/clients?clientId={client_id}"
"{keycloak_url}/admin/realms/{realm}/clients?clientId={client_id}"
))
.bearer_auth(admin_token)
.send()
@ -327,7 +340,7 @@ async fn restore_keycloak_remora_roles() -> Result<(), String> {
.ok_or_else(|| "keycloak client missing".to_owned())?;
let roles: Value = client
.get(format!(
"http://keycloak.remora.test:8080/admin/realms/{realm}/clients/{client_uuid}/roles"
"{keycloak_url}/admin/realms/{realm}/clients/{client_uuid}/roles"
))
.bearer_auth(admin_token)
.send()
@ -350,7 +363,7 @@ async fn restore_keycloak_remora_roles() -> Result<(), String> {
.collect::<Vec<_>>();
let response = client
.post(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}"
))
.bearer_auth(admin_token)
.json(&roles)