diff --git a/frontend/e2e/setup/admin-auth-refresh.setup.ts b/frontend/e2e/setup/admin-auth-refresh.setup.ts new file mode 100644 index 00000000000..46d72aba752 --- /dev/null +++ b/frontend/e2e/setup/admin-auth-refresh.setup.ts @@ -0,0 +1,18 @@ +import * as path from 'path'; + +import { test as setup } from '@playwright/test'; + +import { performLogin, saveStorageState } from './login-helper'; + +const adminStorageState = path.resolve(import.meta.dirname, '..', '.auth', 'kubeadmin.json'); + +setup('refresh kubeadmin session', async ({ page }) => { + setup.skip(process.env.SKIP_GLOBAL_SETUP === 'true', 'SKIP_GLOBAL_SETUP is set'); + + const baseURL = process.env.WEB_CONSOLE_URL || 'http://localhost:9000'; + const username = process.env.OPENSHIFT_USERNAME || 'kubeadmin'; + const password = process.env.BRIDGE_KUBEADMIN_PASSWORD || ''; + + await performLogin(page, baseURL, username, password, 'kube:admin'); + await saveStorageState(page, adminStorageState); +}); diff --git a/frontend/playwright.config.ts b/frontend/playwright.config.ts index e301d244394..851060840d3 100644 --- a/frontend/playwright.config.ts +++ b/frontend/playwright.config.ts @@ -15,16 +15,8 @@ const adminStorageState = path.resolve(__dirname, 'e2e', '.auth', 'kubeadmin.jso const developerStorageState = path.resolve(__dirname, 'e2e', '.auth', 'developer.json'); const hasDeveloper = !!process.env.BRIDGE_HTPASSWD_USERNAME; -const packages = [ - 'smoke', - 'console', - 'dev-console', - 'helm', - 'knative', - 'olm', - 'topology', - 'webterminal', -]; +const earlyPackages = ['smoke', 'console']; +const latePackages = ['dev-console', 'helm', 'knative', 'olm', 'topology', 'webterminal']; // Packages that also have developer-persona tests const devPackages = ['smoke', 'dev-console', 'topology', 'webterminal']; @@ -127,7 +119,7 @@ export default defineConfig({ testMatch: 'teardown.setup.ts', }, - ...packages.map((pkg) => ({ + ...earlyPackages.map((pkg) => ({ name: pkg, testDir: path.resolve(__dirname, 'e2e', 'tests', pkg), testIgnore: '**/developer/**', @@ -137,6 +129,29 @@ export default defineConfig({ storageState: adminStorageState, }, })), + { + name: 'admin-auth-refresh', + testDir: path.resolve(__dirname, 'e2e', 'setup'), + testMatch: 'admin-auth-refresh.setup.ts', + dependencies: earlyPackages, + use: { + ...chrome, + ignoreHTTPSErrors: true, + launchOptions: { + args: chromeArgs, + }, + }, + }, + ...latePackages.map((pkg) => ({ + name: pkg, + testDir: path.resolve(__dirname, 'e2e', 'tests', pkg), + testIgnore: '**/developer/**', + dependencies: ['admin-auth-refresh'], + use: { + ...chrome, + storageState: adminStorageState, + }, + })), ...(hasDeveloper ? devPackages.map((pkg) => ({ name: `${pkg}-developer`,