/ tests / session-seeding-inherit-defaults.test.ts
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  }