mirror of
https://github.com/logseq/logseq.git
synced 2026-05-02 09:56:31 +00:00
test(rtc): add insert-300-blocks case
This commit is contained in:
@@ -347,7 +347,7 @@
|
||||
(rollback repo block-ops-map-coll)
|
||||
;; else
|
||||
(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)
|
||||
(r.remote-update/apply-remote-update
|
||||
@@ -367,7 +367,7 @@
|
||||
:graph-lock-missing (throw r.ex/ex-remote-graph-lock-missing)
|
||||
:rtc.exception/get-s3-object-failed nil
|
||||
;;else
|
||||
(throw (ex-info "Unavailable" {:remote-ex remote-ex}))))
|
||||
(throw (ex-info "Unavailable3" {:remote-ex remote-ex}))))
|
||||
(do (assert (pos? (:t r)) r)
|
||||
(r.remote-update/apply-remote-update
|
||||
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
|
||||
mt/string-transformer
|
||||
(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
|
||||
:schema-version (get-schema-version db)}))]
|
||||
(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)
|
||||
ldb/read-transit-str)]
|
||||
(when (seq server-only-db-ident-blocks)
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
(testing "start rtc for client1"
|
||||
(m/? client1-edits/step2--task-start-rtc))
|
||||
(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))
|
||||
(m/sp
|
||||
(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))]
|
||||
(is (nil? r)))))
|
||||
|
||||
(def step3--task-wait-page1-synced
|
||||
(def step3--task-wait-page1-to-remote
|
||||
(m/sp
|
||||
(let [r (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)
|
||||
6000 :timeout))]
|
||||
(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
|
||||
"Consts for rtc e2e tests")
|
||||
"Consts for rtc e2e tests"
|
||||
(:require [logseq.db.frontend.order :as db-order]))
|
||||
|
||||
(assert (exists? js/__karma__))
|
||||
(def seed js/__karma__.config.seed)
|
||||
@@ -17,6 +18,7 @@
|
||||
|
||||
;;; tests data
|
||||
(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")
|
||||
|
||||
@@ -37,4 +39,23 @@
|
||||
:block/title "block1"
|
||||
:block/parent "page"
|
||||
: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