open-multi-agent/tests/team-store.test.ts

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()
})
})