|
1 | 1 | import React from "react"; |
2 | 2 | import "@testing-library/jest-dom"; |
3 | | -import { render, screen, waitFor, within } from "@testing-library/react"; |
4 | | -import SelectYourRolePage from "../app/selectyourrole/page"; |
| 3 | +import { render, screen, waitFor } from "@testing-library/react"; |
| 4 | +import SelectYourRolePage from "@/app/selectyourrole/page"; |
5 | 5 | import { AuthContext } from "@/context/AuthProvider"; |
6 | 6 |
|
7 | 7 | // Mock `next/navigation` globally |
@@ -184,177 +184,5 @@ describe("SelectYourRolePage", () => { |
184 | 184 | }); |
185 | 185 |
|
186 | 186 | expect(tableRoleCell).toBeInTheDocument(); |
187 | | - }); |
188 | | - |
189 | | - it("renders correctly when auth.isSignedIn is undefined and fetchTrackerUserInfo is not triggered", async () => { |
190 | | - renderWithAuth({ |
191 | | - isSignedIn: undefined, |
192 | | - idToken: "", |
193 | | - }); |
194 | | - |
195 | | - // Verify no error or loading state appears |
196 | | - await waitFor(() => { |
197 | | - const errorHeading = screen.queryByRole("heading", { name: /Error during role selection/i }); |
198 | | - expect(errorHeading).not.toBeInTheDocument(); |
199 | | - }); |
200 | | - }); |
201 | | - |
202 | | - it("handles missing roles gracefully in trackerUserInfoData", async () => { |
203 | | - const mockUserInfo = { |
204 | | - roles_with_access: [], |
205 | | - roles_without_access: [], |
206 | | - }; |
207 | | - |
208 | | - mockFetch.mockResolvedValue({ |
209 | | - status: 200, |
210 | | - json: async () => ({ |
211 | | - userInfo: mockUserInfo, |
212 | | - }), |
213 | | - }); |
214 | | - |
215 | | - renderWithAuth({ |
216 | | - isSignedIn: true, |
217 | | - idToken: "fake-token", |
218 | | - }); |
219 | | - |
220 | | - // Expect no roles to render |
221 | | - await waitFor(() => { |
222 | | - const rolesMessage = screen.queryByText("No roles found"); |
223 | | - expect(rolesMessage).not.toBeInTheDocument(); |
224 | | - }); |
225 | | - }); |
226 | | - |
227 | | - it("handles the case when auth is undefined", async () => { |
228 | | - renderWithAuth(undefined); // Simulate `auth` being undefined |
229 | | - |
230 | | - // Wait for the error summary to render |
231 | | - await waitFor(() => { |
232 | | - const errorHeading = screen.getByRole("heading", { name: /Error during role selection/i }); |
233 | | - expect(errorHeading).toBeInTheDocument(); |
234 | | - |
235 | | - const errorText = screen.getByText("No login session found"); |
236 | | - expect(errorText).toBeInTheDocument(); |
237 | | - }); |
238 | | - }); |
239 | | - |
240 | | - it("sets error state when auth.isSignedIn is false", async () => { |
241 | | - renderWithAuth({ |
242 | | - isSignedIn: false, |
243 | | - idToken: "", |
244 | | - }); |
245 | | - |
246 | | - // Wait for the error summary to render |
247 | | - await waitFor(() => { |
248 | | - const errorSummary = screen.getByRole("heading", { name: /Error during role selection/i }); |
249 | | - expect(errorSummary).toBeInTheDocument(); |
250 | | - const errorMessage = screen.getByText("No login session found"); |
251 | | - expect(errorMessage).toBeInTheDocument(); |
252 | | - }); |
253 | | - }); |
254 | | - |
255 | | - it("renders a row for roles without access in the table", async () => { |
256 | | - const mockUserInfo = { |
257 | | - roles_with_access: [], |
258 | | - roles_without_access: [ |
259 | | - { |
260 | | - role_name: "Technician", |
261 | | - role_id: "tech1", |
262 | | - org_code: "ORG456", |
263 | | - org_name: "Tech Org", |
264 | | - site_name: "Technician Site", |
265 | | - site_address: "2 Fake Street", |
266 | | - }, |
267 | | - ], |
268 | | - }; |
269 | | - |
270 | | - mockFetch.mockResolvedValue({ |
271 | | - status: 200, |
272 | | - json: async () => ({ |
273 | | - userInfo: mockUserInfo, |
274 | | - }), |
275 | 187 | }); |
276 | | - |
277 | | - renderWithAuth({ |
278 | | - isSignedIn: true, |
279 | | - idToken: "fake-token", |
280 | | - }); |
281 | | - |
282 | | - // Wait for the table to render |
283 | | - await waitFor(() => { |
284 | | - const table = screen.getByRole("table"); |
285 | | - const tableCellOrg = within(table).getByText("Tech Org (ODS: ORG456)"); |
286 | | - expect(tableCellOrg).toBeInTheDocument(); |
287 | | - |
288 | | - const tableCellRole = within(table).getByText("Technician"); |
289 | | - expect(tableCellRole).toBeInTheDocument(); |
290 | | - }); |
291 | | - }); |
292 | | - |
293 | | - it("renders correctly with role_name having special formatting", async () => { |
294 | | - const mockUserInfo = { |
295 | | - roles_with_access: [], |
296 | | - roles_without_access: [ |
297 | | - { |
298 | | - role_name: "Role:Pharmacist", |
299 | | - role_id: "pharm1", |
300 | | - org_code: "ORG123", |
301 | | - org_name: "Test Pharmacy Org", |
302 | | - site_name: "Pharmacy Site", |
303 | | - site_address: "1 Fake Street", |
304 | | - }, |
305 | | - ], |
306 | | - }; |
307 | | - |
308 | | - mockFetch.mockResolvedValue({ |
309 | | - status: 200, |
310 | | - json: async () => ({ |
311 | | - userInfo: mockUserInfo, |
312 | | - }), |
313 | | - }); |
314 | | - |
315 | | - renderWithAuth({ |
316 | | - isSignedIn: true, |
317 | | - idToken: "fake-token", |
318 | | - }); |
319 | | - |
320 | | - // Wait for the card to render |
321 | | - await waitFor(() => { |
322 | | - const roleName = screen.getByText("Pharmacist"); |
323 | | - expect(roleName).toBeInTheDocument(); |
324 | | - }); |
325 | | - }); |
326 | | - |
327 | | - it("renders correctly with role_name absent", async () => { |
328 | | - const mockUserInfo = { |
329 | | - roles_with_access: [], |
330 | | - roles_without_access: [ |
331 | | - { |
332 | | - role_name: undefined, |
333 | | - role_id: "pharm1", |
334 | | - org_code: "ORG123", |
335 | | - org_name: "Test Pharmacy Org", |
336 | | - site_name: "Pharmacy Site", |
337 | | - site_address: "1 Fake Street", |
338 | | - }, |
339 | | - ], |
340 | | - }; |
341 | | - |
342 | | - mockFetch.mockResolvedValue({ |
343 | | - status: 200, |
344 | | - json: async () => ({ |
345 | | - userInfo: mockUserInfo, |
346 | | - }), |
347 | | - }); |
348 | | - |
349 | | - renderWithAuth({ |
350 | | - isSignedIn: true, |
351 | | - idToken: "fake-token", |
352 | | - }); |
353 | | - |
354 | | - // Wait for the card to render |
355 | | - await waitFor(() => { |
356 | | - const roleName = screen.getByText("No Role Name"); |
357 | | - expect(roleName).toBeInTheDocument(); |
358 | | - }); |
359 | | - }); |
360 | 188 | }); |
0 commit comments