2238d7391e
It seems a dialog sometimes appears asking if you want to lose changes (even though we have no changes; it seems based on timers in some way). Playwright defaults to dismissing them (so quickly you might not even see them) so accepting instead fixes navigation to the logout page getting canceled.
21 lines
857 B
TypeScript
21 lines
857 B
TypeScript
import { describe, test, expect } from "./baseFixture"
|
|
|
|
describe("logout", true, () => {
|
|
test("should be able logout", async ({ codeServerPage }) => {
|
|
// Click the Application menu
|
|
await codeServerPage.page.click("[aria-label='Application Menu']")
|
|
|
|
// See the Log out button
|
|
const logoutButton = "a.action-menu-item span[aria-label='Log out']"
|
|
expect(await codeServerPage.page.isVisible(logoutButton)).toBe(true)
|
|
|
|
await codeServerPage.page.hover(logoutButton)
|
|
|
|
// Recommended by Playwright for async navigation
|
|
// https://github.com/microsoft/playwright/issues/1987#issuecomment-620182151
|
|
await Promise.all([codeServerPage.page.waitForNavigation(), codeServerPage.page.click(logoutButton)])
|
|
const currentUrl = codeServerPage.page.url()
|
|
expect(currentUrl).toBe(`${await codeServerPage.address()}/login`)
|
|
})
|
|
})
|