Sifa professional network API (Fastify, AT Protocol, Jetstream) sifa.id/
at main 29 lines 1.0 kB view raw
1import { describe, it, expect, afterAll } from 'vitest'; 2import { createDb } from '../../src/db/index.js'; 3import { createCursorManager } from '../../src/jetstream/cursor.js'; 4import { sql } from 'drizzle-orm'; 5 6describe('Cursor manager', () => { 7 const db = createDb(process.env.DATABASE_URL ?? 'postgresql://sifa:sifa@localhost:5432/sifa'); 8 9 afterAll(async () => { 10 // Clean up test data 11 await db.execute(sql`DELETE FROM jetstream_cursor WHERE id = 'test'`); 12 await db.$client.end(); 13 }); 14 15 it('returns undefined when no cursor exists', async () => { 16 const cm = createCursorManager(db, 'test'); 17 // Delete any existing test cursor 18 await db.execute(sql`DELETE FROM jetstream_cursor WHERE id = 'test'`); 19 const cursor = await cm.get(); 20 expect(cursor).toBeUndefined(); 21 }); 22 23 it('saves and retrieves cursor', async () => { 24 const cm = createCursorManager(db, 'test'); 25 await cm.save(9999999n); 26 const cursor = await cm.get(); 27 expect(cursor).toBe(9999999n); 28 }); 29});