Persistent server search cache: 200 results per query, 250k queries, 15-day stale-while-revalidate, refresh=1
This commit is contained in:
20
server/search-cache.test.js
Normal file
20
server/search-cache.test.js
Normal file
@@ -0,0 +1,20 @@
|
||||
import { test, expect } from 'bun:test';
|
||||
import * as sc from './search-cache.js';
|
||||
import { initDb } from './db.js';
|
||||
|
||||
await initDb();
|
||||
const cards = (n) => Array.from({ length: n }, (_, i) => ({ id: 'v' + i, title: 't' + i }));
|
||||
|
||||
test('put/get round-trips, case-insensitive, capped at 200', async () => {
|
||||
await sc.put('Hello World', cards(300));
|
||||
const r = await sc.get('hello world');
|
||||
expect(r.results.length).toBe(200);
|
||||
expect(await sc.get('nope')).toBeNull();
|
||||
});
|
||||
|
||||
test('trim evicts least-recently-used rows over the row cap', async () => {
|
||||
for (let i = 0; i < 6; i++) await sc.put('q' + i, cards(3));
|
||||
const dropped = await sc.trim({ maxRows: 3 });
|
||||
expect(dropped).toBeGreaterThan(0);
|
||||
expect((await sc.stats()).queries).toBe(3);
|
||||
});
|
||||
Reference in New Issue
Block a user