@@ -6,15 +6,24 @@ import {
66 createTestRequest ,
77 createTestUser ,
88} from "@/lib/utils.tests" ;
9- import * as userRepository from "@/repositories/user.repository" ;
109import { getSession } from "@/session.server" ;
10+ import { prisma } from "@/db/prisma" ;
11+ import type { User } from "generated/prisma/client" ;
1112
1213import * as userService from "./user.service" ;
1314
1415// Mocking dependencies for unit tests
1516vi . mock ( "@/session.server" ) ;
16- vi . mock ( "@/repositories/user.repository" ) ;
1717vi . mock ( "@/lib/security" ) ;
18+ vi . mock ( "@/db/prisma" , ( ) => ( {
19+ prisma : {
20+ user : {
21+ update : vi . fn ( ) ,
22+ findUnique : vi . fn ( ) ,
23+ create : vi . fn ( ) ,
24+ } ,
25+ } ,
26+ } ) ) ;
1827
1928describe ( "user service" , ( ) => {
2029 beforeEach ( ( ) => {
@@ -29,7 +38,7 @@ describe("user service", () => {
2938 const mockSession = createMockSession ( updatedUser . id ) ; // Simulate updated user ID in session
3039
3140 // Mockeando las funciones que serán llamadas
32- vi . mocked ( userRepository . updateUser ) . mockResolvedValue ( updatedUser ) ;
41+ vi . mocked ( prisma . user . update ) . mockResolvedValue ( updatedUser ) ;
3342 vi . mocked ( getSession ) . mockResolvedValue ( mockSession ) ;
3443
3544 // Llamando al servicio y verificando el resultado
@@ -51,6 +60,10 @@ describe("user service", () => {
5160 // Mockeando las funciones que serán llamadas
5261 vi . mocked ( getSession ) . mockResolvedValue ( mockSession ) ;
5362 vi . mocked ( hashPassword ) . mockResolvedValue ( "hashed-password" ) ;
63+ vi . mocked ( prisma . user . update ) . mockResolvedValue ( {
64+ ...updatedUser ,
65+ password : "hashed-password" ,
66+ } ) ;
5467
5568 // Llamando al servicio y verificando el resultado
5669 await userService . updateUser ( updatedUser , request ) ;
@@ -88,15 +101,15 @@ describe("user service", () => {
88101 } ) ;
89102
90103 // Mock repository function to return existing user
91- vi . mocked ( userRepository . getUserByEmail ) . mockResolvedValue ( existingUser ) ;
104+ vi . mocked ( prisma . user . findUnique ) . mockResolvedValue ( existingUser ) ;
92105
93106 // Call service function
94107 const result = await userService . getOrCreateUser ( email ) ;
95108
96109 // Verify results
97110 expect ( result ) . toEqual ( existingUser ) ;
98- expect ( userRepository . getUserByEmail ) . toHaveBeenCalledWith ( email ) ;
99- expect ( userRepository . createUser ) . not . toHaveBeenCalled ( ) ;
111+ expect ( prisma . user . findUnique ) . toHaveBeenCalledWith ( { where : { email } } ) ;
112+ expect ( prisma . user . create ) . not . toHaveBeenCalled ( ) ;
100113 } ) ;
101114
102115 it ( "should create a new guest user when email is not found" , async ( ) => {
@@ -107,21 +120,22 @@ describe("user service", () => {
107120 id : 20 ,
108121 isGuest : true ,
109122 } ) ;
110- const createUserDTO = {
111- email,
112- password : null ,
113- isGuest : true ,
114- name : null ,
115- } ;
116123 // Mock repository functions
117- vi . mocked ( userRepository . getUserByEmail ) . mockResolvedValue ( null ) ;
118- vi . mocked ( userRepository . createUser ) . mockResolvedValue ( newUser ) ;
124+ vi . mocked ( prisma . user . findUnique ) . mockResolvedValue ( null ) ;
125+ vi . mocked ( prisma . user . create ) . mockResolvedValue ( newUser ) ;
119126 // Call service function
120127 const result = await userService . getOrCreateUser ( email ) ;
121128 // Verify results
122129 expect ( result ) . toEqual ( newUser ) ;
123- expect ( userRepository . getUserByEmail ) . toHaveBeenCalledWith ( email ) ;
124- expect ( userRepository . createUser ) . toHaveBeenCalledWith ( createUserDTO ) ;
130+ expect ( prisma . user . findUnique ) . toHaveBeenCalledWith ( { where : { email } } ) ;
131+ expect ( prisma . user . create ) . toHaveBeenCalledWith ( {
132+ data : {
133+ email,
134+ password : null ,
135+ isGuest : true ,
136+ name : null ,
137+ } ,
138+ } ) ;
125139 } ) ;
126140 } ) ;
127141} ) ;
0 commit comments