mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-10 21:48:48 +08:00
feat(y-indexeddb): cleanup (#2207)
Co-authored-by: himself65 <himself65@outlook.com>
This commit is contained in:
@@ -13,6 +13,7 @@ import { applyUpdate, Doc, encodeStateAsUpdate } from 'yjs';
|
||||
|
||||
import type { WorkspacePersist } from '../index';
|
||||
import {
|
||||
CleanupWhenConnectingError,
|
||||
createIndexedDBProvider,
|
||||
dbVersion,
|
||||
DEFAULT_DB_NAME,
|
||||
@@ -59,7 +60,7 @@ describe('indexeddb provider', () => {
|
||||
await provider.whenSynced;
|
||||
const db = await openDB(rootDBName, dbVersion);
|
||||
{
|
||||
const store = await db
|
||||
const store = db
|
||||
.transaction('workspace', 'readonly')
|
||||
.objectStore('workspace');
|
||||
const data = await store.get(id);
|
||||
@@ -161,6 +162,43 @@ describe('indexeddb provider', () => {
|
||||
expect(p1).not.toBe(p2);
|
||||
});
|
||||
|
||||
test('cleanup', async () => {
|
||||
const provider = createIndexedDBProvider(workspace.id, workspace.doc);
|
||||
provider.connect();
|
||||
await provider.whenSynced;
|
||||
const db = await openDB(rootDBName, dbVersion);
|
||||
|
||||
{
|
||||
const store = db
|
||||
.transaction('workspace', 'readonly')
|
||||
.objectStore('workspace');
|
||||
const keys = await store.getAllKeys();
|
||||
expect(keys).contain(workspace.id);
|
||||
}
|
||||
|
||||
provider.disconnect();
|
||||
await provider.cleanup();
|
||||
|
||||
{
|
||||
const store = db
|
||||
.transaction('workspace', 'readonly')
|
||||
.objectStore('workspace');
|
||||
const keys = await store.getAllKeys();
|
||||
expect(keys).not.contain(workspace.id);
|
||||
}
|
||||
});
|
||||
|
||||
test('cleanup when connecting', async () => {
|
||||
const provider = createIndexedDBProvider(workspace.id, workspace.doc);
|
||||
provider.connect();
|
||||
expect(() => provider.cleanup()).rejects.toThrowError(
|
||||
CleanupWhenConnectingError
|
||||
);
|
||||
await provider.whenSynced;
|
||||
provider.disconnect();
|
||||
await provider.cleanup();
|
||||
});
|
||||
|
||||
test('merge', async () => {
|
||||
setMergeCount(5);
|
||||
const provider = createIndexedDBProvider(
|
||||
|
||||
Reference in New Issue
Block a user