@@ -4,6 +4,7 @@ import axios from "axios";
4
4
import { faker } from "@faker-js/faker" ;
5
5
import * as hooks from "../../contexts/AuthContext" ;
6
6
import Navbar from "." ;
7
+ import { MemoryRouter } from "react-router-dom" ;
7
8
8
9
jest . mock ( "axios" ) ;
9
10
@@ -45,6 +46,7 @@ describe("Navigation routes", () => {
45
46
signup : jest . fn ( ) ,
46
47
login : jest . fn ( ) ,
47
48
logout : jest . fn ( ) ,
49
+ loading : false ,
48
50
user : {
49
51
id : "1" ,
50
52
username,
@@ -57,7 +59,11 @@ describe("Navigation routes", () => {
57
59
isAdmin,
58
60
} ,
59
61
} ) ) ;
60
- render ( < Navbar /> ) ;
62
+ render (
63
+ < MemoryRouter >
64
+ < Navbar />
65
+ </ MemoryRouter >
66
+ ) ;
61
67
expect ( screen . getByRole ( "link" , { name : "Questions" } ) ) . toBeInTheDocument ( ) ;
62
68
} ) ;
63
69
} ) ;
@@ -69,9 +75,14 @@ describe("Unauthenticated user", () => {
69
75
signup : jest . fn ( ) ,
70
76
login : jest . fn ( ) ,
71
77
logout : jest . fn ( ) ,
78
+ loading : false ,
72
79
user : null ,
73
80
} ) ) ;
74
- render ( < Navbar /> ) ;
81
+ render (
82
+ < MemoryRouter >
83
+ < Navbar />
84
+ </ MemoryRouter >
85
+ ) ;
75
86
expect ( screen . getByRole ( "button" , { name : "Sign up" } ) ) . toBeInTheDocument ( ) ;
76
87
} ) ;
77
88
@@ -81,9 +92,14 @@ describe("Unauthenticated user", () => {
81
92
signup : jest . fn ( ) ,
82
93
login : jest . fn ( ) ,
83
94
logout : jest . fn ( ) ,
95
+ loading : false ,
84
96
user : null ,
85
97
} ) ) ;
86
- render ( < Navbar /> ) ;
98
+ render (
99
+ < MemoryRouter >
100
+ < Navbar />
101
+ </ MemoryRouter >
102
+ ) ;
87
103
expect ( screen . getByRole ( "button" , { name : "Log in" } ) ) . toBeInTheDocument ( ) ;
88
104
} ) ;
89
105
} ) ;
@@ -117,6 +133,7 @@ describe("Authenticated user", () => {
117
133
signup : jest . fn ( ) ,
118
134
login : jest . fn ( ) ,
119
135
logout : jest . fn ( ) ,
136
+ loading : false ,
120
137
user : {
121
138
id : "1" ,
122
139
username,
@@ -129,7 +146,11 @@ describe("Authenticated user", () => {
129
146
isAdmin,
130
147
} ,
131
148
} ) ) ;
132
- render ( < Navbar /> ) ;
149
+ render (
150
+ < MemoryRouter >
151
+ < Navbar />
152
+ </ MemoryRouter >
153
+ ) ;
133
154
expect ( screen . getByTestId ( "profile" ) ) . toBeInTheDocument ( ) ;
134
155
} ) ;
135
156
@@ -161,6 +182,7 @@ describe("Authenticated user", () => {
161
182
signup : jest . fn ( ) ,
162
183
login : jest . fn ( ) ,
163
184
logout : jest . fn ( ) ,
185
+ loading : false ,
164
186
user : {
165
187
id : "1" ,
166
188
username,
@@ -173,11 +195,15 @@ describe("Authenticated user", () => {
173
195
isAdmin,
174
196
} ,
175
197
} ) ) ;
176
- render ( < Navbar /> ) ;
198
+ render (
199
+ < MemoryRouter >
200
+ < Navbar />
201
+ </ MemoryRouter >
202
+ ) ;
177
203
const avatar = screen . getByTestId ( "profile" ) ;
178
204
fireEvent . click ( avatar ) ;
179
205
expect (
180
- screen . getByRole ( "menuitem" , { name : "Profile" } ) ,
206
+ screen . getByRole ( "menuitem" , { name : "Profile" } )
181
207
) . toBeInTheDocument ( ) ;
182
208
} ) ;
183
209
@@ -209,6 +235,7 @@ describe("Authenticated user", () => {
209
235
signup : jest . fn ( ) ,
210
236
login : jest . fn ( ) ,
211
237
logout : jest . fn ( ) ,
238
+ loading : false ,
212
239
user : {
213
240
id : "1" ,
214
241
username,
@@ -221,7 +248,11 @@ describe("Authenticated user", () => {
221
248
isAdmin,
222
249
} ,
223
250
} ) ) ;
224
- render ( < Navbar /> ) ;
251
+ render (
252
+ < MemoryRouter >
253
+ < Navbar />
254
+ </ MemoryRouter >
255
+ ) ;
225
256
const avatar = screen . getByTestId ( "profile" ) ;
226
257
fireEvent . click ( avatar ) ;
227
258
expect ( mockUseNavigate ) . toHaveBeenCalled ( ) ;
@@ -255,6 +286,7 @@ describe("Authenticated user", () => {
255
286
signup : jest . fn ( ) ,
256
287
login : jest . fn ( ) ,
257
288
logout : jest . fn ( ) ,
289
+ loading : false ,
258
290
user : {
259
291
id : "1" ,
260
292
username,
@@ -267,11 +299,15 @@ describe("Authenticated user", () => {
267
299
isAdmin,
268
300
} ,
269
301
} ) ) ;
270
- render ( < Navbar /> ) ;
302
+ render (
303
+ < MemoryRouter >
304
+ < Navbar />
305
+ </ MemoryRouter >
306
+ ) ;
271
307
const avatar = screen . getByTestId ( "profile" ) ;
272
308
fireEvent . click ( avatar ) ;
273
309
expect (
274
- screen . getByRole ( "menuitem" , { name : "Logout" } ) ,
310
+ screen . getByRole ( "menuitem" , { name : "Logout" } )
275
311
) . toBeInTheDocument ( ) ;
276
312
} ) ;
277
313
} ) ;
0 commit comments