1+ import { makeDELETERequests } from "../../utils/FetchFunctionsTests/deleteFunction.js" ;
2+ import { makePOSTRequests } from "../../utils/FetchFunctionsTests/postFunction.js" ;
3+ import { PrismaService } from "../../database/prisma/prismaService.js" ;
4+ import { describe , it , before , after } from "node:test" ;
5+ import assert from "node:assert" ;
6+
7+ const prismaService = new PrismaService ( ) ;
8+
9+ describe ( "UserController (deleteUser) Tests" , ( ) => {
10+
11+ before ( async ( ) => {
12+ await prismaService . _prismaService . users . deleteMany ( ) ;
13+ } ) ;
14+
15+ after ( async ( ) => {
16+ await prismaService . _prismaService . users . deleteMany ( ) ;
17+ await prismaService . _prismaService . $disconnect ( ) ;
18+ } ) ;
19+
20+ it ( "should be able to delete a user, if the paramethers are ok" , async ( ) => {
21+
22+ const user = {
23+ username : "Luella Reese" ,
24+ email : "op@ba.ao@pisseb.hk" ,
25+ password : "4499"
26+ }
27+
28+ const endPoint1 = "createUser" ;
29+ await makePOSTRequests ( endPoint1 , user ) ;
30+
31+ const endPoint2 = "loginUser" ;
32+ const request = {
33+ email : user . email ,
34+ password : user . password
35+ }
36+
37+ const data2 = await makePOSTRequests ( endPoint2 , request ) ;
38+
39+ const endPoint3 = "deleteUser" ;
40+ const request2 = {
41+ user_id : data2 . user . user_id ,
42+ token : data2 . accessToken
43+ }
44+
45+ const data3 = await makeDELETERequests ( endPoint3 , request2 ) ;
46+
47+ assert . strictEqual ( data3 . message , "User deleted with sucess !" ) ;
48+ } ) ;
49+
50+ it ( "should not be able to Delete a user, if user dosen't have or dosen't set a valid (token)" , async ( ) => {
51+
52+ const user = {
53+ username : "Melvin Logan" ,
54+ email : "faozeto@su.so" ,
55+ password : "5577"
56+ }
57+
58+ const endPoint1 = "createUser" ;
59+ await makePOSTRequests ( endPoint1 , user ) ;
60+
61+ const endPoint2 = "loginUser" ;
62+ const request = {
63+ email : user . email ,
64+ password : user . password
65+ }
66+
67+ const data2 = await makePOSTRequests ( endPoint2 , request ) ;
68+
69+ const endPoint3 = "deleteUser" ;
70+ const request2 = {
71+ user_id : data2 . user . user_id ,
72+ token : ""
73+ }
74+
75+ const data3 = await makeDELETERequests ( endPoint3 , request2 ) ;
76+
77+ assert . strictEqual ( data3 . message , "jwt must be provided" ) ;
78+ } ) ;
79+
80+ it ( "should not be able to Delete a user, if the (token) is not valid or fake" , async ( ) => {
81+
82+ const user = {
83+ username : "Samuel Gomez" ,
84+ email : "fowzepe@li.km" ,
85+ password : "6688"
86+ }
87+
88+ const endPoint1 = "createUser" ;
89+ await makePOSTRequests ( endPoint1 , user ) ;
90+
91+ const endPoint2 = "loginUser" ;
92+ const request = {
93+ email : user . email ,
94+ password : user . password
95+ }
96+
97+ const data2 = await makePOSTRequests ( endPoint2 , request ) ;
98+
99+ const endPoint3 = "deleteUser" ;
100+ const request2 = {
101+ user_id : data2 . user . user_id ,
102+ token : "FAKE_TOKEN"
103+ }
104+
105+ const data3 = await makeDELETERequests ( endPoint3 , request2 ) ;
106+
107+ assert . rejects ( async ( ) => {
108+ throw new TypeError ( data3 . message ) ;
109+ } , {
110+ message : "jwt malformed"
111+ } ) ;
112+
113+ } ) ;
114+
115+ it ( "should not be able to Delete a user, if (token) is not valid" , async ( ) => {
116+
117+ const user = {
118+ username : "Mollie Miller" ,
119+ email : "menfa@hiubo.cm" ,
120+ password : "7733"
121+ }
122+
123+ const endPoint1 = "createUser" ;
124+ await makePOSTRequests ( endPoint1 , user ) ;
125+
126+ const endPoint2 = "loginUser" ;
127+ const request = {
128+ email : user . email ,
129+ password : user . password
130+ }
131+
132+ const data2 = await makePOSTRequests ( endPoint2 , request ) ;
133+
134+ const endPoint3 = "deleteUser" ;
135+ const request2 = {
136+ user_id : data2 . user . user_id ,
137+ token : process . env . INVALID_TOKEN
138+ }
139+
140+ const data3 = await makeDELETERequests ( endPoint3 , request2 ) ;
141+
142+ assert . rejects ( async ( ) => {
143+ throw new TypeError ( data3 . message ) ;
144+ } , {
145+ message : "invalid token"
146+ } ) ;
147+
148+ } ) ;
149+
150+ it ( "should not be able to DeletUser a user, if the (token) signature is not valid" , async ( ) => {
151+
152+ const user = {
153+ username : "Abbie Bailey" ,
154+ email : "ojogu@joutowuh.dj" ,
155+ password : "2277"
156+ }
157+
158+ const endPoint1 = "createUser" ;
159+ await makePOSTRequests ( endPoint1 , user ) ;
160+
161+ const endPoint2 = "loginUser" ;
162+ const request = {
163+ email : user . email ,
164+ password : user . password
165+ }
166+
167+ const data2 = await makePOSTRequests ( endPoint2 , request ) ;
168+
169+ const endPoint3 = "deleteUser" ;
170+ const request2 = {
171+ user_id : data2 . user . user_id ,
172+ token : process . env . FAKE_TOKEN
173+ }
174+
175+ const data3 = await makeDELETERequests ( endPoint3 , request2 ) ;
176+
177+ assert . rejects ( async ( ) => {
178+ throw new TypeError ( data3 . message ) ;
179+ } , {
180+ message : "invalid signature"
181+ } ) ;
182+
183+ } ) ;
184+
185+ it ( "should not be able to Update a user, if user dosen't set a (user_id)" , async ( ) => {
186+
187+ const user = {
188+ username : "Lewis Gibson" ,
189+ email : "to@za.mu" ,
190+ password : "4554"
191+ }
192+
193+ const endPoint1 = "createUser" ;
194+ await makePOSTRequests ( endPoint1 , user ) ;
195+
196+ const endPoint2 = "loginUser" ;
197+ const request = {
198+ email : user . email ,
199+ password : user . password
200+ }
201+
202+ const data2 = await makePOSTRequests ( endPoint2 , request ) ;
203+
204+ const endPoint3 = "deleteUser" ;
205+ const request2 = {
206+ user_id : "" ,
207+ token : data2 . accessToken
208+ }
209+
210+ const data3 = await makeDELETERequests ( endPoint3 , request2 ) ;
211+
212+ assert . rejects ( async ( ) => {
213+ throw new TypeError ( data3 . message ) ;
214+ } , {
215+ message : "User id must have a value !"
216+ } ) ;
217+
218+ } ) ;
219+
220+ it ( "should not be able to DeleteUser a user, if (user_id) is not valid/wrong" , async ( ) => {
221+
222+ const user = {
223+ username : "Lois Carlson" ,
224+ email : "po@bod.tv" ,
225+ password : "9988"
226+ }
227+
228+ const endPoint1 = "createUser" ;
229+ await makePOSTRequests ( endPoint1 , user ) ;
230+
231+ const endPoint2 = "loginUser" ;
232+ const request = {
233+ email : user . email ,
234+ password : user . password
235+ }
236+
237+ const data2 = await makePOSTRequests ( endPoint2 , request ) ;
238+
239+ const endPoint3 = "deleteUser" ;
240+ const request2 = {
241+ user_id : process . env . FAKE_USER_ID ,
242+ token : data2 . accessToken
243+ }
244+
245+ const data3 = await makeDELETERequests ( endPoint3 , request2 ) ;
246+
247+ assert . rejects ( async ( ) => {
248+ throw new TypeError ( data3 . message ) ;
249+ } , {
250+ message : "User not found !"
251+ } ) ;
252+
253+ } ) ;
254+
255+ } ) ;
0 commit comments