|
@@ -1,71 +1,26 @@
|
|
|
(ns logseq.e2e.rtc-extra-test
|
|
(ns logseq.e2e.rtc-extra-test
|
|
|
(:require
|
|
(:require
|
|
|
[clojure.test :refer [deftest testing is use-fixtures run-test]]
|
|
[clojure.test :refer [deftest testing is use-fixtures run-test]]
|
|
|
- [com.climate.claypoole :as cp]
|
|
|
|
|
[logseq.e2e.assert :as assert]
|
|
[logseq.e2e.assert :as assert]
|
|
|
[logseq.e2e.block :as b]
|
|
[logseq.e2e.block :as b]
|
|
|
- [logseq.e2e.custom-report :as custom-report]
|
|
|
|
|
- [logseq.e2e.fixtures :as fixtures :refer [*page1 *page2]]
|
|
|
|
|
- [logseq.e2e.graph :as graph]
|
|
|
|
|
|
|
+ [logseq.e2e.const :refer [*page1 *page2]]
|
|
|
|
|
+ [logseq.e2e.fixtures :as fixtures]
|
|
|
[logseq.e2e.keyboard :as k]
|
|
[logseq.e2e.keyboard :as k]
|
|
|
[logseq.e2e.locator :as loc]
|
|
[logseq.e2e.locator :as loc]
|
|
|
[logseq.e2e.outliner-basic-test :as outliner-basic-test]
|
|
[logseq.e2e.outliner-basic-test :as outliner-basic-test]
|
|
|
[logseq.e2e.page :as page]
|
|
[logseq.e2e.page :as page]
|
|
|
[logseq.e2e.property-basic-test :as property-basic-test]
|
|
[logseq.e2e.property-basic-test :as property-basic-test]
|
|
|
- [logseq.e2e.rtc :as rtc]
|
|
|
|
|
- [logseq.e2e.settings :as settings]
|
|
|
|
|
|
|
+ [logseq.e2e.rtc :as rtc :refer [validate-graphs-in-2-pw-pages]]
|
|
|
[logseq.e2e.util :as util]
|
|
[logseq.e2e.util :as util]
|
|
|
[wally.main :as w]
|
|
[wally.main :as w]
|
|
|
[wally.repl :as repl]))
|
|
[wally.repl :as repl]))
|
|
|
|
|
|
|
|
-(defn- prepare-rtc-graph-fixture
|
|
|
|
|
- "open 2 app instances, add a rtc graph, check this graph available on other instance"
|
|
|
|
|
- [f]
|
|
|
|
|
- (let [graph-name (str "rtc-extra-test-graph-" (.toEpochMilli (java.time.Instant/now)))]
|
|
|
|
|
- (cp/prun!
|
|
|
|
|
- 2
|
|
|
|
|
- #(w/with-page %
|
|
|
|
|
- (settings/developer-mode)
|
|
|
|
|
- (w/refresh)
|
|
|
|
|
- (util/login-test-account))
|
|
|
|
|
- [@*page1 @*page2])
|
|
|
|
|
- (w/with-page @*page1
|
|
|
|
|
- (graph/new-graph graph-name true))
|
|
|
|
|
- (w/with-page @*page2
|
|
|
|
|
- (graph/wait-for-remote-graph graph-name)
|
|
|
|
|
- (graph/switch-graph graph-name true))
|
|
|
|
|
-
|
|
|
|
|
- (binding [custom-report/*preserve-graph* false]
|
|
|
|
|
- (f)
|
|
|
|
|
- ;; cleanup
|
|
|
|
|
- (if custom-report/*preserve-graph*
|
|
|
|
|
- (println "Don't remove graph: " graph-name)
|
|
|
|
|
- (w/with-page @*page2
|
|
|
|
|
- (graph/remove-remote-graph graph-name))))))
|
|
|
|
|
-
|
|
|
|
|
-(defn- new-logseq-page
|
|
|
|
|
- "new logseq page and switch to this page on both page1 and page2"
|
|
|
|
|
- [& [page-name]]
|
|
|
|
|
- (let [*page-name (atom nil)
|
|
|
|
|
- {:keys [_local-tx remote-tx]}
|
|
|
|
|
- (w/with-page @*page1
|
|
|
|
|
- (rtc/with-wait-tx-updated
|
|
|
|
|
- (reset! *page-name (fixtures/create-page page-name))))]
|
|
|
|
|
- (w/with-page @*page2
|
|
|
|
|
- (rtc/wait-tx-update-to remote-tx)
|
|
|
|
|
- (page/goto-page @*page-name))))
|
|
|
|
|
-
|
|
|
|
|
-(defn- new-logseq-page-fixture
|
|
|
|
|
- [f]
|
|
|
|
|
- (new-logseq-page)
|
|
|
|
|
- (f))
|
|
|
|
|
-
|
|
|
|
|
(use-fixtures :once
|
|
(use-fixtures :once
|
|
|
fixtures/open-2-pages
|
|
fixtures/open-2-pages
|
|
|
- prepare-rtc-graph-fixture)
|
|
|
|
|
|
|
+ (partial fixtures/prepare-rtc-graph-fixture "rtc-extra-test-graph"))
|
|
|
|
|
|
|
|
(use-fixtures :each
|
|
(use-fixtures :each
|
|
|
- new-logseq-page-fixture)
|
|
|
|
|
|
|
+ fixtures/new-logseq-page-in-rtc)
|
|
|
|
|
|
|
|
(defn- with-stop-restart-rtc
|
|
(defn- with-stop-restart-rtc
|
|
|
[pw-page f]
|
|
[pw-page f]
|
|
@@ -75,16 +30,6 @@
|
|
|
(w/with-page pw-page
|
|
(w/with-page pw-page
|
|
|
(rtc/rtc-start)))
|
|
(rtc/rtc-start)))
|
|
|
|
|
|
|
|
-(defn- validate-2-graphs
|
|
|
|
|
- []
|
|
|
|
|
- (let [[p1-summary p2-summary]
|
|
|
|
|
- (map
|
|
|
|
|
- (fn [p]
|
|
|
|
|
- (w/with-page p
|
|
|
|
|
- (graph/validate-graph)))
|
|
|
|
|
- [@*page1 @*page2])]
|
|
|
|
|
- (assert/assert-graph-summary-equal p1-summary p2-summary)))
|
|
|
|
|
-
|
|
|
|
|
(def status->icon-name
|
|
(def status->icon-name
|
|
|
{"Backlog" "Backlog"
|
|
{"Backlog" "Backlog"
|
|
|
"Todo" "Todo"
|
|
"Todo" "Todo"
|
|
@@ -151,7 +96,7 @@
|
|
|
[@*page1 (rtc/wait-tx-update-to @*latest-remote-tx)]
|
|
[@*page1 (rtc/wait-tx-update-to @*latest-remote-tx)]
|
|
|
(insert-task-blocks-in-page2 *latest-remote-tx))
|
|
(insert-task-blocks-in-page2 *latest-remote-tx))
|
|
|
(validate-task-blocks)
|
|
(validate-task-blocks)
|
|
|
- (validate-2-graphs)))
|
|
|
|
|
|
|
+ (validate-graphs-in-2-pw-pages)))
|
|
|
|
|
|
|
|
(testing "update task blocks while rtc disconnected on page1"
|
|
(testing "update task blocks while rtc disconnected on page1"
|
|
|
(let [*latest-remote-tx (atom nil)]
|
|
(let [*latest-remote-tx (atom nil)]
|
|
@@ -160,9 +105,9 @@
|
|
|
[@*page1 (rtc/wait-tx-update-to @*latest-remote-tx)]
|
|
[@*page1 (rtc/wait-tx-update-to @*latest-remote-tx)]
|
|
|
(update-task-blocks-in-page2 *latest-remote-tx))
|
|
(update-task-blocks-in-page2 *latest-remote-tx))
|
|
|
(validate-task-blocks)
|
|
(validate-task-blocks)
|
|
|
- (validate-2-graphs)))
|
|
|
|
|
|
|
+ (validate-graphs-in-2-pw-pages)))
|
|
|
|
|
|
|
|
- (new-logseq-page)
|
|
|
|
|
|
|
+ (fixtures/new-logseq-page-in-rtc*)
|
|
|
|
|
|
|
|
(testing "perform same operations on page2 while keeping rtc connected on page1"
|
|
(testing "perform same operations on page2 while keeping rtc connected on page1"
|
|
|
(let [*latest-remote-tx (atom nil)]
|
|
(let [*latest-remote-tx (atom nil)]
|
|
@@ -170,7 +115,7 @@
|
|
|
(w/with-page @*page1
|
|
(w/with-page @*page1
|
|
|
(rtc/wait-tx-update-to @*latest-remote-tx))
|
|
(rtc/wait-tx-update-to @*latest-remote-tx))
|
|
|
(validate-task-blocks)
|
|
(validate-task-blocks)
|
|
|
- (validate-2-graphs)))
|
|
|
|
|
|
|
+ (validate-graphs-in-2-pw-pages)))
|
|
|
|
|
|
|
|
(testing "update task blocks while rtc connected on page1"
|
|
(testing "update task blocks while rtc connected on page1"
|
|
|
(let [*latest-remote-tx (atom nil)]
|
|
(let [*latest-remote-tx (atom nil)]
|
|
@@ -178,7 +123,7 @@
|
|
|
(w/with-page @*page1
|
|
(w/with-page @*page1
|
|
|
(rtc/wait-tx-update-to @*latest-remote-tx))
|
|
(rtc/wait-tx-update-to @*latest-remote-tx))
|
|
|
(validate-task-blocks)
|
|
(validate-task-blocks)
|
|
|
- (validate-2-graphs)))))
|
|
|
|
|
|
|
+ (validate-graphs-in-2-pw-pages)))))
|
|
|
|
|
|
|
|
(deftest rtc-property-test
|
|
(deftest rtc-property-test
|
|
|
(let [insert-new-property-blocks-in-page2
|
|
(let [insert-new-property-blocks-in-page2
|
|
@@ -194,16 +139,16 @@
|
|
|
[@*page1]
|
|
[@*page1]
|
|
|
[@*page1 (rtc/wait-tx-update-to @*latest-remote-tx)]
|
|
[@*page1 (rtc/wait-tx-update-to @*latest-remote-tx)]
|
|
|
(insert-new-property-blocks-in-page2 *latest-remote-tx "rtc-property-test-1"))
|
|
(insert-new-property-blocks-in-page2 *latest-remote-tx "rtc-property-test-1"))
|
|
|
- (validate-2-graphs)))
|
|
|
|
|
|
|
+ (validate-graphs-in-2-pw-pages)))
|
|
|
|
|
|
|
|
- (new-logseq-page)
|
|
|
|
|
|
|
+ (fixtures/new-logseq-page-in-rtc*)
|
|
|
|
|
|
|
|
(testing "perform same operations on page2 while keeping rtc connected on page1"
|
|
(testing "perform same operations on page2 while keeping rtc connected on page1"
|
|
|
(let [*latest-remote-tx (atom nil)]
|
|
(let [*latest-remote-tx (atom nil)]
|
|
|
(insert-new-property-blocks-in-page2 *latest-remote-tx "rtc-property-test-2")
|
|
(insert-new-property-blocks-in-page2 *latest-remote-tx "rtc-property-test-2")
|
|
|
(w/with-page @*page1
|
|
(w/with-page @*page1
|
|
|
(rtc/wait-tx-update-to @*latest-remote-tx))
|
|
(rtc/wait-tx-update-to @*latest-remote-tx))
|
|
|
- (validate-2-graphs)))))
|
|
|
|
|
|
|
+ (validate-graphs-in-2-pw-pages)))))
|
|
|
|
|
|
|
|
(deftest rtc-outliner-test
|
|
(deftest rtc-outliner-test
|
|
|
(doseq [test-fn [outliner-basic-test/create-test-page-and-insert-blocks
|
|
(doseq [test-fn [outliner-basic-test/create-test-page-and-insert-blocks
|
|
@@ -218,12 +163,12 @@
|
|
|
(test-fn))]
|
|
(test-fn))]
|
|
|
(reset! *latest-remote-tx remote-tx))))
|
|
(reset! *latest-remote-tx remote-tx))))
|
|
|
*latest-remote-tx (atom nil)]
|
|
*latest-remote-tx (atom nil)]
|
|
|
- (new-logseq-page)
|
|
|
|
|
|
|
+ (fixtures/new-logseq-page-in-rtc*)
|
|
|
(rtc/with-stop-restart-rtc
|
|
(rtc/with-stop-restart-rtc
|
|
|
[@*page1]
|
|
[@*page1]
|
|
|
[@*page1 (rtc/wait-tx-update-to @*latest-remote-tx)]
|
|
[@*page1 (rtc/wait-tx-update-to @*latest-remote-tx)]
|
|
|
(test-fn-in-page2 *latest-remote-tx))
|
|
(test-fn-in-page2 *latest-remote-tx))
|
|
|
- (validate-2-graphs))))
|
|
|
|
|
|
|
+ (validate-graphs-in-2-pw-pages))))
|
|
|
|
|
|
|
|
(deftest rtc-outliner-conflict-update-test
|
|
(deftest rtc-outliner-conflict-update-test
|
|
|
(let [title-prefix "rtc-outliner-conflict-update-test"]
|
|
(let [title-prefix "rtc-outliner-conflict-update-test"]
|
|
@@ -236,7 +181,7 @@
|
|
|
(reset! *latest-remote-tx remote-tx)))
|
|
(reset! *latest-remote-tx remote-tx)))
|
|
|
(w/with-page @*page2
|
|
(w/with-page @*page2
|
|
|
(rtc/wait-tx-update-to @*latest-remote-tx))
|
|
(rtc/wait-tx-update-to @*latest-remote-tx))
|
|
|
- (validate-2-graphs)))
|
|
|
|
|
|
|
+ (validate-graphs-in-2-pw-pages)))
|
|
|
(testing "page1: indent block1 as child of block0, page2: delete block0"
|
|
(testing "page1: indent block1 as child of block0, page2: delete block0"
|
|
|
(rtc/with-stop-restart-rtc
|
|
(rtc/with-stop-restart-rtc
|
|
|
[@*page1 @*page2]
|
|
[@*page1 @*page2]
|
|
@@ -254,7 +199,7 @@
|
|
|
(w/with-page @*page2
|
|
(w/with-page @*page2
|
|
|
(w/click (format ".ls-block :text('%s')" (str title-prefix "-" 0)))
|
|
(w/click (format ".ls-block :text('%s')" (str title-prefix "-" 0)))
|
|
|
(b/delete-blocks)))
|
|
(b/delete-blocks)))
|
|
|
- (validate-2-graphs))
|
|
|
|
|
|
|
+ (validate-graphs-in-2-pw-pages))
|
|
|
(testing "
|
|
(testing "
|
|
|
origin:
|
|
origin:
|
|
|
- block2
|
|
- block2
|
|
@@ -286,7 +231,7 @@ page2:
|
|
|
(k/meta+shift+arrow-down)
|
|
(k/meta+shift+arrow-down)
|
|
|
(k/enter)
|
|
(k/enter)
|
|
|
(b/indent)))
|
|
(b/indent)))
|
|
|
- (validate-2-graphs))))
|
|
|
|
|
|
|
+ (validate-graphs-in-2-pw-pages))))
|
|
|
|
|
|
|
|
(deftest rtc-page-test
|
|
(deftest rtc-page-test
|
|
|
(let [prefix "rtc-page-test-"]
|
|
(let [prefix "rtc-page-test-"]
|
|
@@ -329,8 +274,8 @@ page2:
|
|
|
;; (validate-2-graphs)))
|
|
;; (validate-2-graphs)))
|
|
|
(testing "page rename"
|
|
(testing "page rename"
|
|
|
(let [page-name (str prefix 3)]
|
|
(let [page-name (str prefix 3)]
|
|
|
- (new-logseq-page page-name)
|
|
|
|
|
- (validate-2-graphs)
|
|
|
|
|
|
|
+ (fixtures/new-logseq-page-in-rtc* page-name)
|
|
|
|
|
+ (validate-graphs-in-2-pw-pages)
|
|
|
(rtc/with-stop-restart-rtc
|
|
(rtc/with-stop-restart-rtc
|
|
|
[@*page1 @*page2]
|
|
[@*page1 @*page2]
|
|
|
[@*page1 (rtc/with-wait-tx-updated (b/new-block "pw1-done-3"))
|
|
[@*page1 (rtc/with-wait-tx-updated (b/new-block "pw1-done-3"))
|
|
@@ -339,7 +284,7 @@ page2:
|
|
|
(page/rename-page page-name (str page-name "-rename1")))
|
|
(page/rename-page page-name (str page-name "-rename1")))
|
|
|
(w/with-page @*page2
|
|
(w/with-page @*page2
|
|
|
(page/rename-page page-name (str page-name "-rename2"))))
|
|
(page/rename-page page-name (str page-name "-rename2"))))
|
|
|
- (validate-2-graphs)))))
|
|
|
|
|
|
|
+ (validate-graphs-in-2-pw-pages)))))
|
|
|
|
|
|
|
|
(deftest long-block-title-test
|
|
(deftest long-block-title-test
|
|
|
(testing "insert >4KB block/title"
|
|
(testing "insert >4KB block/title"
|
|
@@ -350,6 +295,6 @@ page2:
|
|
|
(b/new-block long-block-title)))]
|
|
(b/new-block long-block-title)))]
|
|
|
(w/with-page @*page2
|
|
(w/with-page @*page2
|
|
|
(rtc/wait-tx-update-to remote-tx))
|
|
(rtc/wait-tx-update-to remote-tx))
|
|
|
- (validate-2-graphs)
|
|
|
|
|
|
|
+ (validate-graphs-in-2-pw-pages)
|
|
|
(w/with-page @*page2
|
|
(w/with-page @*page2
|
|
|
(assert/assert-is-visible (loc/filter ".block-title-wrap" :has-text long-block-title))))))
|
|
(assert/assert-is-visible (loc/filter ".block-title-wrap" :has-text long-block-title))))))
|