test(e2e): alias test robustness 2

pull/7394/head^2
Junyi Du 2022-12-01 15:19:55 +08:00
parent 7efa4d8da6
commit a84a8028bd
5 changed files with 25 additions and 24 deletions

View File

@ -181,14 +181,6 @@ jobs:
DEBUG: "pw:api"
RELEASE: true # skip dev only test
- name: Save test artifacts - 1/2
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: e2e-test-report-1-of-2
path: e2e-dump/*
retention-days: 1
- name: Run Playwright test - 2/2
run: xvfb-run -- npx playwright test --reporter github --shard=2/2
env:
@ -196,10 +188,10 @@ jobs:
DEBUG: "pw:api"
RELEASE: true # skip dev only test
- name: Save test artifacts - 2/2
- name: Save test artifacts
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: e2e-test-report-2-of-2
name: e2e-test-report
path: e2e-dump/*
retention-days: 1

View File

@ -523,7 +523,7 @@ test('press escape when link/image dialog is open, should restore focus to input
})
test('should show text after soft return when node is collapsed #5074', async ({ page, block }) => {
const delay = 100
const delay = 300
await createRandomPage(page)
await page.type('textarea >> nth=0', 'Before soft return', { delay: 10 })
@ -549,6 +549,7 @@ test('should show text after soft return when node is collapsed #5074', async ({
// zoom into the block
page.click('a.block-control + a')
await page.waitForNavigation()
await page.waitForTimeout(delay * 3)
// select the block that has the soft return
await page.keyboard.press('ArrowDown')

View File

@ -83,6 +83,8 @@ test('Search CJK', async ({ page, block }) => {
})
async function alias_test( block: Block, page: Page, page_name: string, search_kws: string[] ) {
await createRandomPage(page)
const rand = randomString(10)
let target_name = page_name + ' target ' + rand
let alias_name = page_name + ' alias ' + rand
@ -90,10 +92,7 @@ async function alias_test( block: Block, page: Page, page_name: string, search_k
let alias_test_content_2 = randomString(20)
let alias_test_content_3 = randomString(20)
// shortcut opening test
let parent_title = await createRandomPage(page)
await page.fill('textarea >> nth=0', '[[' + target_name + ']]')
await page.type('textarea >> nth=0', '[[' + target_name)
await page.keyboard.press(hotkeyOpenLink)
await lastBlock(page)
@ -114,6 +113,7 @@ async function alias_test( block: Block, page: Page, page_name: string, search_k
page.keyboard.press(hotkeyBack)
await page.waitForNavigation()
await block.escapeEditing()
// create alias ref in origin Page
await block.activeEditing(0)
await block.enterNext()
@ -123,6 +123,7 @@ async function alias_test( block: Block, page: Page, page_name: string, search_k
page.keyboard.press(hotkeyOpenLink)
await page.waitForNavigation()
await block.escapeEditing()
// shortcut opening test
await block.activeEditing(1)
@ -133,6 +134,7 @@ async function alias_test( block: Block, page: Page, page_name: string, search_k
page.keyboard.press(hotkeyBack)
await page.waitForNavigation()
await block.escapeEditing()
// pressing enter on alias opening test
await block.activeEditing(1)
await page.press('textarea >> nth=0', 'ArrowLeft')
@ -140,6 +142,7 @@ async function alias_test( block: Block, page: Page, page_name: string, search_k
await page.press('textarea >> nth=0', 'ArrowLeft')
page.press('textarea >> nth=0', 'Enter')
await page.waitForNavigation()
await block.escapeEditing()
await block.activeEditing(2)
expect(await page.inputValue('textarea >> nth=0')).toBe(alias_test_content_2)
await newInnerBlock(page)
@ -147,6 +150,7 @@ async function alias_test( block: Block, page: Page, page_name: string, search_k
page.keyboard.press(hotkeyBack)
await page.waitForNavigation()
await block.escapeEditing()
// clicking alias ref opening test
await block.activeEditing(1)
await block.enterNext()
@ -163,7 +167,7 @@ async function alias_test( block: Block, page: Page, page_name: string, search_k
await page.click('#search-button')
await page.waitForSelector('[placeholder="Search or create page"]')
await page.fill('[placeholder="Search or create page"]', kw_name)
await page.type('[placeholder="Search or create page"]', kw_name)
await page.waitForTimeout(500)
const results = await page.$$('#ui__ac-inner>div')
@ -178,18 +182,18 @@ async function alias_test( block: Block, page: Page, page_name: string, search_k
// test search entering (page)
page.keyboard.press("Enter")
await page.waitForNavigation()
await lastBlock(page)
expect(await page.inputValue('textarea >> nth=0')).toBe(alias_test_content_3)
await page.waitForSelector('.ls-block span.inline')
expect(await page.locator('.ls-block span.inline >> nth=2').innerHTML()).toBe(alias_test_content_3)
// test search clicking (block)
await page.click('#search-button')
await page.waitForSelector('[placeholder="Search or create page"]')
await page.fill('[placeholder="Search or create page"]', kw_name)
await page.type('[placeholder="Search or create page"]', kw_name)
await page.waitForTimeout(500)
page.click(":nth-match(.search-result, 3)")
await page.waitForNavigation()
await block.activeEditing(1)
expect(await page.inputValue('textarea >> nth=0')).toBe("[[" + alias_name + "]]")
await page.waitForSelector('.selected a.page-ref')
expect(await page.locator('.selected a.page-ref').innerHTML()).toBe(alias_name)
await page.keyboard.press(hotkeyBack)
}

View File

@ -49,6 +49,7 @@ test('recent is updated #4320', async ({ page }) => {
// then jump back
await searchAndJumpToPage(page, page1)
await page.waitForTimeout(500)
expect(await firstRecent.textContent()).toContain(page1)
expect(await secondRecent.textContent()).toContain(page2)
})

View File

@ -65,9 +65,10 @@ export async function createPage(page: Page, page_name: string) {// Click #searc
export async function searchAndJumpToPage(page: Page, pageTitle: string) {
await page.click('#search-button')
await page.fill('[placeholder="Search or create page"]', pageTitle)
await page.type('[placeholder="Search or create page"]', pageTitle)
await page.waitForSelector(`[data-page-ref="${pageTitle}"]`, { state: 'visible' })
await page.click(`[data-page-ref="${pageTitle}"]`)
page.click(`[data-page-ref="${pageTitle}"]`)
await page.waitForNavigation()
return pageTitle;
}
@ -213,7 +214,9 @@ export async function loadLocalGraph(page: Page, path: string): Promise<void> {
// close it first so it doesn't cover up the UI
let locator = page.locator('.notification-close-button').first()
while (await locator?.isVisible()) {
await locator.click()
try { // don't fail if unable to click (likely disappeared already)
await locator.click()
} catch (error) {}
await page.waitForTimeout(250)
expect(locator.isVisible()).resolves.toBe(false)