feat: update migration test page (#2871)

This commit is contained in:
Alex Yang
2023-06-28 16:46:08 +08:00
parent fc36aac0fb
commit 72378abe56
3 changed files with 60 additions and 1 deletions

View File

@@ -20,6 +20,7 @@ import {
downloadBinary,
getMilestones,
markMilestone,
overwriteBinary,
revertUpdate,
setMergeCount,
} from '../index';
@@ -488,4 +489,17 @@ describe('utils', () => {
}, 0)
);
});
test('overwrite binary', async () => {
await overwriteBinary('test', new Uint8Array([1, 2, 3]));
{
const binary = await downloadBinary('test');
expect(binary).toEqual(new Uint8Array([1, 2, 3]));
}
await overwriteBinary('test', new Uint8Array([0, 0]));
{
const binary = await downloadBinary('test');
expect(binary).toEqual(new Uint8Array([0, 0]));
}
});
});

View File

@@ -143,3 +143,24 @@ export async function downloadBinary(
return mergeUpdates(doc.updates.map(({ update }) => update));
}
}
export async function overwriteBinary(
guid: string,
update: UpdateMessage['update'],
dbName = DEFAULT_DB_NAME
) {
const dbPromise = openDB<BlockSuiteBinaryDB>(dbName, dbVersion, {
upgrade: upgradeDB,
});
const db = await dbPromise;
const t = db.transaction('workspace', 'readwrite').objectStore('workspace');
await t.put({
id: guid,
updates: [
{
timestamp: Date.now(),
update,
},
],
});
}