session-seeding-inherit-defaults.test.ts
1 import { mkdtempSync, rmSync } from 'node:fs' 2 import { tmpdir } from 'node:os' 3 import path from 'node:path' 4 5 import { afterEach, beforeEach, describe, expect, it } from 'vitest' 6 7 import { 8 ensureSession, 9 getSessionChatModelOverride, 10 } from '@/server/storage/chat-store' 11 12 const originalEnv = { ...process.env } 13 14 let tempDataDir = '' 15 16 describe('session seeding defaults', () => { 17 beforeEach(() => { 18 tempDataDir = mkdtempSync(path.join(tmpdir(), 'helper-session-seed-')) 19 resetDbConnection() 20 process.env = { 21 ...originalEnv, 22 APP_DATA_DIR: tempDataDir, 23 } 24 }) 25 26 afterEach(() => { 27 resetDbConnection() 28 rmSync(tempDataDir, { recursive: true, force: true }) 29 process.env = originalEnv 30 }) 31 32 it('creates new sessions with a null chat model override so they inherit active defaults', () => { 33 const session = ensureSession('session-inherit') 34 const override = getSessionChatModelOverride(session.id) 35 36 expect(override).toBeNull() 37 }) 38 }) 39 40 function resetDbConnection(): void { 41 const globalWithDb = globalThis as typeof globalThis & { 42 __helperDb__?: { close: () => void } 43 } 44 globalWithDb.__helperDb__?.close() 45 globalWithDb.__helperDb__ = undefined 46 }