Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { test, type Page, type APIRequestContext, expect } from '@playwright/test'
import { createContext, closeContext } from '../../../../support/helpers/actorHelper'
import { LoginPage } from '../../../../support/pages/loginPage'
import { loginAsUser, logout } from '../../../../support/helpers/authHelper'
import { GroupManagementPage } from '../../../../support/pages/groupManagementPage'

const TEST_GROUP = 'e2e group management'
Expand Down Expand Up @@ -28,28 +27,14 @@ async function deleteTestGroup(request: APIRequestContext): Promise<void> {

test.describe('Group Management', () => {
test.beforeEach(async ({ browser, request }) => {
const { page } = await createContext(browser)
const loginPage = new LoginPage(page)
await page.goto('/')
await Promise.all([
page.waitForResponse(
(resp) =>
resp.url().endsWith('logon') &&
resp.status() === 200 &&
resp.request().method() === 'POST'
),
loginPage.login('admin', 'admin')
])
const { page } = await loginAsUser(browser, 'admin', 'admin')
adminPage = page
await deleteTestGroup(request)
})

test.afterEach(async ({ request }) => {
await deleteTestGroup(request)
const context = adminPage.context()
const loginPage = new LoginPage(adminPage)
await loginPage.logout()
await closeContext(context)
await logout(adminPage)
})

test('renders the group management app', async () => {
Expand Down
3 changes: 3 additions & 0 deletions support/helpers/authHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ export async function loginAsUser(
),
loginPage.login(username, password)
])
// Wait for the OIDC callback to fully complete so callers can safely call
// page.goto() without racing against the in-flight redirect.
await loginPage.myAccount.waitFor({ state: 'visible', timeout: 30000 })
return { page }
}

Expand Down