瀏覽代碼

wip: move rtc to worker

Tienson Qin 1 年之前
父節點
當前提交
f14f7b0c95

+ 1 - 1
src/main/frontend/components/content.cljs

@@ -27,7 +27,7 @@
             [goog.object :as gobj]
             [rum.core :as rum]
             [frontend.config :as config]
-            [frontend.db.rtc.core :as rtc-core]
+            [frontend.worker.rtc.core :as rtc-core]
             [frontend.db.rtc.debug-ui :as rtc-debug-ui]
             [cljs.core.async :as async]
             [cljs.pprint :as pp]

+ 2 - 7
src/main/frontend/db/listener.cljs

@@ -1,9 +1,7 @@
 (ns frontend.db.listener
   "DB listeners"
   (:require [datascript.core :as d]
-            [frontend.db.conn :as conn]
-            [frontend.db.rtc.db-listener :as rtc-db-listener]
-            [frontend.db.rtc.op-mem-layer :as op-mem-layer]))
+            [frontend.db.conn :as conn]))
 
 (defonce *db-listener (atom nil))
 
@@ -19,7 +17,4 @@
   [repo]
   (when-let [conn (conn/get-db repo false)]
     (d/unlisten! conn :persistence)
-    (repo-listen-to-tx! repo conn)
-    (d/unlisten! conn :gen-ops)
-    (when (op-mem-layer/rtc-db-graph? repo)
-      (rtc-db-listener/listen-db-to-generate-ops repo conn))))
+    (repo-listen-to-tx! repo conn)))

+ 12 - 11
src/main/frontend/db/rtc/debug_ui.cljs

