From bc7a7d6c6d36d8bdfaddd545452c0f317514eede Mon Sep 17 00:00:00 2001 From: rcmerci Date: Fri, 6 Sep 2024 13:33:58 +0800 Subject: [PATCH] test(rtc): fix case move-blocks-concurrently --- scripts/src/logseq/tasks/dev.clj | 5 ++++- src/rtc_e2e_test/client_steps.cljs | 20 ++++++++++++-------- src/rtc_e2e_test/helper.cljs | 23 ++++++++++++++++++++--- 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/scripts/src/logseq/tasks/dev.clj b/scripts/src/logseq/tasks/dev.clj index b5d6670251..001be4a277 100644 --- a/scripts/src/logseq/tasks/dev.clj +++ b/scripts/src/logseq/tasks/dev.clj @@ -27,10 +27,13 @@ (defn rtc-e2e-test "Run karma rtc-e2e-test" - [] + [& [skip-compile?]] (let [seed (hash (rand)) + r0 (when-not skip-compile? (shell (str "clj -M:rtc-e2e-test compile rtc-e2e-test"))) c1 (async/go (shell (str "npx karma start --testvar=client1 --single-run --seed=" seed))) c2 (async/go (shell (str "npx karma start --testvar=client2 --single-run --seed=" seed)))] + (when (and r0 (not= 0 (:exit r0))) + (throw (ex-info "compile failed" {:r r0}))) (prn :exit-code :client1 (:exit (async/> (:block/title first-block) (transit/read (transit/reader :json)))] + first-block-title (some->> (:block/title first-block) dt/read-transit-str)] (when-not (and (some? first-block-title) (block-title-pred-fn first-block-title)) (throw (ex-info (str "wait message from other client " retry-message) {:missionary/retry true}))) @@ -160,3 +160,20 @@ {:pre [(seq tx-data)]} (batch-tx/with-batch-tx-mode conn {:e2e-test const/downloaded-test-repo :skip-store-conn true} (d/transact! conn tx-data))) + +(def new-task--stop-rtc + (m/sp + (rtc.core/rtc-stop) + (let [r (m/? + (m/timeout + (m/reduce + (fn [_ v] + (when (= :rtc.log/cancelled (:type v)) + (log :debug-stop-rtc v) + (reduced v))) + rtc-log-and-state/rtc-log-flow) + 3000 + :timeout))] + (is (not= :timeout r)) + ;; sleep 0.1s to ensure *rtc-lock released + (m/? (m/sleep 100)))))