Archived
1
0

Fix occasional logout failure

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.
This commit is contained in:
Asher 2021-06-25 12:05:13 -05:00
parent 43c6ffcb8f
commit 2238d7391e
No known key found for this signature in database
GPG Key ID: D63C1EF81242354A
2 changed files with 5 additions and 6 deletions

View File

@ -56,6 +56,11 @@ export const test = base.extend<TestFixtures>({
authenticated: false,
codeServer: undefined, // No default; should be provided through `test.use`.
codeServerPage: async ({ authenticated, codeServer, page }, use) => {
// It's possible code-server might prevent navigation because of unsaved
// changes (seems to happen based on timing even if no changes have been
// made too). In these cases just accept.
page.on("dialog", (d) => d.accept())
const codeServerPage = new CodeServerPage(codeServer, page)
await codeServerPage.setup(authenticated)
await use(codeServerPage)

View File

@ -10,12 +10,6 @@ describe("logout", true, () => {
expect(await codeServerPage.page.isVisible(logoutButton)).toBe(true)
await codeServerPage.page.hover(logoutButton)
// TODO(@jsjoeio)
// Look into how we're attaching the handlers for the logout feature
// We need to see how it's done upstream and add logging to the
// handlers themselves.
// They may be attached too slowly, hence why we need this timeout
await codeServerPage.page.waitForTimeout(2000)
// Recommended by Playwright for async navigation
// https://github.com/microsoft/playwright/issues/1987#issuecomment-620182151