Browse Source

Merge branch 'master' into refactor/page-parent

Tienson Qin 5 months ago
parent
commit
5894579a62

+ 9 - 1
clj-e2e/src/logseq/e2e/page.clj

@@ -2,7 +2,8 @@
   (:require [logseq.e2e.keyboard :as k]
             [logseq.e2e.util :as util]
             [wally.main :as w]
-            [wally.selectors :as ws])
+            [wally.selectors :as ws]
+            [logseq.e2e.block :as b])
   (:import (com.microsoft.playwright TimeoutError)))
 
 (defn goto-page
@@ -30,3 +31,10 @@
   (w/click "button[title='More']")
   (w/click "[role='menuitem'] div:text('Delete page')")
   (w/click "div[role='alertdialog'] button:text('ok')"))
+
+(defn rename-page
+  [old-page-name new-page-name]
+  (goto-page old-page-name)
+  (w/click "div[data-testid='page title']")
+  (b/save-block new-page-name)
+  (k/esc))

+ 62 - 1
clj-e2e/test/logseq/e2e/rtc_extra_test.clj

@@ -15,7 +15,8 @@
    [logseq.e2e.rtc :as rtc]
    [logseq.e2e.settings :as settings]
    [logseq.e2e.util :as util]
-   [wally.main :as w]))
+   [wally.main :as w]
+   [wally.repl :as repl]))
 
 (defn- prepare-rtc-graph-fixture
   "open 2 app instances, add a rtc graph, check this graph available on other instance"
@@ -286,3 +287,63 @@ page2:
           (k/enter)
           (b/indent)))
       (validate-2-graphs))))
+
+(deftest rtc-page-test
+  (let [prefix "rtc-page-test-"]
+    ;; (testing "create same name page in different clients.
+;; - client1: offline, create page1
+;; - client2: offline, create page1
+;; - restart rtc"
+;;       (rtc/with-stop-restart-rtc
+;;         [@*page1 @*page2]
+;;         [@*page1 (rtc/with-wait-tx-updated (b/new-block "pw1-done-1"))
+;;          @*page2 (rtc/with-wait-tx-updated (b/new-block "pw2-done-1"))]
+;;         (w/with-page @*page1
+;;           (page/new-page (str prefix 1)))
+;;         (w/with-page @*page2
+;;           (page/new-page (str prefix 1))))
+;;       (validate-2-graphs))
+
+;;     (testing "
+;; - client1: offline, add blocks on page-2
+;; - client2: offline, delete page-2"
+;;       (let [page-name (str prefix 2)]
+;;         (let [*latest-remote-tx (atom nil)]
+;;           (w/with-page @*page1
+;;             (let [{:keys [_local-tx remote-tx]}
+;;                   (rtc/with-wait-tx-updated
+;;                     (page/new-page page-name))]
+;;               (reset! *latest-remote-tx remote-tx)))
+;;           (w/with-page @*page2
+;;             (rtc/wait-tx-update-to @*latest-remote-tx)))
+;;         (validate-2-graphs)
+
+;;         (rtc/with-stop-restart-rtc
+;;           [@*page1 @*page2]
+;;           [@*page1 (rtc/with-wait-tx-updated (b/new-block "pw1-done-2"))
+;;            @*page2 (rtc/with-wait-tx-updated (b/new-block "pw2-done-2"))]
+;;           (w/with-page @*page1
+;;             (b/new-blocks (map #(str "block-" %) (range 5))))
+;;           (w/with-page @*page2
+;;             (page/delete-page page-name)))
+;;         (validate-2-graphs)))
+    (testing "page rename"
+      (let [page-name (str prefix 3)]
+        (let [*latest-remote-tx (atom nil)]
+          (w/with-page @*page1
+            (let [{:keys [_local-tx remote-tx]}
+                  (rtc/with-wait-tx-updated
+                    (page/new-page page-name))]
+              (reset! *latest-remote-tx remote-tx)))
+          (w/with-page @*page2
+            (rtc/wait-tx-update-to @*latest-remote-tx)))
+        (validate-2-graphs)
+        (rtc/with-stop-restart-rtc
+          [@*page1 @*page2]
+          [@*page1 (rtc/with-wait-tx-updated (b/new-block "pw1-done-3"))
+           @*page2 (rtc/with-wait-tx-updated (b/new-block "pw2-done-3"))]
+          (w/with-page @*page1
+            (page/rename-page page-name (str page-name "-rename1")))
+          (w/with-page @*page2
+            (page/rename-page page-name (str page-name "-rename2"))))
+        (validate-2-graphs)))))

+ 2 - 1
src/main/frontend/handler/paste.cljs

@@ -63,7 +63,8 @@
     (boolean (text-util/get-matched-video url))
     (util/format "{{video %s}}" url)
 
-    (or (string/includes? url "twitter.com") (string/includes? url "x.com"))
+    (or (re-matches #"^https://twitter\.com.*?$" url)
+        (re-matches #"^https://x\.com.*?$" url))
     (util/format "{{twitter %s}}" url)))
 
 (defn- try-parse-as-json