Browse Source

test(e2e): improve search modal e2e stability

Junyi Du 2 years ago
parent
commit
6b0ad475f8
2 changed files with 9 additions and 7 deletions
  1. 2 1
      e2e-tests/page-rename.spec.ts
  2. 7 6
      e2e-tests/util/search-modal.ts

+ 2 - 1
e2e-tests/page-rename.spec.ts

@@ -1,6 +1,6 @@
 import { expect, Page } from '@playwright/test'
 import { test } from './fixtures'
-import { createPage, randomLowerString, randomString, renamePage, searchPage } from './utils'
+import { closeSearchBox, createPage, randomLowerString, randomString, renamePage, searchPage } from './utils'
 
 /***
  * Test rename feature
@@ -73,6 +73,7 @@ test('page rename test', async ({ page }) => {
   const thirdResultRow = await results[2].innerText()
   expect(thirdResultRow).toContain("dCBA_");
   expect(thirdResultRow).not.toContain("DcBA_");
+  await closeSearchBox(page)
 })
 
 // TODO introduce more samples when #4722 is fixed

+ 7 - 6
e2e-tests/util/search-modal.ts

@@ -39,6 +39,12 @@ export async function createRandomPage(page: Page) {
     return pageTitle;
   }
   
+  export async function closeSearchBox(page: Page): Promise<void> {
+    await page.keyboard.press("Escape") // escape (potential) search box typing
+    await page.waitForTimeout(500)
+    await page.keyboard.press("Escape") // escape modal
+  }
+
   /**
    * type a search query into the search box
    * stop at the point where search box shows up
@@ -48,6 +54,7 @@ export async function createRandomPage(page: Page) {
    * @returns the HTML element for the search results ui
    */
   export async function searchPage(page: Page, query: string): Promise<ElementHandle<SVGElement | HTMLElement>[]>{
+    await closeSearchBox(page)
     await page.click('#search-button')
     await page.waitForSelector('[placeholder="Search or create page"]')
     await page.type('[placeholder="Search or create page"]', query, { delay: 10 })
@@ -55,9 +62,3 @@ export async function createRandomPage(page: Page) {
   
     return page.$$('#ui__ac-inner>div');
   }
-  
-  export async function closeSearchBox(page: Page): Promise<void> {
-    await page.keyboard.press("Escape") // escape (potential) search box typing
-    await page.waitForTimeout(500)
-    await page.keyboard.press("Escape") // escape modal
-  }