diff --git a/e2e-tests/admin/tests/auth-method-oidc-vault.spec.js b/e2e-tests/admin/tests/auth-method-oidc-vault.spec.js index b935efc0c..b257dcfcf 100644 --- a/e2e-tests/admin/tests/auth-method-oidc-vault.spec.js +++ b/e2e-tests/admin/tests/auth-method-oidc-vault.spec.js @@ -4,6 +4,7 @@ */ import { test } from '../../global-setup.js'; +import { isAwsController } from '../../helpers/general.js'; import { expect } from '@playwright/test'; import { execSync } from 'child_process'; @@ -26,6 +27,7 @@ test.beforeEach(async () => { execSync(`vault auth disable userpass`); }); +/* eslint-disable playwright/no-conditional-in-test */ test( 'Set up OIDC auth method', { tag: ['@ce', '@ent', '@aws', '@docker'] }, @@ -36,18 +38,29 @@ test( adminAuthMethodId, adminLoginName, adminPassword, + vaultAddr, vaultAddrUnified, }) => { - await page.goto('/'); let orgName; let policyName; try { + await page.goto('/'); + const userName = 'end-user'; const password = 'password123'; const email = 'vault@hashicorp.com'; + + const isAws = await isAwsController(controllerAddr); + let vaultAddress; + if (isAws) { + vaultAddress = vaultAddr; + } else { + vaultAddress = vaultAddrUnified; + } + const { issuer, clientId, clientSecret, authPolicyName } = await vaultCli.setupVaultOidc( - vaultAddrUnified, + vaultAddress, userName, password, email, diff --git a/e2e-tests/helpers/general.js b/e2e-tests/helpers/general.js index c74b51c00..360d1c277 100644 --- a/e2e-tests/helpers/general.js +++ b/e2e-tests/helpers/general.js @@ -19,3 +19,18 @@ export async function checkEnv(envs) { throw new Error('Missing Environment Variables -- ' + missing); } } + +/** + * Checks if a controller address is an AWS controller by examining the hostname for 'amazonaws.com' + * @param {*} controllerAddr + * @returns + */ +export async function isAwsController(controllerAddr) { + try { + const { hostname } = new URL(controllerAddr); + return hostname === 'amazonaws.com' || hostname.endsWith('.amazonaws.com'); + } catch { + // If the URL is invalid, treat it as non-AWS. + return false; + } +}