test(e2e): examinate search results

pull/3880/head^2
Junyi Du 2022-01-12 12:31:58 +08:00 committed by Tienson Qin
parent 6c686c4ead
commit 9270c79078
2 changed files with 39 additions and 10 deletions

View File

@ -2,6 +2,12 @@ import { expect } from '@playwright/test'
import { test } from './fixtures'
import { IsMac, createRandomPage, newBlock, newInnerBlock, randomString, lastInnerBlock } from './utils'
/***
* Test alias features
* Test search refering features
* Consider diacritics
***/
async function alias_test (page, page_name: string){
let hotkeyOpenLink = 'Control+o'
let hotkeyBack = 'Control+['
@ -18,7 +24,7 @@ async function alias_test (page, page_name: string){
let alias_test_content_3 = randomString(20)
// shortcut opening test
await createRandomPage(page)
let parent_title = await createRandomPage(page)
await page.fill(':nth-match(textarea, 1)', '[[' + target_name + ']]')
await page.keyboard.press(hotkeyOpenLink)
@ -61,16 +67,39 @@ async function alias_test (page, page_name: string){
// TODO: test alias from graph clicking
// test alias from search clicking
// test alias from search
await page.click('#search-button')
await page.waitForSelector('[placeholder="Search or create page"]')
await page.fill('[placeholder="Search or create page"]', alias_name)
await page.waitForTimeout(500)
const results = await page.$$('#ui__ac-inner .block')
page.pause()
expect(results.length).toEqual(3) // 2 blocks + 1 page
await page.keyboard.press("Escape")
expect(results.length).toEqual(3) // page + block + alias property
await page.pause()
// test search results
expect(await results[0].innerText()).toContain("Alias -> " + target_name)
expect(await results[0].innerText()).toContain(alias_name)
expect(await results[1].innerText()).toContain(parent_title)
expect(await results[1].innerText()).toContain("[[" + alias_name + "]]")
expect(await results[2].innerText()).toContain(target_name)
expect(await results[2].innerText()).toContain("alias:: [[" + alias_name + "]]")
// test search entering (page)
await page.keyboard.press("Enter")
await lastInnerBlock(page)
expect(await page.inputValue(':nth-match(textarea, 1)')).toBe(alias_test_content_3)
await page.keyboard.press(hotkeyBack)
// 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"]', alias_name)
await page.waitForTimeout(500)
await page.click(":nth-match(.menu-link, 1)")
await lastInnerBlock(page)
expect(await page.inputValue(':nth-match(textarea, 1)')).toBe("[[" + alias_name + "]]")
await page.keyboard.press(hotkeyBack)
}
test('page alias', async ({ page }) => {

View File

@ -252,7 +252,8 @@
{:on-chosen (fn [{:keys [type data]}]
(case type
:page
(route/redirect-to-page! data)
(do (route/redirect-to-page! data)
(state/close-modal!))
:search
(let [q data]
(state/set-q! q)
@ -266,8 +267,7 @@
(search-handler/search (state/get-current-repo) q opts)
(search-handler/search (state/get-current-repo) q))))
nil)
(state/close-modal!))
nil))
:on-shift-chosen (fn [{:keys [type data]}]
(case type
:page
@ -286,7 +286,7 @@
:search [:div.flex-row.flex.search-item.font-medium
svg/search
[:span.ml-2 data]]
:page (let [original-name (model/get-page-original-name data)]
:page (when-let [original-name (model/get-page-original-name data)] ;; might be block reference
(search-result-item "Page" original-name))
nil))}))])