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

fix: Renaming the homepage makes it no longer the homepage

sallto 3 жил өмнө
parent
commit
6dd2e69b23

+ 50 - 7
e2e-tests/page-rename.spec.ts

@@ -6,17 +6,12 @@ import { IsMac, createPage, randomLowerString, newBlock, newInnerBlock, randomSt
  * Test rename feature
  ***/
 
-async function page_rename_test(page: Page, original_page_name: string, new_page_name: string) {
+async function rename_page(page: Page, new_name: string) {
   let selectAll = 'Control+a'
   if (IsMac) {
     selectAll = 'Meta+a'
   }
 
-  const rand = randomString(10)
-  let original_name = original_page_name + rand
-  let new_name = new_page_name + rand
-
-  await createPage(page, original_name)
   await page.click('.ls-page-title .page-title')
   await page.waitForSelector('input[type="text"]')
   await page.keyboard.press(selectAll)
@@ -24,6 +19,17 @@ async function page_rename_test(page: Page, original_page_name: string, new_page
   await page.type('.title input', new_name)
   await page.keyboard.press('Enter')
   await page.click('.ui__confirm-modal button')
+}
+
+async function page_rename_test(page: Page, original_page_name: string, new_page_name: string) {
+  const rand = randomString(10)
+  let original_name = original_page_name + rand
+  let new_name = new_page_name + rand
+
+  await createPage(page, original_name)
+
+  // Rename page in UI
+  await rename_page(page, new_name)
 
   expect(await page.innerText('.page-title .title')).toBe(new_name)
 
@@ -32,9 +38,46 @@ async function page_rename_test(page: Page, original_page_name: string, new_page
   // TODO: Test if page is hierarchy
 }
 
+async function homepage_rename_test(page: Page, original_page_name: string, new_page_name: string) {
+
+  const rand = randomString(10)
+  let original_name = original_page_name + rand
+  let new_name = new_page_name + rand
+
+  await createPage(page, original_name)
+
+  // Toggle settings
+  await page.click('#main-content-container')
+  await page.keyboard.press('t')
+  await page.keyboard.press('s')
+
+  await page.click('a[data-id="features"]')
+  await page.click('#settings div:nth-child(1) a')
+
+  await page.type('input', original_name)
+  await page.click('[aria-label="Close"]')
+
+  expect(await page.locator('.home-nav span.flex-1').innerText()).toBe(original_name);
+
+  await rename_page(page, new_name)
+
+  expect(await page.locator('.home-nav span.flex-1').innerText()).toBe(new_name);
+
+  // Reenable journal
+  await page.click('#main-content-container')
+  await page.keyboard.press('t')
+  await page.keyboard.press('s')
+  await page.click('a[data-id="features"]')
+  await page.click('#settings div:nth-child(1) a')
+  await page.click('[aria-label="Close"]')
+
+}
+
 test('page rename test', async ({ page }) => {
+  await homepage_rename_test(page, "abcd", "a/b/c/d")
   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
@@ -45,7 +88,7 @@ test('page title property test', async ({ page }) => {
   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
+  // 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')

+ 5 - 0
src/main/frontend/handler/page.cljs

@@ -464,6 +464,11 @@
         (when (and file (not journal?))
           (rename-file! file new-file-name-body (fn [] nil)))
 
+
+        (let [home (get (state/get-config) :default-home {})]
+          (when (= old-page-name (string/lower-case (get home :page "")))
+            (config-handler/set-config! :default-home (assoc home :page new-name))))
+
         (rename-update-refs! page old-original-name new-name)
 
         (outliner-file/sync-to-file page))