51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
import { describe, it, expect } from 'vitest'
|
|
import { Team } from '../src/team/team.js'
|
|
import { InMemoryStore } from '../src/memory/store.js'
|
|
import { InMemoryMessageStore } from '../src/memory/in-memory-message-store.js'
|
|
|
|
describe('Team with injected stores', () => {
|
|
it('passes store to SharedMemory when sharedMemory is true', async () => {
|
|
const store = new InMemoryStore()
|
|
const team = new Team({
|
|
name: 'test',
|
|
agents: [{ name: 'a', model: 'gpt-4' }],
|
|
sharedMemory: true,
|
|
store,
|
|
})
|
|
|
|
const mem = team.getSharedMemoryInstance()
|
|
expect(mem).toBeDefined()
|
|
await mem!.write('agent', 'key', 'value')
|
|
const entry = await store.get('agent/key')
|
|
expect(entry).not.toBeNull()
|
|
expect(entry!.value).toBe('value')
|
|
})
|
|
|
|
it('passes messageStore to MessageBus', async () => {
|
|
const messageStore = new InMemoryMessageStore()
|
|
const team = new Team({
|
|
name: 'test',
|
|
agents: [{ name: 'a', model: 'gpt-4' }],
|
|
messageStore,
|
|
})
|
|
|
|
team.sendMessage('a', 'b', 'hello')
|
|
|
|
const stored = await messageStore.query({ to: 'b' })
|
|
expect(stored).toHaveLength(1)
|
|
expect(stored[0].content).toBe('hello')
|
|
})
|
|
|
|
it('works without any injected stores (backward compat)', () => {
|
|
const team = new Team({
|
|
name: 'test',
|
|
agents: [{ name: 'a', model: 'gpt-4' }],
|
|
sharedMemory: true,
|
|
})
|
|
|
|
team.sendMessage('a', 'b', 'hi')
|
|
expect(team.getMessages('b')).toHaveLength(1)
|
|
expect(team.getSharedMemory()).toBeDefined()
|
|
})
|
|
})
|