fix: use token auth in E2E — handle direct /token redirect #97
@@ -32,9 +32,6 @@ jobs:
|
|||||||
- name: Setup kubectl
|
- name: Setup kubectl
|
||||||
uses: azure/setup-kubectl@v4
|
uses: azure/setup-kubectl@v4
|
||||||
|
|
||||||
- name: Setup Helm
|
|
||||||
uses: azure/setup-helm@v4
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
@@ -61,8 +58,6 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
HEADLAMP_URL: ${{ env.HEADLAMP_URL }}
|
HEADLAMP_URL: ${{ env.HEADLAMP_URL }}
|
||||||
HEADLAMP_TOKEN: ${{ env.HEADLAMP_TOKEN }}
|
HEADLAMP_TOKEN: ${{ env.HEADLAMP_TOKEN }}
|
||||||
AUTHENTIK_USERNAME: ${{ secrets.AUTHENTIK_USERNAME }}
|
|
||||||
AUTHENTIK_PASSWORD: ${{ secrets.AUTHENTIK_PASSWORD }}
|
|
||||||
|
|
||||||
- name: Teardown E2E instance
|
- name: Teardown E2E instance
|
||||||
if: always()
|
if: always()
|
||||||
|
|||||||
+8
-5
@@ -39,13 +39,16 @@ async function authenticateWithOIDC(page: Page, username: string, password: stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function authenticateWithToken(page: Page, token: string): Promise<void> {
|
async function authenticateWithToken(page: Page, token: string): Promise<void> {
|
||||||
// Navigate to login — Headlamp redirects / to /c/main/login
|
|
||||||
await page.goto('/');
|
await page.goto('/');
|
||||||
await page.waitForURL('**/login');
|
// Headlamp goes to /token directly when no OIDC is configured,
|
||||||
|
// or through /login when OIDC is configured
|
||||||
|
await page.waitForURL(/\/(login|token)$/);
|
||||||
|
|
||||||
// Click the token auth option
|
if (page.url().includes('/login')) {
|
||||||
await page.getByRole('button', { name: /use a token/i }).click();
|
// OIDC login page — click "use a token" to reach token auth
|
||||||
await page.waitForURL('**/token');
|
await page.getByRole('button', { name: /use a token/i }).click();
|
||||||
|
await page.waitForURL('**/token');
|
||||||
|
}
|
||||||
|
|
||||||
// Fill the "ID token" field and submit
|
// Fill the "ID token" field and submit
|
||||||
await page.getByRole('textbox', { name: /id token/i }).fill(token);
|
await page.getByRole('textbox', { name: /id token/i }).fill(token);
|
||||||
|
|||||||
Reference in New Issue
Block a user