43 lines
1.0 KiB
TypeScript
43 lines
1.0 KiB
TypeScript
import { describe, it, expect } from 'vitest'
|
|
import { KV, STREAM, generateId } from '../src/state/schema.js'
|
|
|
|
describe('KV', () => {
|
|
it('has correct session scope', () => {
|
|
expect(KV.sessions).toBe('mem:sessions')
|
|
})
|
|
|
|
it('generates observation scope with session ID', () => {
|
|
expect(KV.observations('ses_123')).toBe('mem:obs:ses_123')
|
|
})
|
|
|
|
it('has correct summaries scope', () => {
|
|
expect(KV.summaries).toBe('mem:summaries')
|
|
})
|
|
})
|
|
|
|
describe('STREAM', () => {
|
|
it('has correct name', () => {
|
|
expect(STREAM.name).toBe('mem-live')
|
|
})
|
|
|
|
it('group returns session ID', () => {
|
|
expect(STREAM.group('ses_123')).toBe('ses_123')
|
|
})
|
|
})
|
|
|
|
describe('generateId', () => {
|
|
it('includes prefix', () => {
|
|
expect(generateId('obs')).toMatch(/^obs_/)
|
|
})
|
|
|
|
it('generates unique IDs', () => {
|
|
const ids = new Set(Array.from({ length: 100 }, () => generateId('test')))
|
|
expect(ids.size).toBe(100)
|
|
})
|
|
|
|
it('has sufficient length', () => {
|
|
const id = generateId('obs')
|
|
expect(id.length).toBeGreaterThan(15)
|
|
})
|
|
})
|