Skip to content

Commit d52db7d

Browse files
gru-agent[bot]arvinxx
authored andcommitted
Add AgentService mock and verify its interaction in UserService tests. (#6187)
Co-authored-by: gru-agent[bot] <185149714+gru-agent[bot]@users.noreply.github.com>
1 parent 2caace3 commit d52db7d

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/server/services/user/index.test.ts

+17-2
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import { beforeEach, describe, expect, it, vi } from 'vitest';
44
import { UserItem } from '@/database/schemas';
55
import { UserModel } from '@/database/server/models/user';
66
import { pino } from '@/libs/logger';
7+
import { AgentService } from '@/server/services/agent';
78

89
import { UserService } from './index';
910

1011
// Mock dependencies
11-
vi.mock('@/server/services/agent');
1212
vi.mock('@/database/server/models/user', () => {
1313
const MockUserModel = vi.fn();
1414
// @ts-ignore
@@ -30,6 +30,12 @@ vi.mock('@/libs/logger', () => ({
3030
},
3131
}));
3232

33+
vi.mock('@/server/services/agent', () => ({
34+
AgentService: vi.fn().mockImplementation(() => ({
35+
createInbox: vi.fn().mockResolvedValue(undefined),
36+
})),
37+
}));
38+
3339
let service: UserService;
3440
const mockUserId = 'test-user-id';
3541

@@ -58,7 +64,7 @@ describe('UserService', () => {
5864
// Mock user not found
5965
vi.mocked(UserModel.findById).mockResolvedValue(null as any);
6066

61-
await service.createUser(mockUserId, mockUserJSON);
67+
const result = await service.createUser(mockUserId, mockUserJSON);
6268

6369
expect(UserModel.findById).toHaveBeenCalledWith(expect.anything(), mockUserId);
6470
expect(UserModel.createUser).toHaveBeenCalledWith(
@@ -74,6 +80,12 @@ describe('UserService', () => {
7480
clerkCreatedAt: new Date('2023-01-01T00:00:00Z'),
7581
}),
7682
);
83+
expect(AgentService).toHaveBeenCalledWith(expect.anything(), mockUserId);
84+
expect(vi.mocked(AgentService).mock.results[0].value.createInbox).toHaveBeenCalled();
85+
expect(result).toEqual({
86+
message: 'user created',
87+
success: true,
88+
});
7789
});
7890

7991
it('should not create user if already exists', async () => {
@@ -84,6 +96,7 @@ describe('UserService', () => {
8496

8597
expect(UserModel.findById).toHaveBeenCalledWith(expect.anything(), mockUserId);
8698
expect(UserModel.createUser).not.toHaveBeenCalled();
99+
expect(AgentService).not.toHaveBeenCalled();
87100
expect(result).toEqual({
88101
message: 'user not created due to user already existing in the database',
89102
success: false,
@@ -107,6 +120,8 @@ describe('UserService', () => {
107120
phone: '+1234567890', // Should use first phone number
108121
}),
109122
);
123+
expect(AgentService).toHaveBeenCalledWith(expect.anything(), mockUserId);
124+
expect(vi.mocked(AgentService).mock.results[0].value.createInbox).toHaveBeenCalled();
110125
});
111126
});
112127

0 commit comments

Comments
 (0)