Skip to content

Commit 01d54b9

Browse files
Add AgentService mock and verify its interaction in UserService tests.
1 parent 9795a6b commit 01d54b9

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

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

+17-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ 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

@@ -29,6 +30,12 @@ vi.mock('@/libs/logger', () => ({
2930
},
3031
}));
3132

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

@@ -57,7 +64,7 @@ describe('UserService', () => {
5764
// Mock user not found
5865
vi.mocked(UserModel.findById).mockResolvedValue(null as any);
5966

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

6269
expect(UserModel.findById).toHaveBeenCalledWith(expect.anything(), mockUserId);
6370
expect(UserModel.createUser).toHaveBeenCalledWith(
@@ -73,6 +80,12 @@ describe('UserService', () => {
7380
clerkCreatedAt: new Date('2023-01-01T00:00:00Z'),
7481
}),
7582
);
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+
});
7689
});
7790

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

8497
expect(UserModel.findById).toHaveBeenCalledWith(expect.anything(), mockUserId);
8598
expect(UserModel.createUser).not.toHaveBeenCalled();
99+
expect(AgentService).not.toHaveBeenCalled();
86100
expect(result).toEqual({
87101
message: 'user not created due to user already existing in the database',
88102
success: false,
@@ -106,6 +120,8 @@ describe('UserService', () => {
106120
phone: '+1234567890', // Should use first phone number
107121
}),
108122
);
123+
expect(AgentService).toHaveBeenCalledWith(expect.anything(), mockUserId);
124+
expect(vi.mocked(AgentService).mock.results[0].value.createInbox).toHaveBeenCalled();
109125
});
110126
});
111127

0 commit comments

Comments
 (0)