@@ -1,30 +1,31 @@
 (ns frontend.db.rtc.debug-ui
   "Debug UI for rtc module"
   (:require-macros
-   [frontend.db.rtc.macro :refer [with-sub-data-from-ws get-req-id get-result-ch]])
+   [frontend.worker.rtc.macro :refer [with-sub-data-from-ws get-req-id get-result-ch]])
   (:require [cljs.core.async :as async :refer [<! go]]
             [fipp.edn :as fipp]
             [frontend.worker.async-util :include-macros true :refer [<? go-try]]
             [frontend.db :as db]
             [frontend.db.conn :as conn]
-            [frontend.db.rtc.core :as rtc-core]
-            [frontend.db.rtc.db-listener :as db-listener]
-            [frontend.db.rtc.full-upload-download-graph :as full-upload-download-graph]
-            [frontend.db.rtc.op-mem-layer :as op-mem-layer]
-            [frontend.db.rtc.ws :as ws]
+            [frontend.worker.rtc.core :as rtc-core]
+            [frontend.worker.rtc.db-listener :as db-listener]
+            [frontend.worker.rtc.full-upload-download-graph :as full-upload-download-graph]
+            [frontend.worker.rtc.op-mem-layer :as op-mem-layer]
+            [frontend.worker.rtc.ws :as ws]
             [frontend.handler.notification :as notification]
             [frontend.handler.user :as user]
             [frontend.state :as state]
             [frontend.ui :as ui]
             [frontend.util :as util]
-            [rum.core :as rum]))
+            [rum.core :as rum]
+            [frontend.config :as config]))
 
 (defonce debug-state (atom nil))
 
 (defn- <start-rtc
   ([]
    (go
-     (let [state (<! (rtc-core/<init-state (state/get-auth-id-token)))]
+     (let [state (<! (rtc-core/<init-state (state/get-auth-id-token) config/RTC-WS-URL))]
        (<! (<start-rtc state)))))
   ([state]
    (go
@@ -53,13 +54,13 @@
 (defn- <download-graph
   [repo graph-uuid]
   (go-try
-   (let [state (<! (rtc-core/<init-state (state/get-auth-id-token)))]
+   (let [state (<! (rtc-core/<init-state (state/get-auth-id-token) config/RTC-WS-URL))]
      (<? (full-upload-download-graph/<download-graph state repo graph-uuid)))))
 
 (defn- <upload-graph
   []
   (go
-    (let [state (<! (rtc-core/<init-state (state/get-auth-id-token)))
+    (let [state (<! (rtc-core/<init-state (state/get-auth-id-token) config/RTC-WS-URL))
           repo (state/get-current-repo)]
       (<! (full-upload-download-graph/<upload-graph state repo (conn/get-db repo)))
       (let [conn (conn/get-db repo false)]
@@ -99,7 +100,7 @@
                  :icon "refresh"
                  :on-click (fn [_]
                              (go
-                               (let [s (or s (<! (rtc-core/<init-state (state/get-auth-id-token))))
+                               (let [s (or s (<! (rtc-core/<init-state (state/get-auth-id-token) config/RTC-WS-URL)))
                                      graph-list (with-sub-data-from-ws s
                                                   (<! (ws/<send! s {:req-id (get-req-id)
                                                                     :action "list-graphs"}))

+ 11 - 1
src/main/frontend/db_worker.cljs

@@ -16,7 +16,9 @@
             [frontend.worker.pipeline :as pipeline]
             [frontend.worker.state :as state]
             [frontend.worker.file :as file]
-            [logseq.db :as ldb]))
+            [logseq.db :as ldb]
+            [frontend.worker.rtc.op-mem-layer :as op-mem-layer]
+            [frontend.worker.rtc.db-listener :as rtc-db-listener]))
 
 (defonce *sqlite state/*sqlite)
 (defonce *sqlite-conns state/*sqlite-conns)
@@ -122,6 +124,12 @@
   (let [{:keys [db search]} (@*sqlite-conns repo)]
     (close-db-aux! repo db search)))
 
+(defn- listen-to-db!
+  [repo conn]
+  (d/unlisten! conn :gen-ops)
+  (when (op-mem-layer/rtc-db-graph? repo)
+      (rtc-db-listener/listen-db-to-generate-ops repo conn)))
+
 (defn- create-or-open-db!
   [repo]
   (when-not (state/get-sqlite-conn repo)
@@ -140,6 +148,8 @@
       (let [schema (sqlite-util/get-schema repo)
             conn (sqlite-common-db/get-storage-conn storage schema)]
         (swap! *datascript-conns assoc repo conn)
+        (op-mem-layer/<init-load-from-indexeddb! repo)
+        (listen-to-db! repo conn)
         nil))))
 
 (defn- iter->vec [iter]

+ 2 - 4
src/main/frontend/handler.cljs

@@ -43,7 +43,6 @@
             [frontend.db.listener :as db-listener]
             [cljs-bean.core :as bean]
             [frontend.handler.test :as test]
-            [frontend.db.rtc.op-mem-layer :as op-mem-layer]
             [frontend.persist-db.browser :as db-browser]
             [frontend.persist-db :as persist-db]))
 
@@ -76,9 +75,8 @@
 (defn restore-and-setup!
   [repo repos]
   (when repo
-    (-> (p/let [_ (db-restore/restore-graph! repo)
-                _ (repo-config-handler/start {:repo repo})]
-          (op-mem-layer/<init-load-from-indexeddb! repo))
+    (-> (p/let [_ (db-restore/restore-graph! repo)]
+          (repo-config-handler/start {:repo repo}))
         (p/then
          (fn []
            (db-listener/listen-and-persist! repo)

+ 1 - 4
src/main/frontend/handler/repo.cljs

@@ -36,8 +36,7 @@
             [frontend.mobile.util :as mobile-util]
             [medley.core :as medley]
             [logseq.common.path :as path]
-            [frontend.db.listener :as db-listener]
-            [frontend.db.rtc.op-mem-layer :as op-mem-layer]))
+            [frontend.db.listener :as db-listener]))
 
 ;; Project settings should be checked in two situations:
 ;; 1. User changes the config.edn directly in logseq.com (fn: alter-file)
@@ -414,7 +413,6 @@
    (state/set-db-restoring! true)
    (db-restore/restore-graph! repo)
    (repo-config-handler/restore-repo-config! repo)
-   (op-mem-layer/<init-load-from-indexeddb! repo)
    (when (config/global-config-enabled?)
      (global-config-handler/restore-global-config!))
     ;; Don't have to unlisten the old listener, as it will be destroyed with the conn
@@ -516,7 +514,6 @@
 (defn- create-db [full-graph-name]
   (->
    (p/let [_ (persist-db/<new full-graph-name)
-           _ (op-mem-layer/<init-load-from-indexeddb! full-graph-name)
            _ (start-repo-db-if-not-exists! full-graph-name)
            _ (state/add-repo! {:url full-graph-name})
            _ (route-handler/redirect-to-home!)

+ 28 - 27
src/main/frontend/util.cljc

@@ -1064,33 +1064,34 @@
       (string/includes? file ".")
       (some-> (common-util/path->file-ext file) string/lower-case))))
 
-(defn get-dir-and-basename
-  [path]
-  (let [parts (string/split path "/")
-        basename (last parts)
-        dir (->> (butlast parts)
-                 string-join-path)]
-    [dir basename]))
-
-(defn get-relative-path
-  [current-file-path another-file-path]
-  (let [directories-f #(butlast (string/split % "/"))
-        parts-1 (directories-f current-file-path)
-        parts-2 (directories-f another-file-path)
-        [parts-1 parts-2] (remove-common-preceding parts-1 parts-2)
-        another-file-name (last (string/split another-file-path "/"))]
-    (->> (concat
-          (if (seq parts-1)
-            (repeat (count parts-1) "..")
-            ["."])
-          parts-2
-          [another-file-name])
-         string-join-path)))
-
-#?(:clj
-   (defmacro profile
-     [k & body]
-     `(frontend.worker.util/profile ~k ~@body)))
+#?(:cljs
+   (defn get-dir-and-basename
+     [path]
+     (let [parts (string/split path "/")
+           basename (last parts)
+           dir (->> (butlast parts)
+                    string-join-path)]
+       [dir basename])))
+
+#?(:cljs
+   (defn get-relative-path
+     [current-file-path another-file-path]
+     (let [directories-f #(butlast (string/split % "/"))
+           parts-1 (directories-f current-file-path)
+           parts-2 (directories-f another-file-path)
+           [parts-1 parts-2] (remove-common-preceding parts-1 parts-2)
+           another-file-name (last (string/split another-file-path "/"))]
+       (->> (concat
+             (if (seq parts-1)
+               (repeat (count parts-1) "..")
+               ["."])
+             parts-2
+             [another-file-name])
+            string-join-path))))
+
+(defmacro profile
+  [k & body]
+  `(frontend.worker.util/profile ~k ~@body))
 
 #?(:clj
    (defmacro with-time

+ 1 - 1
src/main/frontend/db/rtc/const.cljs → src/main/frontend/worker/rtc/const.cljs

@@ -1,4 +1,4 @@
-(ns frontend.db.rtc.const
+(ns frontend.worker.rtc.const
   "RTC constants/schema"
   (:require [malli.util :as mu]
             [malli.core :as m]

+ 21 - 25
src/main/frontend/db/rtc/core.cljs → src/main/frontend/worker/rtc/core.cljs

@@ -1,7 +1,7 @@
-(ns frontend.db.rtc.core
+(ns frontend.worker.rtc.core
   "Main ns for rtc related fns"
   (:require-macros
-   [frontend.db.rtc.macro :refer [with-sub-data-from-ws get-req-id get-result-ch]])
+   [frontend.worker.rtc.macro :refer [with-sub-data-from-ws get-req-id get-result-ch]])
   (:require [cljs-time.coerce :as tc]
             [cljs-time.core :as t]
             [cljs.core.async :as async :refer [<! >! chan go go-loop]]
@@ -21,11 +21,9 @@
             [frontend.worker.handler.page.rename :as worker-page-rename]
             [frontend.worker.state :as worker-state]
             [logseq.db :as ldb]
-
-            [frontend.db.rtc.const :as rtc-const]
-            [frontend.db.rtc.op-mem-layer :as op-mem-layer]
-            [frontend.db.rtc.ws :as ws]
-            [frontend.handler.user :as user]))
+            [frontend.worker.rtc.const :as rtc-const]
+            [frontend.worker.rtc.op-mem-layer :as op-mem-layer]
+            [frontend.worker.rtc.ws :as ws]))
 
 
 ;;                     +-------------+
@@ -46,7 +44,7 @@
 ;;                     |   client    |                     |  indexeddb |
 ;;                     |             |<--------------------+            |
 ;;                     +-------------+                     +------------+
-;;                                frontend.db.rtc.op/op-schema
+;;                                frontend.worker.rtc.op/op-schema
 
 (def state-schema
   "
@@ -136,8 +134,7 @@
     (transact-db! :delete-whiteboard-blocks conn (map :block-uuid whiteboard-block-ops))
 
     (doseq [op other-ops]
-      ;; TODO: use d/entity instead of d/pull
-      (when-let [block (d/pull @conn '[*] [:block/uuid (:block-uuid op)])]
+      (when-let [block (d/entity @conn [:block/uuid (:block-uuid op)])]
         (transact-db! :delete-blocks repo conn date-formatter [block] {:children? false})
         (prn :apply-remote-remove-ops (:block-uuid op))))))
 
@@ -678,7 +675,7 @@
 
 
 (defn- <client-op-update-handler
-  [state]
+  [state token]
   {:pre [(some? @(:*graph-uuid state))
          (some? @(:*repo state))]}
   (go
@@ -731,7 +728,7 @@
       (pos? (op-mem-layer/get-unpushed-block-update-count repo)))))
 
 (defn <loop-for-rtc
-  [state graph-uuid repo conn date-formatter & {:keys [loop-started-ch]}]
+  [state graph-uuid repo conn date-formatter & {:keys [loop-started-ch token]}]
   {:pre [(state-validator state)
          (some? graph-uuid)
          (some? repo)]}
@@ -779,11 +776,9 @@
                   (recur (make-push-client-ops-timeout-ch repo (not @*auto-push-client-ops?))))
 
                 client-op-update
-                (let [maybe-exp (<! (user/<wrap-ensure-id&access-token
-                                     (<! (<client-op-update-handler state))))]
-                  (if (= :expired-token (:anom (ex-data maybe-exp)))
-                    (prn ::<loop-for-rtc "quitting loop" maybe-exp)
-                    (recur (make-push-client-ops-timeout-ch repo (not @*auto-push-client-ops?)))))
+                ;; FIXME: access token expired
+                (let [_ (<! (<client-op-update-handler state token))]
+                  (recur (make-push-client-ops-timeout-ch repo (not @*auto-push-client-ops?))))
 
                 stop
                 (do (ws/stop @(:*ws state))
@@ -830,12 +825,14 @@
 
 
 (defn init-state
-  [ws data-from-ws-chan]
+  [ws data-from-ws-chan token ws-addr]
   ;; {:post [(m/validate state-schema %)]}
   {:*rtc-state (atom :closed :validator rtc-state-validator)
    :*graph-uuid (atom nil)
    :*repo (atom nil)
    :*db-conn (atom nil)
+   :*ws-addr (atom ws-addr)
+   :*token (atom token)
    :*date-formatter (atom nil)
    :data-from-ws-chan data-from-ws-chan
    :data-from-ws-pub (async/pub data-from-ws-chan :req-id)
@@ -846,12 +843,11 @@
    :*ws (atom ws)})
 
 (defn <init-state
-  [auth-id-token]
+  [auth-id-token ws-addr]
   (go
     (let [data-from-ws-chan (chan (async/sliding-buffer 100))
-          ws-opened-ch (chan)]
-      (<! (user/<wrap-ensure-id&access-token
-           (let [token auth-id-token
-                 ws (ws/ws-listen token data-from-ws-chan ws-opened-ch)]
-             (<! ws-opened-ch)
-             (init-state ws data-from-ws-chan)))))))
+          ws-opened-ch (chan)
+          token auth-id-token
+          ws (ws/ws-listen ws-addr token data-from-ws-chan ws-opened-ch)]
+      (<! ws-opened-ch)
+      (init-state ws data-from-ws-chan token ws-addr))))

+ 2 - 2
src/main/frontend/db/rtc/db_listener.cljs → src/main/frontend/worker/rtc/db_listener.cljs

@@ -1,11 +1,11 @@
-(ns frontend.db.rtc.db-listener
+(ns frontend.worker.rtc.db-listener
   "listen datascript changes, infer operations from the db tx-report"
   (:require [cljs-time.coerce :as tc]
             [cljs-time.core :as t]
             [clojure.data :as data]
             [clojure.set :as set]
             [datascript.core :as d]
-            [frontend.db.rtc.op-mem-layer :as op-mem-layer]))
+            [frontend.worker.rtc.op-mem-layer :as op-mem-layer]))
 
 
 (defn- entity-datoms=>attr->datom

+ 4 - 4
src/main/frontend/db/rtc/full_upload_download_graph.cljs → src/main/frontend/worker/rtc/full_upload_download_graph.cljs

@@ -1,15 +1,15 @@
-(ns frontend.db.rtc.full-upload-download-graph
+(ns frontend.worker.rtc.full-upload-download-graph
   "- upload local graph to remote
   - download remote graph"
-  (:require-macros [frontend.db.rtc.macro :refer [with-sub-data-from-ws get-req-id get-result-ch]])
+  (:require-macros [frontend.worker.rtc.macro :refer [with-sub-data-from-ws get-req-id get-result-ch]])
   (:require [cljs-http.client :as http]
             [cljs.core.async :as async :refer [<! go]]
             [cljs.core.async.interop :refer [p->c]]
             [cognitect.transit :as transit]
             [datascript.core :as d]
             [frontend.worker.async-util :include-macros true :refer [<? go-try]]
-            [frontend.db.rtc.op-mem-layer :as op-mem-layer]
-            [frontend.db.rtc.ws :refer [<send!]]
+            [frontend.worker.rtc.op-mem-layer :as op-mem-layer]
+            [frontend.worker.rtc.ws :refer [<send!]]
             [frontend.persist-db :as persist-db]
             [logseq.db.frontend.schema :as db-schema]
             [frontend.state :as state]))

+ 1 - 2
src/main/frontend/db/rtc/macro.clj → src/main/frontend/worker/rtc/macro.clj

@@ -1,4 +1,4 @@
-(ns frontend.db.rtc.macro
+(ns frontend.worker.rtc.macro
   "Macros that are used for rtc")
 
 (def ^:private magic-str "YBTFRD")
@@ -20,6 +20,5 @@
          (finally
            (cljs.core.async/unsub data-from-ws-pub# ~req-id-sym ~result-ch-sym))))))
 
-
 (defmacro get-req-id [] (symbol (str magic-str "-req-id")))
 (defmacro get-result-ch [] (symbol (str magic-str "-result-ch")))

+ 1 - 1
src/main/frontend/db/rtc/op_idb_layer.cljs → src/main/frontend/worker/rtc/op_idb_layer.cljs

@@ -1,4 +1,4 @@
-(ns frontend.db.rtc.op-idb-layer
+(ns frontend.worker.rtc.op-idb-layer
   "Fns to read/write client-ops from/into indexeddb."
   (:require ["/frontend/idbkv" :as idb-keyval]
             [cljs.core.async.interop :refer [p->c]]

+ 3 - 3
src/main/frontend/db/rtc/op_mem_layer.cljs → src/main/frontend/worker/rtc/op_mem_layer.cljs

@@ -1,10 +1,10 @@
-(ns frontend.db.rtc.op-mem-layer
+(ns frontend.worker.rtc.op-mem-layer
   "Store client-ops in memory.
   And sync these ops to indexedDb automatically."
   (:require [clojure.core.async :as async :refer [<! go-loop timeout]]
             [clojure.set :as set]
-            [frontend.db.rtc.op-idb-layer :as op-idb-layer]
-            [frontend.state :as state]
+            [frontend.worker.rtc.op-idb-layer :as op-idb-layer]
+            [frontend.worker.state :as state]
             [malli.core :as m]
             [malli.transform :as mt]
             [promesa.core :as p]

+ 5 - 7
src/main/frontend/db/rtc/ws.cljs → src/main/frontend/worker/rtc/ws.cljs

@@ -1,13 +1,12 @@
-(ns frontend.db.rtc.ws
+(ns frontend.worker.rtc.ws
   "Websocket related util-fns"
   (:require-macros
-   [frontend.db.rtc.macro :refer [with-sub-data-from-ws get-req-id get-result-ch]])
+   [frontend.worker.rtc.macro :refer [with-sub-data-from-ws get-req-id get-result-ch]])
   (:require [cljs-http.client :as http]
             [cljs.core.async :as async :refer [<! chan offer!]]
             [frontend.worker.async-util :include-macros true :refer [<? go-try]]
             [frontend.config :as config]
-            [frontend.db.rtc.const :as rtc-const]
-            [frontend.state :as state]
+            [frontend.worker.rtc.const :as rtc-const]
             [goog.string :as gstring]))
 
 (def WebSocketOPEN (if (= *target* "nodejs")
@@ -17,7 +16,7 @@
 (def ws-addr config/RTC-WS-URL)
 
 (defn ws-listen
-  [token data-from-ws-chan ws-opened-ch]
+  [ws-addr token data-from-ws-chan ws-opened-ch]
   (let [ws (js/WebSocket. (gstring/format ws-addr token))]
     (set! (.-onopen ws) (fn [_e] (async/close! ws-opened-ch)))
     (set! (.-onmessage ws) (fn [e]
@@ -43,8 +42,7 @@
      (when (or (nil? ws)
                (> (.-readyState ws) WebSocketOPEN))
        (let [ws-opened-ch (chan)
-             token (state/get-auth-id-token)
-             ws* (ws-listen token (:data-from-ws-chan state) ws-opened-ch)]
+             ws* (ws-listen ws-addr @(:*token state) (:data-from-ws-chan state) ws-opened-ch)]
          (<! ws-opened-ch)
          (reset! (:*ws state) ws*)
          (when-let [graph-uuid @(:*graph-uuid state)]

+ 6 - 1
src/main/frontend/worker/state.cljs

@@ -6,7 +6,8 @@
                        :worker/context {}
 
                        ;; FIXME load graph config when fetch-initial-data
-                       :config {}}))
+                       :config {}
+                       :repo/current nil}))
 
 (defonce *sqlite (atom nil))
 ;; repo -> {:db conn :search conn}
@@ -57,3 +58,7 @@
 (defn get-config
   [repo]
   (get-in @*state [:config repo]))
+
+(defn get-current-repo
+  []
+  (:repo/current @*state))

+ 0 - 16
src/test/frontend/db/rtc/idb_keyval_mock.clj

@@ -1,16 +0,0 @@
-(ns frontend.db.rtc.idb-keyval-mock
-  (:require [frontend.test.helper :as test-helper]))
-
-
-
-(defmacro with-reset-idb-keyval-mock
-  [reset & body]
-  `(test-helper/with-reset ~reset
-     [idb-keyval/set      frontend.db.rtc.idb-keyval-mock/set
-      idb-keyval/setBatch frontend.db.rtc.idb-keyval-mock/set-batch
-      idb-keyval/get      frontend.db.rtc.idb-keyval-mock/get
-      idb-keyval/del      frontend.db.rtc.idb-keyval-mock/del
-      idb-keyval/keys     frontend.db.rtc.idb-keyval-mock/keys
-      idb-keyval/clear    frontend.db.rtc.idb-keyval-mock/clear
-      idb-keyval/newStore frontend.db.rtc.idb-keyval-mock/new-store]
-     ~@body))

+ 2 - 2
src/test/frontend/db/rtc/db_listener_test.cljs → src/test/frontend/worker/rtc/db_listener_test.cljs

@@ -1,7 +1,7 @@
-(ns frontend.db.rtc.db-listener-test
+(ns frontend.worker.rtc.db-listener-test
   (:require [cljs.test :as t :refer [deftest is testing]]
             [datascript.core :as d]
-            [frontend.db.rtc.db-listener :as subject]
+            [frontend.worker.rtc.db-listener :as subject]
             [logseq.db.frontend.schema :as db-schema]))
 
 

+ 5 - 5
src/test/frontend/db/rtc/fixture.cljs → src/test/frontend/worker/rtc/fixture.cljs

@@ -1,13 +1,13 @@
-(ns frontend.db.rtc.fixture
+(ns frontend.worker.rtc.fixture
   (:require [cljs.test :as t]
             [cljs.core.async :as async :refer [<! >! chan go]]
-            [frontend.db.rtc.mock :as rtc-mock]
-            [frontend.db.rtc.core :as rtc-core]
+            [frontend.worker.rtc.mock :as rtc-mock]
+            [frontend.worker.rtc.core :as rtc-core]
             [frontend.test.helper :as test-helper]
             [datascript.core :as d]
             [frontend.db.conn :as conn]
-            [frontend.db.rtc.db-listener :as db-listener]
-            [frontend.db.rtc.op-mem-layer :as op-mem-layer]
+            [frontend.worker.rtc.db-listener :as db-listener]
+            [frontend.worker.rtc.op-mem-layer :as op-mem-layer]
             [frontend.db :as db]
             [frontend.state :as state]))
 

+ 16 - 0
src/test/frontend/worker/rtc/idb_keyval_mock.clj

@@ -0,0 +1,16 @@
+(ns frontend.worker.rtc.idb-keyval-mock
+  (:require [frontend.test.helper :as test-helper]))
+
+
+
+(defmacro with-reset-idb-keyval-mock
+  [reset & body]
+  `(test-helper/with-reset ~reset
+     [idb-keyval/set      frontend.worker.rtc.idb-keyval-mock/set
+      idb-keyval/setBatch frontend.worker.rtc.idb-keyval-mock/set-batch
+      idb-keyval/get      frontend.worker.rtc.idb-keyval-mock/get
+      idb-keyval/del      frontend.worker.rtc.idb-keyval-mock/del
+      idb-keyval/keys     frontend.worker.rtc.idb-keyval-mock/keys
+      idb-keyval/clear    frontend.worker.rtc.idb-keyval-mock/clear
+      idb-keyval/newStore frontend.worker.rtc.idb-keyval-mock/new-store]
+     ~@body))

+ 1 - 1
src/test/frontend/db/rtc/idb_keyval_mock.cljs → src/test/frontend/worker/rtc/idb_keyval_mock.cljs

@@ -1,4 +1,4 @@
-(ns frontend.db.rtc.idb-keyval-mock
+(ns frontend.worker.rtc.idb-keyval-mock
   "Mock fns for frontend/idbkv.js"
   (:refer-clojure :exclude [get set keys])
   (:require [promesa.core :as p]))

+ 2 - 2
src/test/frontend/db/rtc/mock.cljs → src/test/frontend/worker/rtc/mock.cljs

@@ -1,6 +1,6 @@
-(ns frontend.db.rtc.mock
+(ns frontend.worker.rtc.mock
   (:require [clojure.core.async :as async]
-            [frontend.db.rtc.const :as rtc-const]
+            [frontend.worker.rtc.const :as rtc-const]
             [spy.core :as spy]))
 
 ;;; websocket

+ 4 - 4
src/test/frontend/db/rtc/op_mem_layer_test.cljs → src/test/frontend/worker/rtc/op_mem_layer_test.cljs

@@ -1,10 +1,10 @@
-(ns frontend.db.rtc.op-mem-layer-test
+(ns frontend.worker.rtc.op-mem-layer-test
   (:require [cljs.test :as t :refer [deftest is testing]]
             [clojure.core.async :as async :refer [<! go]]
             [cljs.core.async.interop :refer [p->c]]
-            [frontend.db.rtc.idb-keyval-mock :include-macros true :as idb-keyval-mock]
-            [frontend.db.rtc.op-idb-layer :as op-idb-layer]
-            [frontend.db.rtc.op-mem-layer :as op-layer]
+            [frontend.worker.rtc.idb-keyval-mock :include-macros true :as idb-keyval-mock]
+            [frontend.worker.rtc.op-idb-layer :as op-idb-layer]
+            [frontend.worker.rtc.op-mem-layer :as op-layer]
             #_:clj-kondo/ignore ["/frontend/idbkv" :as idb-keyval]
             [frontend.config :as config]))
 

+ 5 - 5
src/test/frontend/db/rtc/rtc_effects_test.cljs → src/test/frontend/worker/rtc/rtc_effects_test.cljs

@@ -1,15 +1,15 @@
-(ns frontend.db.rtc.rtc-effects-test
+(ns frontend.worker.rtc.rtc-effects-test
   "This ns include tests abouts rtc-part with other components.
   These tests need to start the rtc-loop.
-  Other simple fn tests are located at `frontend.db.rtc.rtc-fns-test`"
+  Other simple fn tests are located at `frontend.worker.rtc.rtc-fns-test`"
   (:require ["/frontend/idbkv" :as idb-keyval]
             [cljs.core.async :as async :refer [<! >! go timeout]]
             [clojure.test :as t :refer [deftest is use-fixtures]]
             [datascript.core :as d]
             [frontend.db.conn :as conn]
-            [frontend.db.rtc.fixture :as rtc-fixture]
-            [frontend.db.rtc.idb-keyval-mock :as idb-keyval-mock :include-macros true]
-            [frontend.db.rtc.op-mem-layer :as op-mem-layer]
+            [frontend.worker.rtc.fixture :as rtc-fixture]
+            [frontend.worker.rtc.idb-keyval-mock :as idb-keyval-mock :include-macros true]
+            [frontend.worker.rtc.op-mem-layer :as op-mem-layer]
             [frontend.handler.page :as page-handler]
             [logseq.outliner.core :as outliner-core]
             [logseq.outliner.transaction :as outliner-tx]

+ 3 - 3
src/test/frontend/db/rtc/rtc_fns_test.cljs → src/test/frontend/worker/rtc/rtc_fns_test.cljs

@@ -1,9 +1,9 @@
-(ns frontend.db.rtc.rtc-fns-test
+(ns frontend.worker.rtc.rtc-fns-test
   (:require [clojure.test :as t :refer [deftest is testing]]
             [datascript.core :as d]
             [frontend.db.conn :as conn]
-            [frontend.db.rtc.core :as rtc-core]
-            [frontend.db.rtc.op-mem-layer :as op-mem-layer]
+            [frontend.worker.rtc.core :as rtc-core]
+            [frontend.worker.rtc.op-mem-layer :as op-mem-layer]
             [frontend.handler.page :as page-handler]
             [logseq.outliner.core :as outliner-core]
             [logseq.outliner.transaction :as outliner-tx]