mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-13 16:16:46 +08:00
8d72e4dc29
#### PR Dependency Tree * **PR #15197** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a new import pipeline with “plan then commit” batch handling for Markdown, Notion HTML, Obsidian, and Bear backups. * Enabled native import sessions with progress, cancellation, and batch-by-batch committing (including assets, folders, icons, and tags). * Added web preflight limits for ZIP and multi-file imports. * **Bug Fixes** * Improved import error/warning reporting and continued processing when some items fail. * Strengthened snapshot-based file/directory picking to preserve paths. * **Chores** * Updated project packaging/configuration for the new import workflow. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
33 lines
729 B
TypeScript
33 lines
729 B
TypeScript
import test from 'ava';
|
|
|
|
import { DocStoragePool } from '../index.js';
|
|
|
|
test('can batch read/write pool', async t => {
|
|
const pool = new DocStoragePool();
|
|
await pool.connect('test', ':memory:');
|
|
|
|
const batch = 512;
|
|
|
|
await Promise.all(
|
|
Array.from({ length: batch }).map(async (_, i) => {
|
|
return pool.setBlob('test', {
|
|
key: `test-blob-${i}`,
|
|
data: new Uint8Array([i % 255]),
|
|
mime: 'text/plain',
|
|
});
|
|
})
|
|
);
|
|
|
|
const blobs = await Promise.all(
|
|
Array.from({ length: batch }).map(async (_, i) => {
|
|
return pool.getBlob('test', `test-blob-${i}`);
|
|
})
|
|
);
|
|
|
|
t.is(blobs.length, batch);
|
|
t.is(
|
|
blobs.every((blob, i) => blob!.data.at(0) === i % 255),
|
|
true
|
|
);
|
|
});
|