From c1b6c2c5a5754736b351e48aabb1ee4b6e3d09a6 Mon Sep 17 00:00:00 2001 From: Alessio Gravili <70709113+AlessioGr@users.noreply.github.com> Date: Thu, 4 Apr 2024 09:07:44 -0400 Subject: [PATCH] chore: unflake versions e2e (#5616) --- test/versions/e2e.spec.ts | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/test/versions/e2e.spec.ts b/test/versions/e2e.spec.ts index a89edb77d1..a49ceb6bb1 100644 --- a/test/versions/e2e.spec.ts +++ b/test/versions/e2e.spec.ts @@ -65,12 +65,6 @@ const { beforeAll, beforeEach, describe } = test let payload: PayloadTestSDK const waitForAutoSaveToComplete = async (page: Page) => { - await expect(async () => { - await expect(page.locator('.autosave:has-text("Saving...")')).toBeVisible() - }).toPass({ - timeout: 45000, - }) - await expect(async () => { await expect( page.locator('.autosave:has-text("Last saved less than a minute ago")'), @@ -80,6 +74,16 @@ const waitForAutoSaveToComplete = async (page: Page) => { }) } +const waitForAutoSaveToRunAndComplete = async (page: Page) => { + await expect(async () => { + await expect(page.locator('.autosave:has-text("Saving...")')).toBeVisible() + }).toPass({ + timeout: 45000, + }) + + await waitForAutoSaveToComplete(page) +} + describe('versions', () => { let page: Page let url: AdminUrlUtil @@ -320,7 +324,7 @@ describe('versions', () => { const titleField = page.locator('#field-title') await titleField.fill('global title') - await waitForAutoSaveToComplete(page) + await waitForAutoSaveToRunAndComplete(page) await expect(titleField).toHaveValue('global title') // refresh the page and ensure value autosaved @@ -347,13 +351,13 @@ describe('versions', () => { // fill out en doc await titleField.fill(englishTitle) await descriptionField.fill('description') - await waitForAutoSaveToComplete(page) + await waitForAutoSaveToRunAndComplete(page) // change locale to spanish await changeLocale(page, es) // set localized title field await titleField.fill(spanishTitle) - await waitForAutoSaveToComplete(page) + await waitForAutoSaveToRunAndComplete(page) // change locale back to en await changeLocale(page, en) @@ -361,7 +365,7 @@ describe('versions', () => { await expect(titleField).toHaveValue(englishTitle) // change non-localized description field await descriptionField.fill(newDescription) - await waitForAutoSaveToComplete(page) + await waitForAutoSaveToRunAndComplete(page) // change locale to spanish await changeLocale(page, es) @@ -427,6 +431,7 @@ describe('versions', () => { await page.locator('#field-title').fill('first post title') await page.locator('#field-description').fill('first post description') await saveDocAndAssert(page) + await waitForAutoSaveToComplete(page) // Make sure nothing is auto-saving before next steps // create and save second doc await page.goto(autosaveURL.create) @@ -435,15 +440,19 @@ describe('versions', () => { await expect(() => expect(page.url()).not.toContain(`/create`)).toPass({ timeout: POLL_TOPASS_TIMEOUT, }) // Make sure this doesnt match for list view and /create view, but only for the ID edit view + + await waitForAutoSaveToComplete(page) // Make sure nothing is auto-saving before next steps + await page.locator('#field-title').fill('second post title') await page.locator('#field-description').fill('second post description') // publish changes await saveDocAndAssert(page) + await waitForAutoSaveToComplete(page) // Make sure nothing is auto-saving before next steps // update second doc and wait for autosave await page.locator('#field-title').fill('updated second post title') await page.locator('#field-description').fill('updated second post description') - await waitForAutoSaveToComplete(page) + await waitForAutoSaveToRunAndComplete(page) // verify that the first doc is unchanged await page.goto(autosaveURL.list)