mirror of
https://github.com/logseq/logseq.git
synced 2026-05-25 05:04:24 +00:00
fix: don't notify source client with presence update
This commit is contained in:
@@ -20,9 +20,9 @@
|
||||
(let [editing-block-uuid (:editing-block-uuid message)
|
||||
user (presence/get-user self ws)]
|
||||
(presence/update-presence! self ws {:editing-block-uuid editing-block-uuid})
|
||||
(ws/broadcast! self nil {:type "presence"
|
||||
:editing-block-uuid editing-block-uuid
|
||||
:user-id (:user-id user)}))
|
||||
(ws/broadcast! self ws {:type "presence"
|
||||
:editing-block-uuid editing-block-uuid
|
||||
:user-id (:user-id user)}))
|
||||
|
||||
"pull"
|
||||
(let [raw-since (:since message)
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
[logseq.db-sync.node-adapter-test]
|
||||
[logseq.db-sync.node-config-test]
|
||||
[logseq.db-sync.platform-test]
|
||||
[logseq.db-sync.worker-handler-ws-test]
|
||||
[shadow.test :as st]
|
||||
[shadow.test.env :as env]))
|
||||
|
||||
|
||||
27
deps/db-sync/test/logseq/db_sync/worker_handler_ws_test.cljs
vendored
Normal file
27
deps/db-sync/test/logseq/db_sync/worker_handler_ws_test.cljs
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
(ns logseq.db-sync.worker-handler-ws-test
|
||||
(:require [cljs.test :refer [deftest is]]
|
||||
[logseq.db-sync.protocol :as protocol]
|
||||
[logseq.db-sync.worker.handler.ws :as ws-handler]
|
||||
[logseq.db-sync.worker.presence :as presence]
|
||||
[logseq.db-sync.worker.ws :as ws]))
|
||||
|
||||
(deftest presence-message-broadcast-excludes-source-client-test
|
||||
(let [source-ws #js {:readyState 1}
|
||||
peer-ws #js {:readyState 1}
|
||||
send-events (atom [])
|
||||
self #js {:state #js {:getWebSockets (fn [] #js [source-ws peer-ws])}}
|
||||
raw (protocol/encode-message {:type "presence"
|
||||
:editing-block-uuid "block-1"})]
|
||||
(with-redefs [presence/get-user (fn [_self _ws] {:user-id "user-1"})
|
||||
presence/update-presence! (fn [_self _ws _patch] nil)
|
||||
ws/send! (fn [target msg]
|
||||
(swap! send-events conj {:ws target
|
||||
:msg msg}))]
|
||||
(ws-handler/handle-ws-message! self source-ws raw))
|
||||
|
||||
(is (= [peer-ws]
|
||||
(mapv :ws @send-events)))
|
||||
(is (= [{:type "presence"
|
||||
:editing-block-uuid "block-1"
|
||||
:user-id "user-1"}]
|
||||
(mapv :msg @send-events)))))
|
||||
Reference in New Issue
Block a user