Files
AFFiNE-Mirror/packages/frontend/native/__tests__/pool.spec.mts
T
DarkSky 8d72e4dc29 feat(core): import progress & perf (#15197)
#### 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 -->
2026-07-06 01:29:24 +08:00

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
);
});