mirror of https://github.com/logseq/logseq
test(e2e): alias test robustness 2
parent
7efa4d8da6
commit
a84a8028bd
|
@ -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
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
})
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue