Browse Source

test(rtc): fix gen-block-uuid->remote-ops in testcases

rcmerci 1 year ago
parent
commit
461ad320c4

+ 22 - 23
src/main/frontend/worker/rtc/core.cljs

@@ -599,7 +599,7 @@
               remove-page-ops (vals remove-page-ops-map)]
 
           ;; (worker-state/start-batch-tx-mode!)
-          (js/console.groupCollapsed ::apply-remote-ops-log)
+          (js/console.groupCollapsed "rtc/apply-remote-ops-log")
           (worker-util/profile :apply-remote-update-page-ops (apply-remote-update-page-ops repo conn date-formatter update-page-ops))
           (worker-util/profile :apply-remote-remove-ops (apply-remote-remove-ops repo conn date-formatter remove-ops))
           (worker-util/profile :apply-remote-move-ops (apply-remote-move-ops repo conn date-formatter sorted-move-ops))
@@ -958,7 +958,6 @@
     (reset! (:*db-conn state) conn)
     (reset! (:*date-formatter state) date-formatter)
     (reset! (:*rtc-state state) :open)
-    (swap! *state update :counter inc)
     (let [{:keys [data-from-ws-pub _client-op-update-chan]} state
           push-data-from-ws-ch (chan (async/sliding-buffer 100) (map rtc-const/data-from-ws-coercer))
           stop-rtc-loop-chan (chan)
@@ -1058,28 +1057,26 @@
 ;;                                    :block-uuids [page-block-uuid]})))))
 
 (defn init-state
-  [ws data-from-ws-chan repo token dev-mode?]
+  [ws data-from-ws-chan repo token user-uuid dev-mode?]
   ;; {:post [(m/validate state-schema %)]}
-  (let [user-uuid (:sub (worker-util/parse-jwt token))]
-    (assert (some? user-uuid) token)
-    {:*rtc-state (atom :closed :validator rtc-state-validator)
-     :*graph-uuid (atom nil)
-     :user-uuid user-uuid
-     :*repo (atom repo)
-     :*db-conn (atom nil)
-     :*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)
-     :toggle-auto-push-client-ops-chan (chan (async/sliding-buffer 1))
-     :*auto-push-client-ops? (atom true :validator boolean?)
-     :*stop-rtc-loop-chan (atom nil)
-     :force-push-client-ops-chan (chan (async/sliding-buffer 1))
-     :*ws (atom ws)
+  {:*rtc-state (atom :closed :validator rtc-state-validator)
+   :*graph-uuid (atom nil)
+   :user-uuid user-uuid
+   :*repo (atom repo)
+   :*db-conn (atom nil)
+   :*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)
+   :toggle-auto-push-client-ops-chan (chan (async/sliding-buffer 1))
+   :*auto-push-client-ops? (atom true :validator boolean?)
+   :*stop-rtc-loop-chan (atom nil)
+   :force-push-client-ops-chan (chan (async/sliding-buffer 1))
+   :*ws (atom ws)
      ;; used to trigger state watch
-     :counter 0
-     :dev-mode? dev-mode?
-     :*block-update-log (atom {})}))
+   :counter 0
+   :dev-mode? dev-mode?
+   :*block-update-log (atom {})})
 
 (defn get-debug-state
   ([repo]
@@ -1117,7 +1114,9 @@
           ws-opened-ch (chan)
           ws (ws/ws-listen token data-from-ws-chan ws-opened-ch)]
       (<! ws-opened-ch)
-      (let [state (init-state ws data-from-ws-chan repo token dev-mode?)]
+      (let [state (init-state ws data-from-ws-chan repo token
+                              (:sub (worker-util/parse-jwt token))
+                              dev-mode?)]
         (when reset-*state?
           (reset! *state state)
           (swap! *state update :counter inc))

+ 4 - 2
src/test/frontend/worker/rtc/fixture.cljs

@@ -21,14 +21,16 @@
   []
   (let [data-from-ws-chan (chan (async/sliding-buffer 100))
         ws (rtc-mock/mock-websocket data-from-ws-chan)]
-    (assoc (rtc-core/init-state ws data-from-ws-chan test-helper/test-db-name-db-version "" true)
+    (assoc (rtc-core/init-state ws data-from-ws-chan test-helper/test-db-name-db-version
+                                "" "user-uuid" true)
            :*auto-push-client-ops? (atom false))))
 
 (defn- init-state-helper-for-asset-sync-loop
   []
   (let [data-from-ws-chan (chan (async/sliding-buffer 100))
         ws (rtc-mock/mock-websocket data-from-ws-chan)
-        rtc-state (rtc-core/init-state ws data-from-ws-chan test-helper/test-db-name-db-version "" true)]
+        rtc-state (rtc-core/init-state ws data-from-ws-chan test-helper/test-db-name-db-version
+                                       "" "user-uuid" true)]
     (assoc (asset-sync/init-state-from-rtc-state rtc-state)
            :*auto-push-assets-update-ops? (atom false))))
 

+ 1 - 3
src/test/frontend/worker/rtc/local_tx_to_remote_test.cljs

@@ -32,9 +32,7 @@
         gen-ops-fn (fn []
                      (let [r (rtc-const/to-ws-ops-decoder
                               (rtc-core/sort-remote-ops
-                               ;; FIXME: Remove ignore when test is fixed
-                               #_:clj-kondo/ignore
-                               (rtc-core/gen-block-uuid->remote-ops repo conn)))]
+                               (rtc-core/gen-block-uuid->remote-ops repo conn "user-uuid")))]
                        (is (rtc-const/to-ws-ops-validator r) r)
                        r))]
     (testing "create a new page"

+ 2 - 2
src/test/frontend/worker/rtc/rtc_fns_test.cljs

@@ -102,9 +102,9 @@
                                          ["move" {:block-uuid (str uuid3) :epoch 3}]
                                          ["update" {:block-uuid (str uuid4) :epoch 4}]])
     (let [_ (op-mem-layer/new-branch! repo)
-          r1 (rtc-core/gen-block-uuid->remote-ops repo conn :n 1)
+          r1 (rtc-core/gen-block-uuid->remote-ops repo conn "user-uuid" :n 1)
           _ (op-mem-layer/rollback! repo)
-          r2 (rtc-core/gen-block-uuid->remote-ops repo conn :n 2)]
+          r2 (rtc-core/gen-block-uuid->remote-ops repo conn "user-uuid" :n 2)]
       (is (= {uuid2 [:move]}
              (update-vals r1 keys)))
       (is (= {uuid2 [:move]