test(rtc): add insert-300-blocks case

This commit is contained in:
rcmerci
2024-08-30 22:30:44 +08:00
parent 4c5a861da8
commit fde4e0d3cf
6 changed files with 49 additions and 8 deletions

View File

@@ -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)

View File

@@ -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 %))))

View File

@@ -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)

View File

@@ -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"

View File

@@ -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)))))

View File

@@ -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")))})