mirror of https://github.com/coder/code-server.git
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:
parent
43c6ffcb8f
commit
2238d7391e
|
@ -56,6 +56,11 @@ export const test = base.extend<TestFixtures>({
|
||||||
authenticated: false,
|
authenticated: false,
|
||||||
codeServer: undefined, // No default; should be provided through `test.use`.
|
codeServer: undefined, // No default; should be provided through `test.use`.
|
||||||
codeServerPage: async ({ authenticated, codeServer, page }, 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)
|
const codeServerPage = new CodeServerPage(codeServer, page)
|
||||||
await codeServerPage.setup(authenticated)
|
await codeServerPage.setup(authenticated)
|
||||||
await use(codeServerPage)
|
await use(codeServerPage)
|
||||||
|
|
|
@ -10,12 +10,6 @@ describe("logout", true, () => {
|
||||||
expect(await codeServerPage.page.isVisible(logoutButton)).toBe(true)
|
expect(await codeServerPage.page.isVisible(logoutButton)).toBe(true)
|
||||||
|
|
||||||
await codeServerPage.page.hover(logoutButton)
|
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
|
// Recommended by Playwright for async navigation
|
||||||
// https://github.com/microsoft/playwright/issues/1987#issuecomment-620182151
|
// https://github.com/microsoft/playwright/issues/1987#issuecomment-620182151
|
||||||
|
|
Loading…
Reference in New Issue