mirror of
https://github.com/logseq/logseq.git
synced 2026-05-05 11:26:26 +00:00
test(rtc): add insert-300-blocks case
This commit is contained in:
@@ -347,7 +347,7 @@
|
|||||||
(rollback repo block-ops-map-coll)
|
(rollback repo block-ops-map-coll)
|
||||||
;; else
|
;; else
|
||||||
(do (rollback repo block-ops-map-coll)
|
(do (rollback repo block-ops-map-coll)
|
||||||
(throw (ex-info "Unavailable" {:remote-ex remote-ex})))))
|
(throw (ex-info "Unavailable1" {:remote-ex remote-ex})))))
|
||||||
|
|
||||||
(do (assert (pos? (:t r)) r)
|
(do (assert (pos? (:t r)) r)
|
||||||
(r.remote-update/apply-remote-update
|
(r.remote-update/apply-remote-update
|
||||||
@@ -367,7 +367,7 @@
|
|||||||
:graph-lock-missing (throw r.ex/ex-remote-graph-lock-missing)
|
:graph-lock-missing (throw r.ex/ex-remote-graph-lock-missing)
|
||||||
:rtc.exception/get-s3-object-failed nil
|
:rtc.exception/get-s3-object-failed nil
|
||||||
;;else
|
;;else
|
||||||
(throw (ex-info "Unavailable" {:remote-ex remote-ex}))))
|
(throw (ex-info "Unavailable3" {:remote-ex remote-ex}))))
|
||||||
(do (assert (pos? (:t r)) r)
|
(do (assert (pos? (:t r)) r)
|
||||||
(r.remote-update/apply-remote-update
|
(r.remote-update/apply-remote-update
|
||||||
graph-uuid repo conn date-formatter {:type :remote-update :value r} add-log-fn)
|
graph-uuid repo conn date-formatter {:type :remote-update :value r} add-log-fn)
|
||||||
|
|||||||
@@ -259,4 +259,7 @@
|
|||||||
(def data-to-ws-encoder (m/encoder data-to-ws-schema (mt/transformer
|
(def data-to-ws-encoder (m/encoder data-to-ws-schema (mt/transformer
|
||||||
mt/string-transformer
|
mt/string-transformer
|
||||||
(mt/key-transformer {:encode m/-keyword->string}))))
|
(mt/key-transformer {:encode m/-keyword->string}))))
|
||||||
(def data-to-ws-coercer (m/coercer data-to-ws-schema mt/string-transformer nil #(m/-fail! ::data-to-ws-schema %)))
|
(def data-to-ws-coercer (m/coercer data-to-ws-schema mt/string-transformer nil
|
||||||
|
#(do
|
||||||
|
(prn ::data-to-ws-schema %)
|
||||||
|
(m/-fail! ::data-to-ws-schema %))))
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
:db-ident-blocks db-ident-blocks
|
:db-ident-blocks db-ident-blocks
|
||||||
:schema-version (get-schema-version db)}))]
|
:schema-version (get-schema-version db)}))]
|
||||||
(if-let [remote-ex (:ex-data r)]
|
(if-let [remote-ex (:ex-data r)]
|
||||||
(throw (ex-info "Unavailable" {:remote-ex remote-ex}))
|
(throw (ex-info "Unavailable2" {:remote-ex remote-ex}))
|
||||||
(let [server-only-db-ident-blocks (some-> (:server-only-db-ident-blocks r)
|
(let [server-only-db-ident-blocks (some-> (:server-only-db-ident-blocks r)
|
||||||
ldb/read-transit-str)]
|
ldb/read-transit-str)]
|
||||||
(when (seq server-only-db-ident-blocks)
|
(when (seq server-only-db-ident-blocks)
|
||||||
|
|||||||
@@ -25,7 +25,9 @@
|
|||||||
(testing "start rtc for client1"
|
(testing "start rtc for client1"
|
||||||
(m/? client1-edits/step2--task-start-rtc))
|
(m/? client1-edits/step2--task-start-rtc))
|
||||||
(testing "wait page1 synced"
|
(testing "wait page1 synced"
|
||||||
(m/? client1-edits/step3--task-wait-page1-synced))
|
(m/? client1-edits/step3--task-wait-page1-to-remote))
|
||||||
|
(testing "insert 300 blocks"
|
||||||
|
(m/? client1-edits/step4--task-insert-300-blocks-to-remote))
|
||||||
(done))
|
(done))
|
||||||
(m/sp
|
(m/sp
|
||||||
(testing "start rtc for client2"
|
(testing "start rtc for client2"
|
||||||
|
|||||||
@@ -34,13 +34,28 @@
|
|||||||
(let [r (m/? (rtc-core/new-task--rtc-start const/downloaded-test-repo const/test-token))]
|
(let [r (m/? (rtc-core/new-task--rtc-start const/downloaded-test-repo const/test-token))]
|
||||||
(is (nil? r)))))
|
(is (nil? r)))))
|
||||||
|
|
||||||
(def step3--task-wait-page1-synced
|
(def step3--task-wait-page1-to-remote
|
||||||
(m/sp
|
(m/sp
|
||||||
(let [r (m/? (m/timeout
|
(let [r (m/? (m/timeout
|
||||||
(m/reduce (fn [_ v]
|
(m/reduce (fn [_ v]
|
||||||
(when (and (= :rtc.log/push-local-update (:type v))
|
(when (and (= :rtc.log/push-local-update (:type v))
|
||||||
(empty? (client-op/get-all-ops const/downloaded-test-repo)))
|
(empty? (client-op/get-all-ops const/downloaded-test-repo)))
|
||||||
|
(is (nil? (:ex-data v)))
|
||||||
(reduced v)))
|
(reduced v)))
|
||||||
rtc-log-and-state/rtc-log-flow)
|
rtc-log-and-state/rtc-log-flow)
|
||||||
6000 :timeout))]
|
6000 :timeout))]
|
||||||
(is (not= :timeout r)))))
|
(is (not= :timeout r)))))
|
||||||
|
|
||||||
|
(def step4--task-insert-300-blocks-to-remote
|
||||||
|
(m/sp
|
||||||
|
(let [conn (helper/get-downloaded-test-conn)]
|
||||||
|
(batch-tx/with-batch-tx-mode conn {:e2e-test const/downloaded-test-repo :skip-store-conn true}
|
||||||
|
(d/transact! conn (const/tx-data-map :insert-300-blocks)))
|
||||||
|
(m/? (m/timeout
|
||||||
|
(m/reduce (fn [_ v]
|
||||||
|
(when (and (= :rtc.log/push-local-update (:type v))
|
||||||
|
(empty? (client-op/get-all-ops const/downloaded-test-repo)))
|
||||||
|
(is (nil? (:ex-data v)))
|
||||||
|
(reduced v)))
|
||||||
|
rtc-log-and-state/rtc-log-flow)
|
||||||
|
10000 :timeout)))))
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
(ns const
|
(ns const
|
||||||
"Consts for rtc e2e tests")
|
"Consts for rtc e2e tests"
|
||||||
|
(:require [logseq.db.frontend.order :as db-order]))
|
||||||
|
|
||||||
(assert (exists? js/__karma__))
|
(assert (exists? js/__karma__))
|
||||||
(def seed js/__karma__.config.seed)
|
(def seed js/__karma__.config.seed)
|
||||||
@@ -17,6 +18,7 @@
|
|||||||
|
|
||||||
;;; tests data
|
;;; tests data
|
||||||
(def page1-uuid #uuid "c051d36f-98b3-4afb-b52a-d5a06bd8591d")
|
(def page1-uuid #uuid "c051d36f-98b3-4afb-b52a-d5a06bd8591d")
|
||||||
|
(def page2-uuid #uuid "91d3e320-d2a6-47ae-96a7-8a366ab96cbb")
|
||||||
|
|
||||||
(def block1-uuid #uuid "aa6d5e60-5d3a-4468-812f-bd60dc9639fb")
|
(def block1-uuid #uuid "aa6d5e60-5d3a-4468-812f-bd60dc9639fb")
|
||||||
|
|
||||||
@@ -37,4 +39,23 @@
|
|||||||
:block/title "block1"
|
:block/title "block1"
|
||||||
:block/parent "page"
|
:block/parent "page"
|
||||||
:block/order "a0"
|
:block/order "a0"
|
||||||
:block/page "page"}]})
|
:block/page "page"}]
|
||||||
|
:insert-300-blocks
|
||||||
|
(cons {:db/id "page"
|
||||||
|
:block/uuid page2-uuid
|
||||||
|
:block/name "insert-400-blocks"
|
||||||
|
:block/title "insert-400-blocks"
|
||||||
|
:block/created-at 1725024677501
|
||||||
|
:block/updated-at 1725024677501
|
||||||
|
:block/type "page"
|
||||||
|
:block/format :markdown}
|
||||||
|
(map (fn [i order]
|
||||||
|
{:block/uuid (random-uuid)
|
||||||
|
:block/created-at 1725024677501
|
||||||
|
:block/updated-at 1725024677501
|
||||||
|
:block/format :markdown
|
||||||
|
:block/title (str "x" i)
|
||||||
|
:block/parent "page"
|
||||||
|
:block/order order
|
||||||
|
:block/page "page"})
|
||||||
|
(range 300) (db-order/gen-n-keys 300 "a0" "a1")))})
|
||||||
|
|||||||
Reference in New Issue
Block a user