mirror of
https://github.com/logseq/logseq.git
synced 2026-06-01 19:01:22 +00:00
feat(dev): export client-ops sqlite from db worker
This commit is contained in:
@@ -352,3 +352,31 @@
|
||||
(finally
|
||||
(reset! db-sync/*repo->latest-remote-tx latest-tx-prev)
|
||||
(reset! db-sync/*repo->latest-remote-checksum latest-checksum-prev)))))))
|
||||
|
||||
(deftest thread-api-export-client-ops-db-checkpoints-and-exports-client-ops-file-test
|
||||
(async done
|
||||
(restoring-worker-state
|
||||
(fn []
|
||||
(let [export-client-ops-db (@thread-api/*thread-apis :thread-api/export-client-ops-db)
|
||||
sql-calls (atom [])
|
||||
export-calls (atom [])
|
||||
expected-data (js/Uint8Array. #js [1 2 3])
|
||||
expected-buffer (.-buffer expected-data)
|
||||
fake-pool #js {:exportFile (fn [path]
|
||||
(swap! export-calls conj path)
|
||||
expected-buffer)}]
|
||||
(reset! worker-state/*opfs-pools {test-repo fake-pool})
|
||||
(with-redefs [worker-state/get-sqlite-conn (fn [_repo which-db]
|
||||
(when (= :client-ops which-db)
|
||||
#js {:exec (fn [sql]
|
||||
(swap! sql-calls conj sql))}))]
|
||||
(-> (export-client-ops-db test-repo)
|
||||
(p/then (fn [result]
|
||||
(is (= ["PRAGMA wal_checkpoint(2)"] @sql-calls))
|
||||
(is (= ["client-ops-/db.sqlite"] @export-calls))
|
||||
(is (instance? js/Uint8Array result))
|
||||
(is (= [1 2 3] (vec result)))
|
||||
(done)))
|
||||
(p/catch (fn [error]
|
||||
(is false (str error))
|
||||
(done))))))))))
|
||||
|
||||
Reference in New Issue
Block a user