page-rename.spec.ts 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import { expect, Page } from '@playwright/test'
  2. import { test } from './fixtures'
  3. import { createPage, randomLowerString, randomString, renamePage } 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. const rand = randomString(10)
  9. let original_name = original_page_name + rand
  10. let new_name = new_page_name + rand
  11. await createPage(page, original_name)
  12. // Rename page in UI
  13. await renamePage(page, new_name)
  14. expect(await page.innerText('.page-title .title')).toBe(new_name)
  15. // TODO: Test if page is renamed in re-entrance
  16. // TODO: Test if page is hierarchy
  17. }
  18. async function homepage_rename_test(page: Page, original_page_name: string, new_page_name: string) {
  19. const rand = randomString(10)
  20. let original_name = original_page_name + rand
  21. let new_name = new_page_name + rand
  22. await createPage(page, original_name)
  23. // Toggle settings
  24. await page.click('#main-content-container')
  25. await page.keyboard.press('t')
  26. await page.keyboard.press('s')
  27. await page.click('a[data-id="features"]')
  28. await page.click('#settings div:nth-child(1) a')
  29. await page.type('input', original_name)
  30. await page.click('[aria-label="Close"]')
  31. expect(await page.locator('.home-nav span.flex-1').innerText()).toBe(original_name);
  32. await renamePage(page, new_name)
  33. expect(await page.locator('.home-nav span.flex-1').innerText()).toBe(new_name);
  34. // Reenable journal
  35. await page.click('#main-content-container')
  36. await page.keyboard.press('t')
  37. await page.keyboard.press('s')
  38. await page.click('a[data-id="features"]')
  39. await page.click('#settings div:nth-child(1) a')
  40. await page.click('[aria-label="Close"]')
  41. }
  42. test('page rename test', async ({ page }) => {
  43. // TODO: Fix commented out test. Started failing after https://github.com/logseq/logseq/pull/6945
  44. // await homepage_rename_test(page, "abcd", "a/b/c/d")
  45. await page_rename_test(page, "abcd", "a.b.c.d")
  46. await page_rename_test(page, "abcd", "a/b/c/d")
  47. })
  48. // TODO introduce more samples when #4722 is fixed
  49. test('page title property test', async ({ page }) => {
  50. // Edit Title Property and Double Enter (ETPDE)
  51. // exit editing via insert new block
  52. let rand = randomLowerString(10)
  53. let original_name = "etpde old" + rand
  54. let new_name = "etpde new" + rand
  55. await createPage(page, original_name)
  56. // add some spaces to test if it is trimmed
  57. await page.type(':nth-match(textarea, 1)', 'title:: ' + new_name + " ")
  58. await page.press(':nth-match(textarea, 1)', 'Enter') // DWIM property mode creates new line
  59. await page.press(':nth-match(textarea, 1)', 'Enter')
  60. expect(await page.innerText('.page-title .title')).toBe(new_name)
  61. // Edit Title Property and Esc (ETPE)
  62. // exit editing via moving out focus
  63. rand = randomLowerString(10)
  64. original_name = "etpe old " + rand
  65. new_name = "etpe new " + rand
  66. await createPage(page, original_name)
  67. await page.type(':nth-match(textarea, 1)', 'title:: ' + new_name)
  68. await page.press(':nth-match(textarea, 1)', 'Escape')
  69. expect(await page.innerText('.page-title .title')).toBe(new_name)
  70. })