mirror of https://github.com/logseq/logseq
test(e2e): examinate search results
parent
6c686c4ead
commit
9270c79078
|
@ -2,6 +2,12 @@ import { expect } from '@playwright/test'
|
||||||
import { test } from './fixtures'
|
import { test } from './fixtures'
|
||||||
import { IsMac, createRandomPage, newBlock, newInnerBlock, randomString, lastInnerBlock } from './utils'
|
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){
|
async function alias_test (page, page_name: string){
|
||||||
let hotkeyOpenLink = 'Control+o'
|
let hotkeyOpenLink = 'Control+o'
|
||||||
let hotkeyBack = 'Control+['
|
let hotkeyBack = 'Control+['
|
||||||
|
@ -18,7 +24,7 @@ async function alias_test (page, page_name: string){
|
||||||
let alias_test_content_3 = randomString(20)
|
let alias_test_content_3 = randomString(20)
|
||||||
|
|
||||||
// shortcut opening test
|
// shortcut opening test
|
||||||
await createRandomPage(page)
|
let parent_title = await createRandomPage(page)
|
||||||
|
|
||||||
await page.fill(':nth-match(textarea, 1)', '[[' + target_name + ']]')
|
await page.fill(':nth-match(textarea, 1)', '[[' + target_name + ']]')
|
||||||
await page.keyboard.press(hotkeyOpenLink)
|
await page.keyboard.press(hotkeyOpenLink)
|
||||||
|
@ -61,16 +67,39 @@ async function alias_test (page, page_name: string){
|
||||||
|
|
||||||
// TODO: test alias from graph clicking
|
// TODO: test alias from graph clicking
|
||||||
|
|
||||||
// test alias from search clicking
|
// test alias from search
|
||||||
await page.click('#search-button')
|
await page.click('#search-button')
|
||||||
await page.waitForSelector('[placeholder="Search or create page"]')
|
await page.waitForSelector('[placeholder="Search or create page"]')
|
||||||
await page.fill('[placeholder="Search or create page"]', alias_name)
|
await page.fill('[placeholder="Search or create page"]', alias_name)
|
||||||
|
|
||||||
await page.waitForTimeout(500)
|
await page.waitForTimeout(500)
|
||||||
|
|
||||||
const results = await page.$$('#ui__ac-inner .block')
|
const results = await page.$$('#ui__ac-inner .block')
|
||||||
page.pause()
|
expect(results.length).toEqual(3) // page + block + alias property
|
||||||
expect(results.length).toEqual(3) // 2 blocks + 1 page
|
await page.pause()
|
||||||
await page.keyboard.press("Escape")
|
|
||||||
|
// 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 }) => {
|
test('page alias', async ({ page }) => {
|
||||||
|
|
|
@ -252,7 +252,8 @@
|
||||||
{:on-chosen (fn [{:keys [type data]}]
|
{:on-chosen (fn [{:keys [type data]}]
|
||||||
(case type
|
(case type
|
||||||
:page
|
:page
|
||||||
(route/redirect-to-page! data)
|
(do (route/redirect-to-page! data)
|
||||||
|
(state/close-modal!))
|
||||||
:search
|
:search
|
||||||
(let [q data]
|
(let [q data]
|
||||||
(state/set-q! q)
|
(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 opts)
|
||||||
(search-handler/search (state/get-current-repo) q))))
|
(search-handler/search (state/get-current-repo) q))))
|
||||||
|
|
||||||
nil)
|
nil))
|
||||||
(state/close-modal!))
|
|
||||||
:on-shift-chosen (fn [{:keys [type data]}]
|
:on-shift-chosen (fn [{:keys [type data]}]
|
||||||
(case type
|
(case type
|
||||||
:page
|
:page
|
||||||
|
@ -286,7 +286,7 @@
|
||||||
:search [:div.flex-row.flex.search-item.font-medium
|
:search [:div.flex-row.flex.search-item.font-medium
|
||||||
svg/search
|
svg/search
|
||||||
[:span.ml-2 data]]
|
[: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))
|
(search-result-item "Page" original-name))
|
||||||
nil))}))])
|
nil))}))])
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue