mirror of
https://github.com/logseq/logseq.git
synced 2026-04-24 22:25:01 +00:00
test(rtc): launch two clients at the same time
This commit is contained in:
3
bb.edn
3
bb.edn
@@ -146,6 +146,9 @@
|
|||||||
dev:lint-and-test
|
dev:lint-and-test
|
||||||
logseq.tasks.dev/lint-and-test
|
logseq.tasks.dev/lint-and-test
|
||||||
|
|
||||||
|
dev:rtc-e2e-test
|
||||||
|
logseq.tasks.dev/rtc-e2e-test
|
||||||
|
|
||||||
dev:gen-malli-kondo-config
|
dev:gen-malli-kondo-config
|
||||||
logseq.tasks.dev/gen-malli-kondo-config
|
logseq.tasks.dev/gen-malli-kondo-config
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ module.exports = function (config) {
|
|||||||
client: {
|
client: {
|
||||||
args: ["shadow.test.karma.init"],
|
args: ["shadow.test.karma.init"],
|
||||||
singleRun: true,
|
singleRun: true,
|
||||||
testvar: config.testvar
|
testvar: config.testvar,
|
||||||
|
seed: config.seed
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -9,7 +9,8 @@
|
|||||||
[clojure.java.io :as io]
|
[clojure.java.io :as io]
|
||||||
[clojure.pprint :as pp]
|
[clojure.pprint :as pp]
|
||||||
[clojure.edn :as edn]
|
[clojure.edn :as edn]
|
||||||
[clojure.data :as data]))
|
[clojure.data :as data]
|
||||||
|
[clojure.core.async :as async]))
|
||||||
|
|
||||||
(defn test
|
(defn test
|
||||||
"Run tests. Pass args through to cmd 'yarn cljs:run-test'"
|
"Run tests. Pass args through to cmd 'yarn cljs:run-test'"
|
||||||
@@ -24,6 +25,14 @@
|
|||||||
(dev-lint/dev)
|
(dev-lint/dev)
|
||||||
(test "-e" "long" "-e" "fix-me"))
|
(test "-e" "long" "-e" "fix-me"))
|
||||||
|
|
||||||
|
(defn rtc-e2e-test
|
||||||
|
"Run karma rtc-e2e-test"
|
||||||
|
[]
|
||||||
|
(let [seed (hash (rand))
|
||||||
|
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)))]
|
||||||
|
(prn :exit-code :client1 (:exit (async/<!! c1)) :client2 (:exit (async/<!! c2)))))
|
||||||
|
|
||||||
(defn gen-malli-kondo-config
|
(defn gen-malli-kondo-config
|
||||||
"Generate clj-kondo type-mismatch config from malli schema
|
"Generate clj-kondo type-mismatch config from malli schema
|
||||||
.clj-kondo/metosin/malli-types/config.edn"
|
.clj-kondo/metosin/malli-types/config.edn"
|
||||||
|
|||||||
@@ -92,6 +92,7 @@
|
|||||||
:rtc-e2e-test {:target :karma
|
:rtc-e2e-test {:target :karma
|
||||||
:closure-defines {frontend.worker.rtc.const/RTC-E2E-TEST* true}
|
:closure-defines {frontend.worker.rtc.const/RTC-E2E-TEST* true}
|
||||||
:output-to "static/rtc-e2e-test/main.js"
|
:output-to "static/rtc-e2e-test/main.js"
|
||||||
|
:devtools {:enabled true}
|
||||||
:compiler-options {:source-map true
|
:compiler-options {:source-map true
|
||||||
:warnings {:fn-deprecated false
|
:warnings {:fn-deprecated false
|
||||||
:redef false}}}
|
:redef false}}}
|
||||||
|
|||||||
@@ -1,93 +1,31 @@
|
|||||||
(ns basic-edits-test
|
(ns basic-edits-test
|
||||||
(:require [cljs.test :as t :refer [deftest is testing]]
|
(:require [client1-edits]
|
||||||
|
[cljs.test :as t :refer [deftest testing]]
|
||||||
[const]
|
[const]
|
||||||
[datascript.core :as d]
|
|
||||||
[fixture]
|
[fixture]
|
||||||
[frontend.worker.rtc.client-op :as client-op]
|
|
||||||
[frontend.worker.rtc.core :as rtc-core]
|
|
||||||
[frontend.worker.rtc.log-and-state :as rtc-log-and-state]
|
|
||||||
[helper]
|
[helper]
|
||||||
[logseq.outliner.batch-tx :as batch-tx]
|
|
||||||
[meander.epsilon :as me]
|
|
||||||
[missionary.core :as m]))
|
[missionary.core :as m]))
|
||||||
|
|
||||||
(when (exists? js/__karma__)
|
|
||||||
(prn :config.testvar js/__karma__.config.testvar))
|
|
||||||
|
|
||||||
(t/use-fixtures :once
|
(t/use-fixtures :once
|
||||||
fixture/install-some-consts
|
fixture/install-some-consts
|
||||||
fixture/install-example-db-fixture
|
fixture/install-example-db-fixture
|
||||||
fixture/clear-test-remote-graphs-fixture
|
fixture/clear-test-remote-graphs-fixture
|
||||||
fixture/build-two-conns-by-download-example-graph-fixture)
|
fixture/upload-example-graph-fixture
|
||||||
|
fixture/build-conn-by-download-example-graph-fixture)
|
||||||
(defn- simplify-client-op
|
|
||||||
[client-op]
|
|
||||||
#_:clj-kondo/ignore
|
|
||||||
(me/find
|
|
||||||
client-op
|
|
||||||
[?op-type _ {:block-uuid ?block-uuid :av-coll [[!a !v _ !add] ...]}]
|
|
||||||
[?op-type ?block-uuid (map vector !a !v !add)]
|
|
||||||
|
|
||||||
[?op-type _ {:block-uuid ?block-uuid}]
|
|
||||||
[?op-type ?block-uuid]))
|
|
||||||
|
|
||||||
(def ^:private page-uuid1 (random-uuid))
|
|
||||||
(def ^:private block-uuid1 (random-uuid))
|
|
||||||
|
|
||||||
(def ^:private tx-data-map
|
|
||||||
{:create-page
|
|
||||||
[{:db/id "page"
|
|
||||||
:block/name "basic-edits-test"
|
|
||||||
:block/title "basic-edits-test"
|
|
||||||
:block/uuid page-uuid1
|
|
||||||
:block/created-at 1724836490809
|
|
||||||
:block/updated-at 1724836490809
|
|
||||||
:block/type "page"
|
|
||||||
:block/format :markdown}
|
|
||||||
{:block/uuid block-uuid1
|
|
||||||
:block/updated-at 1724836490810
|
|
||||||
:block/created-at 1724836490810
|
|
||||||
:block/format :markdown
|
|
||||||
:block/title "block1"
|
|
||||||
:block/parent "page"
|
|
||||||
:block/order "a0"
|
|
||||||
:block/page "page"}]})
|
|
||||||
|
|
||||||
(deftest basic-edits-test
|
(deftest basic-edits-test
|
||||||
(let [conn1 (helper/get-downloaded-test-conn)]
|
(t/async
|
||||||
(t/async
|
done
|
||||||
done
|
(js/Promise.
|
||||||
(js/Promise.
|
(if const/is-client1?
|
||||||
(m/sp
|
(m/sp
|
||||||
(testing "create page first"
|
(testing "create page first"
|
||||||
(let [tx-data (tx-data-map :create-page)]
|
(client1-edits/step1--create-page))
|
||||||
(batch-tx/with-batch-tx-mode conn1 {:e2e-test const/downloaded-test-repo}
|
|
||||||
(d/transact! conn1 tx-data))
|
|
||||||
|
|
||||||
(is (=
|
|
||||||
#{[:update-page page-uuid1]
|
|
||||||
[:update page-uuid1
|
|
||||||
[[:block/title "[\"~#'\",\"basic-edits-test\"]" true]
|
|
||||||
[:block/created-at "[\"~#'\",1724836490809]" true]
|
|
||||||
[:block/updated-at "[\"~#'\",1724836490809]" true]
|
|
||||||
[:block/type "[\"~#'\",\"page\"]" true]]]
|
|
||||||
[:move block-uuid1]
|
|
||||||
[:update block-uuid1
|
|
||||||
[[:block/updated-at "[\"~#'\",1724836490810]" true]
|
|
||||||
[:block/created-at "[\"~#'\",1724836490810]" true]
|
|
||||||
[:block/title "[\"~#'\",\"block1\"]" true]]]}
|
|
||||||
(set (map simplify-client-op (client-op/get-all-ops const/downloaded-test-repo)))))))
|
|
||||||
|
|
||||||
(testing "start rtc on repo"
|
(testing "start rtc on repo"
|
||||||
(let [r (m/? (rtc-core/new-task--rtc-start const/downloaded-test-repo const/test-token))]
|
(m/? (client1-edits/step2--task-start-rtc)))
|
||||||
(is (nil? r))))
|
|
||||||
(testing "waiting for :create-page synced"
|
(testing "waiting for :create-page synced"
|
||||||
(let [r (m/? (m/timeout
|
(m/? (client1-edits/step3--task-wait-:create-page-synced)))
|
||||||
(m/reduce (fn [_ v]
|
(done))
|
||||||
(when (= :rtc.log/push-local-update (:type v))
|
(m/sp
|
||||||
(reduced v)))
|
(testing "TODO: client2 cases")
|
||||||
rtc-log-and-state/rtc-log-flow)
|
|
||||||
6000 :timeout))]
|
|
||||||
(is (not= :timeout r))))
|
|
||||||
|
|
||||||
(done))))))
|
(done))))))
|
||||||
|
|||||||
47
src/rtc_e2e_test/client1_edits.cljs
Normal file
47
src/rtc_e2e_test/client1_edits.cljs
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
(ns client1-edits
|
||||||
|
(:require [cljs.test :as t :refer [is]]
|
||||||
|
[const]
|
||||||
|
[datascript.core :as d]
|
||||||
|
[frontend.worker.rtc.client-op :as client-op]
|
||||||
|
[frontend.worker.rtc.core :as rtc-core]
|
||||||
|
[frontend.worker.rtc.log-and-state :as rtc-log-and-state]
|
||||||
|
[helper]
|
||||||
|
[logseq.outliner.batch-tx :as batch-tx]
|
||||||
|
[missionary.core :as m]))
|
||||||
|
|
||||||
|
(defn step1--create-page
|
||||||
|
[]
|
||||||
|
(let [conn (helper/get-downloaded-test-conn)
|
||||||
|
tx-data (const/tx-data-map :create-page)]
|
||||||
|
(batch-tx/with-batch-tx-mode conn {:e2e-test const/downloaded-test-repo}
|
||||||
|
(d/transact! conn tx-data))
|
||||||
|
(is (=
|
||||||
|
#{[:update-page const/page-uuid1]
|
||||||
|
[:update const/page-uuid1
|
||||||
|
[[:block/title "[\"~#'\",\"basic-edits-test\"]" true]
|
||||||
|
[:block/created-at "[\"~#'\",1724836490809]" true]
|
||||||
|
[:block/updated-at "[\"~#'\",1724836490809]" true]
|
||||||
|
[:block/type "[\"~#'\",\"page\"]" true]]]
|
||||||
|
[:move const/block-uuid1]
|
||||||
|
[:update const/block-uuid1
|
||||||
|
[[:block/updated-at "[\"~#'\",1724836490810]" true]
|
||||||
|
[:block/created-at "[\"~#'\",1724836490810]" true]
|
||||||
|
[:block/title "[\"~#'\",\"block1\"]" true]]]}
|
||||||
|
(set (map helper/simplify-client-op (client-op/get-all-ops const/downloaded-test-repo)))))))
|
||||||
|
|
||||||
|
(defn step2--task-start-rtc
|
||||||
|
[]
|
||||||
|
(m/sp
|
||||||
|
(let [r (m/? (rtc-core/new-task--rtc-start const/downloaded-test-repo const/test-token))]
|
||||||
|
(is (nil? r)))))
|
||||||
|
|
||||||
|
(defn step3--task-wait-:create-page-synced
|
||||||
|
[]
|
||||||
|
(m/sp
|
||||||
|
(let [r (m/? (m/timeout
|
||||||
|
(m/reduce (fn [_ v]
|
||||||
|
(when (= :rtc.log/push-local-update (:type v))
|
||||||
|
(reduced v)))
|
||||||
|
rtc-log-and-state/rtc-log-flow)
|
||||||
|
6000 :timeout))]
|
||||||
|
(is (not= :timeout r)))))
|
||||||
@@ -1,11 +1,40 @@
|
|||||||
(ns const
|
(ns const
|
||||||
"Consts for rtc e2e tests")
|
"Consts for rtc e2e tests")
|
||||||
|
|
||||||
|
(assert (exists? js/__karma__))
|
||||||
|
(def seed js/__karma__.config.seed)
|
||||||
|
(def testvar js/__karma__.config.testvar)
|
||||||
|
(prn :karma-config :seed seed :testvar testvar)
|
||||||
|
|
||||||
|
(def is-client1? (= "client1" testvar))
|
||||||
|
|
||||||
(def test-token "TEST-TOKEN")
|
(def test-token "TEST-TOKEN")
|
||||||
(def test-graph-name "TEST-REPO")
|
(def test-graph-name (str "TEST-REPO-" seed))
|
||||||
(def test-repo "logseq_db_TEST-REPO")
|
(def test-repo (str "logseq_db_TEST-REPO-" seed))
|
||||||
|
|
||||||
(def downloaded-test-graph-name "TEST-REPO-downloaded")
|
(def downloaded-test-graph-name "TEST-REPO-downloaded")
|
||||||
(def downloaded-test-repo "logseq_db_TEST-REPO-downloaded")
|
(def downloaded-test-repo "logseq_db_TEST-REPO-downloaded")
|
||||||
(def downloaded-test-graph-name2 "TEST-REPO-2-downloaded")
|
|
||||||
(def downloaded-test-repo2 "logseq_db_TEST-REPO-2-downloaded")
|
;;; tests data
|
||||||
|
(def page-uuid1 (random-uuid))
|
||||||
|
|
||||||
|
(def block-uuid1 (random-uuid))
|
||||||
|
|
||||||
|
(def tx-data-map
|
||||||
|
{:create-page
|
||||||
|
[{:db/id "page"
|
||||||
|
:block/name "basic-edits-test"
|
||||||
|
:block/title "basic-edits-test"
|
||||||
|
:block/uuid page-uuid1
|
||||||
|
:block/created-at 1724836490809
|
||||||
|
:block/updated-at 1724836490809
|
||||||
|
:block/type "page"
|
||||||
|
:block/format :markdown}
|
||||||
|
{:block/uuid block-uuid1
|
||||||
|
:block/updated-at 1724836490810
|
||||||
|
:block/created-at 1724836490810
|
||||||
|
:block/format :markdown
|
||||||
|
:block/title "block1"
|
||||||
|
:block/parent "page"
|
||||||
|
:block/order "a0"
|
||||||
|
:block/page "page"}]})
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
(ns download-upload-test
|
|
||||||
"RTC e2e tests for download-graph and upload-graph"
|
|
||||||
(:require [cljs.test :as t :refer [deftest]]
|
|
||||||
[const]
|
|
||||||
[datascript.core :as d]
|
|
||||||
[example]
|
|
||||||
[fixture]
|
|
||||||
[frontend.common.missionary-util :as c.m]
|
|
||||||
[helper]
|
|
||||||
[missionary.core :as m]
|
|
||||||
[frontend.worker.state :as worker-state]))
|
|
||||||
|
|
||||||
(t/use-fixtures :once
|
|
||||||
fixture/install-some-consts
|
|
||||||
fixture/install-example-db-fixture
|
|
||||||
fixture/clear-test-remote-graphs-fixture)
|
|
||||||
|
|
||||||
(deftest upload-download-graph-test
|
|
||||||
(t/async
|
|
||||||
done
|
|
||||||
(c.m/run-task-throw
|
|
||||||
(m/sp
|
|
||||||
(println :example-db-block-count (count (d/datoms @(helper/get-example-test-conn) :avet :block/uuid)))
|
|
||||||
(let [{:keys [graph-uuid]} (m/? helper/new-task--upload-example-graph)]
|
|
||||||
(m/? (helper/new-task--wait-creating-graph graph-uuid))
|
|
||||||
(m/? (helper/new-task--download-graph graph-uuid const/downloaded-test-graph-name))
|
|
||||||
(let [conn (helper/get-downloaded-test-conn)]
|
|
||||||
(println :repos (keys @worker-state/*datascript-conns))
|
|
||||||
(println :block-count (count (d/datoms @conn :avet :block/uuid)))))
|
|
||||||
(done))
|
|
||||||
:upload-download-graph-test)))
|
|
||||||
@@ -18,6 +18,7 @@
|
|||||||
(def install-example-db-fixture
|
(def install-example-db-fixture
|
||||||
{:before
|
{:before
|
||||||
(fn []
|
(fn []
|
||||||
|
(prn :test-repo const/test-repo)
|
||||||
(swap! worker-state/*client-ops-conns assoc const/test-repo (d/create-conn client-op/schema-in-db))
|
(swap! worker-state/*client-ops-conns assoc const/test-repo (d/create-conn client-op/schema-in-db))
|
||||||
(let [conn (d/conn-from-db example/example-db)]
|
(let [conn (d/conn-from-db example/example-db)]
|
||||||
(swap! worker-state/*datascript-conns assoc const/test-repo conn)))
|
(swap! worker-state/*datascript-conns assoc const/test-repo conn)))
|
||||||
@@ -28,30 +29,45 @@
|
|||||||
|
|
||||||
(def clear-test-remote-graphs-fixture
|
(def clear-test-remote-graphs-fixture
|
||||||
{:before
|
{:before
|
||||||
#(t/async
|
#(when const/is-client1?
|
||||||
done
|
(t/async
|
||||||
(c.m/run-task-throw
|
done
|
||||||
(m/sp
|
(c.m/run-task-throw
|
||||||
(m/? helper/new-task--clear-all-test-remote-graphs)
|
(m/sp
|
||||||
(done))
|
(m/? helper/new-task--clear-all-test-remote-graphs)
|
||||||
:clear-test-remote-graphs))})
|
(done))
|
||||||
|
:clear-test-remote-graphs)))})
|
||||||
|
|
||||||
(def build-two-conns-by-download-example-graph-fixture
|
(def upload-example-graph-fixture
|
||||||
|
{:before
|
||||||
|
#(when const/is-client1?
|
||||||
|
(t/async
|
||||||
|
done
|
||||||
|
(c.m/run-task-throw
|
||||||
|
(m/sp
|
||||||
|
(swap! worker-state/*datascript-conns dissoc const/downloaded-test-repo)
|
||||||
|
(swap! worker-state/*client-ops-conns assoc
|
||||||
|
const/downloaded-test-repo (d/create-conn client-op/schema-in-db))
|
||||||
|
(let [{:keys [graph-uuid]} (m/? helper/new-task--upload-example-graph)]
|
||||||
|
(assert (some? graph-uuid))
|
||||||
|
(m/? (helper/new-task--wait-creating-graph graph-uuid)))
|
||||||
|
(done))
|
||||||
|
:upload-example-graph-fixture)))})
|
||||||
|
|
||||||
|
(def build-conn-by-download-example-graph-fixture
|
||||||
{:before
|
{:before
|
||||||
#(t/async
|
#(t/async
|
||||||
done
|
done
|
||||||
(c.m/run-task-throw
|
(c.m/run-task-throw
|
||||||
(m/sp
|
(m/sp
|
||||||
(swap! worker-state/*datascript-conns dissoc const/downloaded-test-repo const/downloaded-test-repo2)
|
(swap! worker-state/*datascript-conns dissoc const/downloaded-test-repo)
|
||||||
(swap! worker-state/*client-ops-conns assoc
|
(swap! worker-state/*client-ops-conns assoc
|
||||||
const/downloaded-test-repo (d/create-conn client-op/schema-in-db)
|
const/downloaded-test-repo (d/create-conn client-op/schema-in-db))
|
||||||
const/downloaded-test-repo2 (d/create-conn client-op/schema-in-db))
|
(let [graph-uuid (m/? helper/new-task--get-remote-example-graph-uuid)]
|
||||||
(let [{:keys [graph-uuid]} (m/? helper/new-task--upload-example-graph)]
|
(assert (some? graph-uuid))
|
||||||
(m/? (helper/new-task--wait-creating-graph graph-uuid))
|
(m/? (helper/new-task--download-graph graph-uuid const/downloaded-test-graph-name)))
|
||||||
(m/? (helper/new-task--download-graph graph-uuid const/downloaded-test-graph-name))
|
(done))
|
||||||
(m/? (helper/new-task--download-graph graph-uuid const/downloaded-test-graph-name2))
|
:build-conn-by-download-example-graph-fixture))
|
||||||
(done)))
|
|
||||||
:build-two-conns-by-download-example-graph-fixture))
|
|
||||||
:after
|
:after
|
||||||
#(do (swap! worker-state/*datascript-conns dissoc const/downloaded-test-repo const/downloaded-test-repo2)
|
#(do (swap! worker-state/*datascript-conns dissoc const/downloaded-test-repo)
|
||||||
(swap! worker-state/*client-ops-conns dissoc const/downloaded-test-repo const/downloaded-test-repo2))})
|
(swap! worker-state/*client-ops-conns dissoc const/downloaded-test-repo))})
|
||||||
|
|||||||
@@ -3,10 +3,11 @@
|
|||||||
[frontend.common.missionary-util :as c.m]
|
[frontend.common.missionary-util :as c.m]
|
||||||
[frontend.worker.rtc.core :as rtc.core]
|
[frontend.worker.rtc.core :as rtc.core]
|
||||||
[missionary.core :as m]
|
[missionary.core :as m]
|
||||||
[frontend.worker.state :as worker-state]))
|
[frontend.worker.state :as worker-state]
|
||||||
|
[meander.epsilon :as me]))
|
||||||
|
|
||||||
(def new-task--upload-example-graph
|
(def new-task--upload-example-graph
|
||||||
(rtc.core/new-task--upload-graph const/test-token const/test-repo const/test-repo))
|
(rtc.core/new-task--upload-graph const/test-token const/test-repo const/test-graph-name))
|
||||||
|
|
||||||
(defn new-task--wait-creating-graph
|
(defn new-task--wait-creating-graph
|
||||||
[graph-uuid]
|
[graph-uuid]
|
||||||
@@ -31,29 +32,53 @@
|
|||||||
(doseq [graph test-graphs]
|
(doseq [graph test-graphs]
|
||||||
(m/? (rtc.core/new-task--delete-graph const/test-token (:graph-uuid graph)))))))
|
(m/? (rtc.core/new-task--delete-graph const/test-token (:graph-uuid graph)))))))
|
||||||
|
|
||||||
|
(def new-task--get-remote-example-graph-uuid
|
||||||
|
(c.m/backoff
|
||||||
|
(take 5 c.m/delays)
|
||||||
|
(m/sp
|
||||||
|
(let [graphs (m/? (rtc.core/new-task--get-graphs const/test-token))
|
||||||
|
graph
|
||||||
|
(some (fn [graph]
|
||||||
|
(when (and (= const/test-graph-name (:graph-name graph))
|
||||||
|
(not= "deleting" (:graph-status graph)))
|
||||||
|
graph))
|
||||||
|
graphs)]
|
||||||
|
(when-not graph
|
||||||
|
(throw (ex-info "wait remote-example-graph" {:missionary/retry true})))
|
||||||
|
(when (= "creating" (:graph-status graph))
|
||||||
|
(throw (ex-info "wait remote-example-graph (creating)" {:missionary/retry true})))
|
||||||
|
(:graph-uuid graph)))))
|
||||||
|
|
||||||
(defn new-task--download-graph
|
(defn new-task--download-graph
|
||||||
[graph-uuid graph-name]
|
[graph-uuid graph-name]
|
||||||
(m/sp
|
(m/sp
|
||||||
(let [download-info-uuid (m/? (rtc.core/new-task--request-download-graph const/test-token graph-uuid))
|
(let [download-info-uuid (m/? (rtc.core/new-task--request-download-graph const/test-token graph-uuid))
|
||||||
result (m/? (rtc.core/new-task--wait-download-info-ready const/test-token download-info-uuid graph-uuid 60000))
|
result (m/? (rtc.core/new-task--wait-download-info-ready const/test-token download-info-uuid graph-uuid 60000))
|
||||||
{:keys [_download-info-uuid
|
{:keys [_download-info-uuid
|
||||||
download-info-s3-url
|
download-info-s3-url
|
||||||
_download-info-tx-instant
|
_download-info-tx-instant
|
||||||
_download-info-t
|
_download-info-t
|
||||||
_download-info-created-at]} result]
|
_download-info-created-at]} result]
|
||||||
(when (= result :timeout)
|
(when (= result :timeout)
|
||||||
(throw (ex-info "wait download-info-ready timeout" {})))
|
(throw (ex-info "wait download-info-ready timeout" {})))
|
||||||
(m/? (rtc.core/new-task--download-graph-from-s3
|
(m/? (rtc.core/new-task--download-graph-from-s3
|
||||||
graph-uuid graph-name download-info-s3-url)))))
|
graph-uuid graph-name download-info-s3-url)))))
|
||||||
|
|
||||||
(defn get-downloaded-test-conn
|
(defn get-downloaded-test-conn
|
||||||
[]
|
[]
|
||||||
(worker-state/get-datascript-conn const/downloaded-test-repo))
|
(worker-state/get-datascript-conn const/downloaded-test-repo))
|
||||||
|
|
||||||
(defn get-downloaded-test-conn2
|
|
||||||
[]
|
|
||||||
(worker-state/get-datascript-conn const/downloaded-test-repo2))
|
|
||||||
|
|
||||||
(defn get-example-test-conn
|
(defn get-example-test-conn
|
||||||
[]
|
[]
|
||||||
(worker-state/get-datascript-conn const/test-repo))
|
(worker-state/get-datascript-conn const/test-repo))
|
||||||
|
|
||||||
|
(defn simplify-client-op
|
||||||
|
[client-op]
|
||||||
|
#_:clj-kondo/ignore
|
||||||
|
(me/find
|
||||||
|
client-op
|
||||||
|
[?op-type _ {:block-uuid ?block-uuid :av-coll [[!a !v _ !add] ...]}]
|
||||||
|
[?op-type ?block-uuid (map vector !a !v !add)]
|
||||||
|
|
||||||
|
[?op-type _ {:block-uuid ?block-uuid}]
|
||||||
|
[?op-type ?block-uuid]))
|
||||||
|
|||||||
Reference in New Issue
Block a user