1
0
Эх сурвалжийг харах

test(e2e): examinate search results

Junyi Du 3 жил өмнө
parent
commit
9270c79078

+ 35 - 6
e2e-tests/page-refs.spec.ts

@@ -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 }) => {

+ 4 - 4
src/main/frontend/components/search.cljs

@@ -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))}))])