page-rename.spec.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { expect, Page } from '@playwright/test'
  2. import { test } from './fixtures'
  3. import { IsMac, createPage, randomLowerString, newBlock, newInnerBlock, randomString, lastBlock } from './utils'
  4. /***
  5. * Test rename feature
  6. ***/
  7. async function page_rename_test(page: Page, original_page_name: string, new_page_name: string) {
  8. let selectAll = 'Control+a'
  9. if (IsMac) {
  10. selectAll = 'Meta+a'
  11. }
  12. const rand = randomString(10)
  13. let original_name = original_page_name + rand
  14. let new_name = new_page_name + rand
  15. await createPage(page, original_name)
  16. await page.click('.ls-page-title .page-title')
  17. await page.waitForSelector('input[type="text"]')
  18. await page.keyboard.press(selectAll)
  19. await page.keyboard.press('Backspace')
  20. await page.type('.title input', new_name)
  21. await page.keyboard.press('Enter')
  22. await page.click('.ui__confirm-modal button')
  23. expect(await page.innerText('.page-title .title')).toBe(new_name)
  24. // TODO: Test if page is renamed in re-entrance
  25. // TODO: Test if page is hierarchy
  26. }
  27. test('page rename test', async ({ page }) => {
  28. await page_rename_test(page, "abcd", "a.b.c.d")
  29. await page_rename_test(page, "abcd", "a/b/c/d")
  30. })
  31. // TODO introduce more samples when #4722 is fixed
  32. test('page title property test', async ({ page }) => {
  33. // Edit Title Property and Double Enter (ETPDE)
  34. // exit editing via insert new block
  35. let rand = randomLowerString(10)
  36. let original_name = "etpde old" + rand
  37. let new_name = "etpde new" + rand
  38. await createPage(page, original_name)
  39. // add some spaces to test if it is trimmed
  40. await page.type(':nth-match(textarea, 1)', 'title:: ' + new_name + " ")
  41. await page.press(':nth-match(textarea, 1)', 'Enter') // DWIM property mode creates new line
  42. await page.press(':nth-match(textarea, 1)', 'Enter')
  43. expect(await page.innerText('.page-title .title')).toBe(new_name)
  44. // Edit Title Property and Esc (ETPE)
  45. // exit editing via moving out focus
  46. rand = randomLowerString(10)
  47. original_name = "etpe old " + rand
  48. new_name = "etpe new " + rand
  49. await createPage(page, original_name)
  50. await page.type(':nth-match(textarea, 1)', 'title:: ' + new_name)
  51. await page.press(':nth-match(textarea, 1)', 'Escape')
  52. expect(await page.innerText('.page-title .title')).toBe(new_name)
  53. })