Skip to content

Commit 11c73c3

Browse files
Stopped role selection from editing rolesWithAccess data
Removed access related calculated fields from local storage Simplified rendering of role selection page
1 parent e955b44 commit 11c73c3

23 files changed

+127
-537
lines changed

.vscode/eps-prescription-tracker-ui.code-workspace

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
{
6868
"name": "packages/common/lambdaUtils",
6969
"path": "../packages/common/lambdaUtils"
70-
}
70+
},
7171
{
7272
"name": "packages/common/testing",
7373
"path": "../packages/common/testing"

packages/common/commonTypes/src/trackerUserInfo.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,8 @@ export type TrackerUserInfo = {
3030
export type TrackerUserInfoResult = {
3131
rolesWithAccess: Array<RoleDetails>,
3232
rolesWithoutAccess: Array<RoleDetails>,
33-
hasNoAccess: boolean
3433
selectedRole: RoleDetails | undefined,
3534
userDetails: UserDetails | undefined,
36-
hasSingleRoleAccess: boolean,
3735
isConcurrentSession: boolean,
3836
invalidSessionCause: string | undefined,
3937
sessionId: string | undefined,

packages/cpt-ui/__tests__/AuthProvider.test.tsx

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,8 @@ const userDetails = {
4141
const mockUserInfo = {
4242
rolesWithAccess: rolesWithAccess,
4343
rolesWithoutAccess: [],
44-
hasNoAccess: false,
4544
selectedRole: currentlySelectedRole,
4645
userDetails: userDetails,
47-
hasSingleRoleAccess: true,
4846
error: undefined
4947
}
5048

@@ -142,10 +140,8 @@ const TestConsumer = () => {
142140
<div data-testid="isSigningIn">{auth.isSigningIn.toString()}</div>
143141
<div data-testid="rolesWithAccess">{JSON.stringify(auth.rolesWithAccess, null, 2)}</div>
144142
<div data-testid="rolesWithoutAccess">{JSON.stringify(auth.rolesWithoutAccess, null, 2)}</div>
145-
<div data-testid="noAccess">{auth.hasNoAccess.toString()}</div>
146143
<div data-testid="selectedRole">{JSON.stringify(auth.selectedRole, null, 2)}</div>
147144
<div data-testid="userDetails">{JSON.stringify(auth.userDetails, null, 2)}</div>
148-
<div data-testid="singleAccess">{auth.hasSingleRoleAccess.toString()}</div>
149145
</div>
150146
)
151147
}
@@ -265,10 +261,8 @@ describe("AuthProvider", () => {
265261
expect(screen.getByTestId("user").textContent).toBe("test_user")
266262
expect(screen.getByTestId("rolesWithAccess").textContent).toBe(JSON.stringify(rolesWithAccess, null, 2))
267263
expect(screen.getByTestId("rolesWithoutAccess").textContent).toBe("[]")
268-
expect(screen.getByTestId("noAccess").textContent).toBe("false")
269264
expect(screen.getByTestId("selectedRole").textContent).toBe(JSON.stringify(currentlySelectedRole, null, 2))
270265
expect(screen.getByTestId("userDetails").textContent).toBe(JSON.stringify(userDetails, null, 2))
271-
expect(screen.getByTestId("singleAccess").textContent).toBe("true")
272266
})
273267
})
274268

@@ -326,10 +320,8 @@ describe("AuthProvider", () => {
326320
expect(screen.getByTestId("error").textContent).toBe("")
327321
expect(screen.getByTestId("rolesWithAccess").textContent).toBe("[]")
328322
expect(screen.getByTestId("rolesWithoutAccess").textContent).toBe("[]")
329-
expect(screen.getByTestId("noAccess").textContent).toBe("true")
330323
expect(screen.getByTestId("selectedRole").textContent).toBe("")
331324
expect(screen.getByTestId("userDetails").textContent).toBe("")
332-
expect(screen.getByTestId("singleAccess").textContent).toBe("false")
333325
})
334326
})
335327

