mirror of
https://github.com/aljazceru/turso.git
synced 2026-01-17 15:14:20 +01:00
adjust tests
This commit is contained in:
@@ -13,7 +13,7 @@ function cleanup(path) {
|
||||
try { unlinkSync(`${path}-wal-revert`) } catch (e) { }
|
||||
}
|
||||
|
||||
test('partial sync', async () => {
|
||||
test('partial sync (prefix bootstrap strategy)', async () => {
|
||||
{
|
||||
const db = await connect({
|
||||
path: ':memory:',
|
||||
@@ -47,6 +47,43 @@ test('partial sync', async () => {
|
||||
expect((await db.stats()).networkReceivedBytes).toBeGreaterThanOrEqual(2000 * 1024);
|
||||
})
|
||||
|
||||
test('partial sync (query bootstrap strategy)', async () => {
|
||||
{
|
||||
const db = await connect({
|
||||
path: ':memory:',
|
||||
url: process.env.VITE_TURSO_DB_URL,
|
||||
longPollTimeoutMs: 100,
|
||||
});
|
||||
await db.exec("CREATE TABLE IF NOT EXISTS partial_keyed(key INTEGER PRIMARY KEY, value BLOB)");
|
||||
await db.exec("DELETE FROM partial_keyed");
|
||||
await db.exec("INSERT INTO partial_keyed SELECT value, randomblob(1024) FROM generate_series(1, 2000)");
|
||||
await db.push();
|
||||
await db.close();
|
||||
}
|
||||
|
||||
const db = await connect({
|
||||
path: ':memory:',
|
||||
url: process.env.VITE_TURSO_DB_URL,
|
||||
longPollTimeoutMs: 100,
|
||||
partialBootstrapStrategy: { kind: 'query', query: 'SELECT * FROM partial_keyed WHERE key = 1000' },
|
||||
});
|
||||
|
||||
// we must sync only few pages
|
||||
expect((await db.stats()).networkReceivedBytes).toBeLessThanOrEqual(10 * (4096 + 128));
|
||||
|
||||
// select of one record shouldn't increase amount of received data by a lot
|
||||
expect(await db.prepare("SELECT length(value) as length FROM partial_keyed LIMIT 1").all()).toEqual([{ length: 1024 }]);
|
||||
expect((await db.stats()).networkReceivedBytes).toBeLessThanOrEqual(10 * (4096 + 128));
|
||||
|
||||
await db.prepare("INSERT INTO partial_keyed VALUES (-1, -1)").run();
|
||||
const n1 = await db.stats();
|
||||
|
||||
// same as bootstrap query - we shouldn't bring any more pages
|
||||
expect(await db.prepare("SELECT length(value) as length FROM partial_keyed WHERE key = 1000").all()).toEqual([{ length: 1024 }]);
|
||||
const n2 = await db.stats();
|
||||
expect(n1.networkReceivedBytes).toEqual(n2.networkReceivedBytes);
|
||||
})
|
||||
|
||||
test('concurrent-actions-consistency', async () => {
|
||||
{
|
||||
const db = await connect({
|
||||
|
||||
@@ -57,7 +57,7 @@ class Database extends DatabasePromise {
|
||||
partialBoostrapStrategy = { type: "Prefix", length: opts.partialBootstrapStrategy.length };
|
||||
break;
|
||||
case "query":
|
||||
partialBoostrapStrategy = { type: "Query", length: opts.partialBootstrapStrategy.query };
|
||||
partialBoostrapStrategy = { type: "Query", query: opts.partialBootstrapStrategy.query };
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user