From 5e78be1eecb648222bcf01bfb824845cab9df00a Mon Sep 17 00:00:00 2001 From: "gru-agent[bot]" <185149714+gru-agent[bot]@users.noreply.github.com> Date: Sat, 15 Feb 2025 16:59:49 +0000 Subject: [PATCH] Add AgentService mock and verify its interaction in UserService tests. --- src/server/services/user/index.test.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/server/services/user/index.test.ts b/src/server/services/user/index.test.ts index 93d27fd1e2929..b0e20e7192b43 100644 --- a/src/server/services/user/index.test.ts +++ b/src/server/services/user/index.test.ts @@ -4,11 +4,11 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { UserItem } from '@/database/schemas'; import { UserModel } from '@/database/server/models/user'; import { pino } from '@/libs/logger'; +import { AgentService } from '@/server/services/agent'; import { UserService } from './index'; // Mock dependencies -vi.mock('@/server/services/agent'); vi.mock('@/database/server/models/user', () => { const MockUserModel = vi.fn(); // @ts-ignore @@ -30,6 +30,12 @@ vi.mock('@/libs/logger', () => ({ }, })); +vi.mock('@/server/services/agent', () => ({ + AgentService: vi.fn().mockImplementation(() => ({ + createInbox: vi.fn().mockResolvedValue(undefined), + })), +})); + let service: UserService; const mockUserId = 'test-user-id'; @@ -58,7 +64,7 @@ describe('UserService', () => { // Mock user not found vi.mocked(UserModel.findById).mockResolvedValue(null as any); - await service.createUser(mockUserId, mockUserJSON); + const result = await service.createUser(mockUserId, mockUserJSON); expect(UserModel.findById).toHaveBeenCalledWith(expect.anything(), mockUserId); expect(UserModel.createUser).toHaveBeenCalledWith( @@ -74,6 +80,12 @@ describe('UserService', () => { clerkCreatedAt: new Date('2023-01-01T00:00:00Z'), }), ); + expect(AgentService).toHaveBeenCalledWith(expect.anything(), mockUserId); + expect(vi.mocked(AgentService).mock.results[0].value.createInbox).toHaveBeenCalled(); + expect(result).toEqual({ + message: 'user created', + success: true, + }); }); it('should not create user if already exists', async () => { @@ -84,6 +96,7 @@ describe('UserService', () => { expect(UserModel.findById).toHaveBeenCalledWith(expect.anything(), mockUserId); expect(UserModel.createUser).not.toHaveBeenCalled(); + expect(AgentService).not.toHaveBeenCalled(); expect(result).toEqual({ message: 'user not created due to user already existing in the database', success: false, @@ -107,6 +120,8 @@ describe('UserService', () => { phone: '+1234567890', // Should use first phone number }), ); + expect(AgentService).toHaveBeenCalledWith(expect.anything(), mockUserId); + expect(vi.mocked(AgentService).mock.results[0].value.createInbox).toHaveBeenCalled(); }); });