@@ -4,11 +4,11 @@ import { beforeEach, describe, expect, it, vi } from 'vitest';
4
4
import { UserItem } from '@/database/schemas' ;
5
5
import { UserModel } from '@/database/server/models/user' ;
6
6
import { pino } from '@/libs/logger' ;
7
+ import { AgentService } from '@/server/services/agent' ;
7
8
8
9
import { UserService } from './index' ;
9
10
10
11
// Mock dependencies
11
- vi . mock ( '@/server/services/agent' ) ;
12
12
vi . mock ( '@/database/server/models/user' , ( ) => {
13
13
const MockUserModel = vi . fn ( ) ;
14
14
// @ts -ignore
@@ -30,6 +30,12 @@ vi.mock('@/libs/logger', () => ({
30
30
} ,
31
31
} ) ) ;
32
32
33
+ vi . mock ( '@/server/services/agent' , ( ) => ( {
34
+ AgentService : vi . fn ( ) . mockImplementation ( ( ) => ( {
35
+ createInbox : vi . fn ( ) . mockResolvedValue ( undefined ) ,
36
+ } ) ) ,
37
+ } ) ) ;
38
+
33
39
let service : UserService ;
34
40
const mockUserId = 'test-user-id' ;
35
41
@@ -58,7 +64,7 @@ describe('UserService', () => {
58
64
// Mock user not found
59
65
vi . mocked ( UserModel . findById ) . mockResolvedValue ( null as any ) ;
60
66
61
- await service . createUser ( mockUserId , mockUserJSON ) ;
67
+ const result = await service . createUser ( mockUserId , mockUserJSON ) ;
62
68
63
69
expect ( UserModel . findById ) . toHaveBeenCalledWith ( expect . anything ( ) , mockUserId ) ;
64
70
expect ( UserModel . createUser ) . toHaveBeenCalledWith (
@@ -74,6 +80,12 @@ describe('UserService', () => {
74
80
clerkCreatedAt : new Date ( '2023-01-01T00:00:00Z' ) ,
75
81
} ) ,
76
82
) ;
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
+ } ) ;
77
89
} ) ;
78
90
79
91
it ( 'should not create user if already exists' , async ( ) => {
@@ -84,6 +96,7 @@ describe('UserService', () => {
84
96
85
97
expect ( UserModel . findById ) . toHaveBeenCalledWith ( expect . anything ( ) , mockUserId ) ;
86
98
expect ( UserModel . createUser ) . not . toHaveBeenCalled ( ) ;
99
+ expect ( AgentService ) . not . toHaveBeenCalled ( ) ;
87
100
expect ( result ) . toEqual ( {
88
101
message : 'user not created due to user already existing in the database' ,
89
102
success : false ,
@@ -107,6 +120,8 @@ describe('UserService', () => {
107
120
phone : '+1234567890' , // Should use first phone number
108
121
} ) ,
109
122
) ;
123
+ expect ( AgentService ) . toHaveBeenCalledWith ( expect . anything ( ) , mockUserId ) ;
124
+ expect ( vi . mocked ( AgentService ) . mock . results [ 0 ] . value . createInbox ) . toHaveBeenCalled ( ) ;
110
125
} ) ;
111
126
} ) ;
112
127
0 commit comments