|
|
@@ -159,6 +159,7 @@
|
|
|
(helper/transact! conn tx-data2)
|
|
|
(is (nil? (m/? (rtc-core/new-task--rtc-start const/downloaded-test-repo const/test-token))))
|
|
|
(m/? (helper/new-task--wait-all-client-ops-sent))
|
|
|
+ (m/? (helper/new-task--client1-sync-barrier-2->1 "step5"))
|
|
|
(let [message (m/? (helper/new-task--wait-message-from-other-client
|
|
|
(fn [message] (= "move-blocks-concurrently-page-blocks" (:id message)))
|
|
|
:retry-message "move-blocks-concurrently-page-blocks"))
|
|
|
@@ -189,13 +190,60 @@
|
|
|
(helper/transact! conn (const/tx-data-map :move-blocks-concurrently-client2))
|
|
|
(is (nil? (m/? (rtc-core/new-task--rtc-start const/downloaded-test-repo const/test-token))))
|
|
|
(m/? (helper/new-task--wait-all-client-ops-sent))
|
|
|
- (m/? (m/sleep 5000))
|
|
|
+ (m/? (helper/new-task--client2-sync-barrier-2->1 "step5"))
|
|
|
(m/? (helper/new-task--send-message-to-other-client
|
|
|
{:id "move-blocks-concurrently-page-blocks"
|
|
|
:page-blocks (ldb/get-page-blocks @conn (:db/id (d/entity @conn [:block/uuid const/page3-uuid]))
|
|
|
:pull-keys '[:block/uuid :block/title :block/order
|
|
|
{:block/parent [:block/uuid]}])}))))})
|
|
|
|
|
|
+(def ^:private step6
|
|
|
+ "Delete blocks test-1
|
|
|
+client1:
|
|
|
+- insert some blocks
|
|
|
+- wait to be synced
|
|
|
+- stop rtc
|
|
|
+- delete blocks
|
|
|
+- start rtc
|
|
|
+- wait to be synced
|
|
|
+
|
|
|
+client2:
|
|
|
+- wait blocks from client1
|
|
|
+- wait delete-blocks changes synced from client1
|
|
|
+- check block-tree"
|
|
|
+ {:client1
|
|
|
+ (m/sp
|
|
|
+ (let [conn (helper/get-downloaded-test-conn)
|
|
|
+ tx-data1 (const/tx-data-map :step6-delete-blocks-client1-1)
|
|
|
+ tx-data2 (const/tx-data-map :step6-delete-blocks-client1-2)]
|
|
|
+ (helper/transact! conn tx-data1)
|
|
|
+ (m/? (helper/new-task--wait-all-client-ops-sent))
|
|
|
+ (m/? (helper/new-task--client1-sync-barrier-1->2 "step6"))
|
|
|
+ (m/? helper/new-task--stop-rtc)
|
|
|
+ (helper/transact! conn tx-data2)
|
|
|
+ (let [r (m/? (rtc-core/new-task--rtc-start const/downloaded-test-repo const/test-token))]
|
|
|
+ (is (nil? r))
|
|
|
+ (m/? (helper/new-task--wait-all-client-ops-sent)))))
|
|
|
+ :client2
|
|
|
+ (m/sp
|
|
|
+ (let [conn (helper/get-downloaded-test-conn)]
|
|
|
+ (m/? (helper/new-task--client2-sync-barrier-1->2 "step6"))
|
|
|
+ (m/?
|
|
|
+ (c.m/backoff
|
|
|
+ (take 4 c.m/delays)
|
|
|
+ (m/sp
|
|
|
+ (let [page (d/pull @conn '[*] [:block/uuid const/step6-page-uuid])
|
|
|
+ page-blocks (when-let [page-id (:db/id page)]
|
|
|
+ (ldb/get-page-blocks @conn page-id
|
|
|
+ :pull-keys '[:block/uuid {:block/parent [:block/uuid]}]))]
|
|
|
+ (when-not (= 1 (count page-blocks))
|
|
|
+ (throw (ex-info "wait delete-blocks changes synced"
|
|
|
+ {:missionary/retry true
|
|
|
+ :page-blocks page-blocks})))
|
|
|
+ (is (= {:block/uuid const/step6-block3-uuid
|
|
|
+ :block/parent {:block/uuid const/step6-page-uuid}}
|
|
|
+ (select-keys (first page-blocks) [:block/uuid :block/parent])))))))))})
|
|
|
+
|
|
|
(defn- wrap-print-step-info
|
|
|
[steps client]
|
|
|
(map-indexed
|
|
|
@@ -206,7 +254,7 @@
|
|
|
(helper/log "end step" idx)))
|
|
|
steps))
|
|
|
|
|
|
-(def ^:private all-steps [step0 step1 step2 step3 step4 step5])
|
|
|
+(def ^:private all-steps [step0 step1 step2 step3 step4 step5 step6])
|
|
|
|
|
|
(def client1-steps
|
|
|
(wrap-print-step-info all-steps :client1))
|