Jelajahi Sumber

test(e2e): title property change name tests

Junyi Du 3 tahun lalu
induk
melakukan
c1d6abaed7
2 mengubah file dengan 38 tambahan dan 1 penghapusan
  1. 26 1
      e2e-tests/page-rename.spec.ts
  2. 12 0
      e2e-tests/utils.ts

+ 26 - 1
e2e-tests/page-rename.spec.ts

@@ -1,6 +1,6 @@
 import { expect } from '@playwright/test'
 import { test } from './fixtures'
-import { IsMac, createPage, newBlock, newInnerBlock, randomString, lastBlock } from './utils'
+import { IsMac, createPage, randomLowerString, newBlock, newInnerBlock, randomString, lastBlock } from './utils'
 
 /***
  * Test rename feature
@@ -36,3 +36,28 @@ test('page rename test', async ({ page }) => {
   await page_rename_test(page, "abcd", "a.b.c.d")
   await page_rename_test(page, "abcd", "a/b/c/d")
 })
+
+// TODO introduce more samples when #4722 is fixed
+test('page title property test', async ({ page }) => {
+  // Edit Title Property and Double Enter (ETPDE)
+  // exit editing via insert new block
+  let rand = randomLowerString(10)
+  let original_name = "etpde old" + rand
+  let new_name = "etpde new" + rand
+  await createPage(page, original_name)
+   // add some spaces to test if it is trimmed
+  await page.type(':nth-match(textarea, 1)', 'title:: ' + new_name + "     ")
+  await page.press(':nth-match(textarea, 1)', 'Enter') // DWIM property mode creates new line
+  await page.press(':nth-match(textarea, 1)', 'Enter')
+  expect(await page.innerText('.page-title .title')).toBe(new_name)
+
+  // Edit Title Property and Esc (ETPE)
+  // exit editing via moving out focus
+  rand = randomLowerString(10)
+  original_name = "etpe old " + rand
+  new_name = "etpe new " + rand
+  await createPage(page, original_name)
+  await page.type(':nth-match(textarea, 1)', 'title:: ' + new_name)
+  await page.press(':nth-match(textarea, 1)', 'Escape')
+  expect(await page.innerText('.page-title .title')).toBe(new_name)
+})

+ 12 - 0
e2e-tests/utils.ts

@@ -19,6 +19,18 @@ export function randomString(length: number) {
   return result;
 }
 
+export function randomLowerString(length: number) {
+  const characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
+
+  let result = '';
+  const charactersLength = characters.length;
+  for (let i = 0; i < length; i++) {
+    result += characters.charAt(Math.floor(Math.random() * charactersLength));
+  }
+
+  return result;
+}
+
 export async function createRandomPage(page: Page) {
   const randomTitle = randomString(20)