|
167 | 167 | :block/tags :block/title :db/cardinality}] |
168 | 168 | #_{:clj-kondo/ignore [:unresolved-symbol :invalid-arity]} |
169 | 169 | (is (->> (me/find (subject/generate-rtc-ops-from-property-entities [ent]) |
170 | | - ([:move _ {:block-uuid ?block-uuid}] |
171 | | - [:update-page _ {:block-uuid ?block-uuid}] |
172 | | - [:update _ {:block-uuid ?block-uuid :av-coll ([!av-coll-attrs . _ ...] ...)}]) |
173 | | - !av-coll-attrs) |
| 170 | + ([:move _ {:block-uuid ?block-uuid}] |
| 171 | + [:update-page _ {:block-uuid ?block-uuid}] |
| 172 | + [:update _ {:block-uuid ?block-uuid :av-coll ([!av-coll-attrs . _ ...] ...)}]) |
| 173 | + !av-coll-attrs) |
174 | 174 | set |
175 | 175 | (set/difference av-coll-attrs) |
176 | 176 | empty?)))) |
|
183 | 183 | :block/tags :block/title}] |
184 | 184 | #_{:clj-kondo/ignore [:unresolved-symbol :invalid-arity]} |
185 | 185 | (is (->> (me/find (subject/generate-rtc-ops-from-class-entities [ent]) |
186 | | - ([:update-page _ {:block-uuid ?block-uuid}] |
187 | | - [:update _ {:block-uuid ?block-uuid :av-coll ([!av-coll-attrs . _ ...] ...)}]) |
188 | | - !av-coll-attrs) |
| 186 | + ([:update-page _ {:block-uuid ?block-uuid}] |
| 187 | + [:update _ {:block-uuid ?block-uuid :av-coll ([!av-coll-attrs . _ ...] ...)}]) |
| 188 | + !av-coll-attrs) |
189 | 189 | set |
190 | 190 | (set/difference av-coll-attrs) |
191 | 191 | empty?)))) |
| 192 | + |
| 193 | +(deftest remove-conflict-same-block-datoms-test |
| 194 | + (testing "remove conflict entity-datoms for same-block" |
| 195 | + (let [block-uuid #uuid "693ec519-e73e-4f2c-b517-7e75ca2c64da" |
| 196 | + datoms-182 [[182 :logseq.property/created-by-ref 161 536870976 false] |
| 197 | + [182 :block/created-at 1765721369994 536870976 false] |
| 198 | + [182 :block/parent 162 536870976 false] |
| 199 | + [182 :block/order "aF" 536870976 false] |
| 200 | + [182 :block/tx-id 536870972 536870976 false] |
| 201 | + [182 :block/page 162 536870976 false] |
| 202 | + [182 :block/uuid block-uuid 536870976 false] |
| 203 | + [182 :block/title "" 536870976 false] |
| 204 | + [182 :block/updated-at 1765721369994 536870976 false]] |
| 205 | + datoms-185 [[185 :block/parent 162 536870976 true] |
| 206 | + [185 :logseq.property/created-by-ref 161 536870976 true] |
| 207 | + [185 :block/title "111" 536870976 true] |
| 208 | + [185 :logseq.property.embedding/hnsw-label-updated-at 0 536870976 true] |
| 209 | + [185 :block/order "aG" 536870976 true] |
| 210 | + [185 :block/page 162 536870976 true] |
| 211 | + [185 :block/created-at 1765721370449 536870976 true] |
| 212 | + [185 :block/updated-at 1765721370449 536870976 true] |
| 213 | + [185 :block/uuid block-uuid 536870976 true] |
| 214 | + [185 :block/tx-id 536870976 536870977 true]] |
| 215 | + same-entity-datoms-coll [datoms-182 datoms-185] |
| 216 | + result (subject/remove-conflict-same-block-datoms same-entity-datoms-coll)] |
| 217 | + (is (= 1 (count result))) |
| 218 | + (is (= 185 (nth (ffirst result) 0))) |
| 219 | + (is (= datoms-185 (first result))))) |
| 220 | + |
| 221 | + (testing "remove conflict entity-datoms should preserve order" |
| 222 | + (let [block-uuid1 #uuid "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" |
| 223 | + block-uuid2 #uuid "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb" |
| 224 | + datoms-1 [[100 :block/uuid block-uuid1 1 true]] |
| 225 | + datoms-2 [[101 :block/uuid block-uuid2 2 true]] |
| 226 | + datoms-3 [[102 :block/uuid block-uuid2 2 true]] ;; Conflict with datoms-2, wins (higher ID) |
| 227 | + same-entity-datoms-coll [datoms-1 datoms-2 datoms-3] |
| 228 | + result (subject/remove-conflict-same-block-datoms same-entity-datoms-coll)] |
| 229 | + (is (= 2 (count result))) |
| 230 | + (is (= datoms-1 (first result))) |
| 231 | + (is (= datoms-3 (second result)))))) |
0 commit comments