@@ -395,7 +387,7 @@ describe("AuthProvider", () => {
395387
};
396388

397389
(updateRemoteSelectedRole as jest.Mock).mockResolvedValue({
398-
rolesWithAccess: [newRole]
390+
currentlySelectedRole: newRole
399391
})
400392

401393
let contextValue: AuthContextType | null

packages/cpt-ui/__tests__/BasicDetailsSearch.test.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ const signedInAuthState: AuthContextType = {
4545
error: null,
4646
rolesWithAccess: [],
4747
rolesWithoutAccess: [],
48-
hasNoAccess: false,
49-
hasSingleRoleAccess: false,
5048
selectedRole: undefined,
5149
userDetails: undefined,
5250
isConcurrentSession: false,

packages/cpt-ui/__tests__/BasicDetailsSearchResultsPage.test.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ const mockAuthContext: AuthContextType = {
5050
invalidSessionCause: undefined,
5151
rolesWithAccess: [],
5252
rolesWithoutAccess: [],
53-
hasNoAccess: false,
54-
hasSingleRoleAccess: false,
5553
selectedRole: undefined,
5654
userDetails: undefined,
5755
isConcurrentSession: false,

packages/cpt-ui/__tests__/EpsHeader.test.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@ const defaultAuthContext: AuthContextType = {
5454
invalidSessionCause: undefined,
5555
rolesWithAccess: [],
5656
rolesWithoutAccess: [],
57-
hasNoAccess: false,
58-
hasSingleRoleAccess: false,
5957
selectedRole: undefined,
6058
userDetails: undefined,
6159
isConcurrentSession: false,

packages/cpt-ui/__tests__/EpsPrescriptionList.test.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,6 @@ const signedInAuthState: AuthContextType = {
137137
error: null,
138138
rolesWithAccess: [],
139139
rolesWithoutAccess: [],
140-
hasNoAccess: false,
141-
hasSingleRoleAccess: false,
142140
selectedRole: undefined,
143141
userDetails: undefined,
144142
isConcurrentSession: false,

packages/cpt-ui/__tests__/EpsRoleSelectionPage.test.tsx

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {FRONTEND_PATHS} from "@/constants/environment"
1313
import {getSearchParams} from "@/helpers/getSearchParams"
1414
import {handleRestartLogin} from "@/helpers/logout"
1515
import axios from "axios"
16+
import {RoleDetails} from "@cpt-ui-common/common-types"
1617

1718
jest.mock("@/context/AuthProvider")
1819
jest.mock("@/helpers/getSearchParams")
@@ -89,7 +90,6 @@ describe("RoleSelectionPage", () => {
8990
it("renders loading spinner if redirecting during sign in", () => {
9091
mockUseAuth.mockReturnValue({
9192
isSigningIn: true,
92-
hasNoAccess: false,
9393
rolesWithAccess: [],
9494
rolesWithoutAccess: [],
9595
error: null,
@@ -107,7 +107,6 @@ describe("RoleSelectionPage", () => {
107107
it("renders error message if auth.error exists", () => {
108108
mockUseAuth.mockReturnValue({
109109
isSigningIn: false,
110-
hasNoAccess: false,
111110
rolesWithAccess: [],
112111
rolesWithoutAccess: [],
113112
error: "Something went wrong"
@@ -118,10 +117,9 @@ describe("RoleSelectionPage", () => {
118117
expect(screen.getByText("Something went wrong")).toBeInTheDocument()
119118
})
120119

121-
it("renders titleNoAccess and captionNoAccess when hasNoAccess is true", () => {
120+
it("renders titleNoAccess and captionNoAccess when rolesWithAccess is empty", () => {
122121
mockUseAuth.mockReturnValue({
123122
isSigningIn: false,
124-
hasNoAccess: true,
125123
rolesWithAccess: [],
126124
rolesWithoutAccess: [],
127125
error: null
@@ -139,8 +137,6 @@ describe("RoleSelectionPage", () => {
139137
mockUseAuth.mockReturnValue({
140138
isSigningIn: true,
141139
isSignedIn: false,
142-
hasSingleRoleAccess: true,
143-
hasNoAccess: false,
144140
rolesWithAccess: [],
145141
rolesWithoutAccess: [],
146142
selectedRole: null,
@@ -157,16 +153,21 @@ describe("RoleSelectionPage", () => {
157153
expect(navigateMock).toHaveBeenCalledWith(FRONTEND_PATHS.LOGIN)
158154
})
159155

160-
it("redirects if user hasSingleRoleAccess", () => {
156+
it("redirects if user has single roleWithAccess", () => {
161157
const navigateMock = jest.fn()
162158
mockNavigate.mockReturnValue(navigateMock)
163159

164160
mockUseAuth.mockReturnValue({
165161
isSigningIn: false,
166162
isSignedIn: true,
167-
hasSingleRoleAccess: true,
168-
hasNoAccess: false,
169-
rolesWithAccess: [],
163+
rolesWithAccess: [
164+
{
165+
role_id: "1",
166+
role_name: "Pharmacist",
167+
org_code: "ABC",
168+
org_name: "Pharmacy Org"
169+
}
170+
],
170171
rolesWithoutAccess: [],
171172
selectedRole: null,
172173
error: null
@@ -180,8 +181,6 @@ describe("RoleSelectionPage", () => {
180181
it("renders login info when selectedRole is present", () => {
181182
mockUseAuth.mockReturnValue({
182183
isSigningIn: false,
183-
hasSingleRoleAccess: false,
184-
hasNoAccess: false,
185184
selectedRole: {
186185
org_name: "Test Org",
187186
org_code: "TEST123",
@@ -202,7 +201,6 @@ describe("RoleSelectionPage", () => {
202201
it("renders roles without access in table", () => {
203202
mockUseAuth.mockReturnValue({
204203
isSigningIn: false,
205-
hasNoAccess: false,
206204
rolesWithAccess: [],
207205
rolesWithoutAccess: [
208206
{
@@ -224,7 +222,6 @@ describe("RoleSelectionPage", () => {
224222
it("renders EpsCard components for roles with access", () => {
225223
mockUseAuth.mockReturnValue({
226224
isSigningIn: false,
227-
hasNoAccess: false,
228225
selectedRole: {
229226
role_id: "1"
230227
},
@@ -265,7 +262,6 @@ describe("RoleSelectionPage", () => {
265262
it("navigates on confirm and continue button click", async () => {
266263
mockUseAuth.mockReturnValue({
267264
isSigningIn: false,
268-
hasNoAccess: false,
269265
selectedRole: {
270266
role_id: "1",
271267
org_name: "Pharmacy A",
@@ -284,7 +280,6 @@ describe("RoleSelectionPage", () => {
284280
expect(button).toBeEnabled()
285281
fireEvent.click(button)
286282

287-
expect(mockNavigate.mock.calls.length).toBe(5)
288283
expect(mockNavigate).toHaveBeenCalledWith("/continue")
289284
})
290285

@@ -293,11 +288,9 @@ describe("RoleSelectionPage", () => {
293288
const authState = {
294289
isSigningIn: true,
295290
isSignedIn: false,
296-
hasSingleRoleAccess: false,
297-
hasNoAccess: false,
298-
rolesWithAccess: [],
291+
rolesWithAccess: [] as Array<RoleDetails>,
299292
rolesWithoutAccess: [],
300-
selectedRole: null,
293+
selectedRole: undefined as RoleDetails | undefined,
301294
error: null,
302295
clearAuthState: jest.fn()
303296
}
@@ -317,8 +310,14 @@ describe("RoleSelectionPage", () => {
317310
// Step 2: Simulate login complete and role assignment
318311
act(() => {
319312
authState.isSigningIn = false
320-
authState.isSignedIn = true
321-
authState.hasSingleRoleAccess = true
313+
const role = {
314+
role_id: "2",
315+
role_name: "Pharmacist",
316+
org_code: "ABC",
317+
org_name: "Pharmacy Org"
318+
}
319+
authState.rolesWithAccess = [role]
320+
authState.selectedRole = role
322321
authState.isSignedIn = true
323322
mockUseAuth.mockReturnValue(authState)
324323
})

packages/cpt-ui/__tests__/EpsSearchForAPrescription.test.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ const defaultAuthContext: AuthContextType = {
1717
invalidSessionCause: undefined,
1818
rolesWithAccess: [],
1919
rolesWithoutAccess: [],
20-
hasNoAccess: false,
21-
hasSingleRoleAccess: false,
2220
selectedRole: undefined,
2321
userDetails: undefined,
2422
isConcurrentSession: false,

packages/cpt-ui/__tests__/LoginPage.test.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,6 @@ const defaultAuthState: AuthContextType = {
8989
error: null,
9090
rolesWithAccess: [],
9191
rolesWithoutAccess: [],
92-
hasNoAccess: false,
93-
hasSingleRoleAccess: false,
9492
selectedRole: undefined,
9593
userDetails: undefined,
9694
isConcurrentSession: false,

0 commit comments

Comments
 (0)