Skip to content

Commit a9f7d96

Browse files
Add unit tests for AgentService, including createInbox method scenarios. (#6188)
Co-authored-by: gru-agent[bot] <185149714+gru-agent[bot]@users.noreply.github.com>
1 parent e617619 commit a9f7d96

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
// @vitest-environment node
2+
import { beforeEach, describe, expect, it, vi } from 'vitest';
3+
4+
import { SessionModel } from '@/database/server/models/session';
5+
import { parseAgentConfig } from '@/server/globalConfig/parseDefaultAgent';
6+
7+
import { AgentService } from './index';
8+
9+
vi.mock('@/config/app', () => ({
10+
appEnv: {
11+
DEFAULT_AGENT_CONFIG: 'model=gpt-4;temperature=0.7',
12+
},
13+
}));
14+
15+
vi.mock('@/server/globalConfig/parseDefaultAgent', () => ({
16+
parseAgentConfig: vi.fn(),
17+
}));
18+
19+
vi.mock('@/database/server/models/session', () => ({
20+
SessionModel: vi.fn(),
21+
}));
22+
23+
describe('AgentService', () => {
24+
let service: AgentService;
25+
const mockDb = {} as any;
26+
const mockUserId = 'test-user-id';
27+
28+
beforeEach(() => {
29+
vi.clearAllMocks();
30+
service = new AgentService(mockDb, mockUserId);
31+
});
32+
33+
describe('createInbox', () => {
34+
it('should create inbox with default agent config', async () => {
35+
const mockConfig = { model: 'gpt-4', temperature: 0.7 };
36+
const mockSessionModel = {
37+
createInbox: vi.fn(),
38+
};
39+
40+
(SessionModel as any).mockImplementation(() => mockSessionModel);
41+
(parseAgentConfig as any).mockReturnValue(mockConfig);
42+
43+
await service.createInbox();
44+
45+
expect(SessionModel).toHaveBeenCalledWith(mockDb, mockUserId);
46+
expect(parseAgentConfig).toHaveBeenCalledWith('model=gpt-4;temperature=0.7');
47+
expect(mockSessionModel.createInbox).toHaveBeenCalledWith(mockConfig);
48+
});
49+
50+
it('should create inbox with empty config if parseAgentConfig returns undefined', async () => {
51+
const mockSessionModel = {
52+
createInbox: vi.fn(),
53+
};
54+
55+
(SessionModel as any).mockImplementation(() => mockSessionModel);
56+
(parseAgentConfig as any).mockReturnValue(undefined);
57+
58+
await service.createInbox();
59+
60+
expect(SessionModel).toHaveBeenCalledWith(mockDb, mockUserId);
61+
expect(parseAgentConfig).toHaveBeenCalledWith('model=gpt-4;temperature=0.7');
62+
expect(mockSessionModel.createInbox).toHaveBeenCalledWith({});
63+
});
64+
});
65+
});

0 commit comments

Comments
 (0)