Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion src/Store/userRolesStore.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ describe("userRolesStore", () => {
expect(userRolesStore.initialState).toEqual({
roles: [],
isAdmin: false,
isReviewer: false,
});
});

Expand All @@ -65,6 +66,7 @@ describe("userRolesStore", () => {
expect(userRolesStore.getState()).toEqual({
roles: ["MADiE-User"],
isAdmin: false,
isReviewer: false,
});
});

Expand All @@ -75,6 +77,7 @@ describe("userRolesStore", () => {
expect(userRolesStore.getState()).toEqual({
roles: ["MADiE-User", "MADiE-Admin"],
isAdmin: true,
isReviewer: false,
});
});

Expand All @@ -84,6 +87,7 @@ describe("userRolesStore", () => {
expect(userRolesStore.getState()).toEqual({
roles: [],
isAdmin: false,
isReviewer: false,
});
});

Expand All @@ -98,6 +102,7 @@ describe("userRolesStore", () => {
expect(mockSetUserRoles).toHaveBeenCalledWith({
roles: ["MADiE-Admin"],
isAdmin: true,
isReviewer: false,
});
subscription.unsubscribe();
done();
Expand Down Expand Up @@ -149,6 +154,7 @@ describe("userRolesStore", () => {
expect(userRolesStore.getState()).toEqual({
roles: ["MADiE-Admin", "MADiE-User"],
isAdmin: true,
isReviewer: false,
});
localStorage.setItem(
"madie-user-roles",
Expand All @@ -161,11 +167,16 @@ describe("userRolesStore", () => {

userRolesStore.clearRoles();

expect(userRolesStore.getState()).toEqual({ roles: [], isAdmin: false });
expect(userRolesStore.getState()).toEqual({
roles: [],
isAdmin: false,
isReviewer: false,
});
expect(localStorage.getItem("madie-user-roles")).toBeNull();
expect(mockSetUserRoles).toHaveBeenCalledWith({
roles: [],
isAdmin: false,
isReviewer: false,
});
subscription.unsubscribe();
});
Expand Down
9 changes: 9 additions & 0 deletions src/Store/userRolesStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { BehaviorSubject } from "rxjs";
export interface UserRoles {
roles: string[];
isAdmin: boolean;
isReviewer: boolean;
}

const STORAGE_KEY = "madie-user-roles";
Expand All @@ -29,16 +30,22 @@ const subject = new BehaviorSubject<UserRoles | null>(storedRoles);
const initialState: UserRoles = {
roles: [],
isAdmin: false,
isReviewer: false,
};

let state: UserRoles = storedRoles ?? initialState;

const ADMIN_ROLE = "MADiE-Admin";
const REVIEWER_ROLE = "MADiE-Reviewer";

const checkIsAdmin = (roles: string[]): boolean => {
return roles?.includes(ADMIN_ROLE) ?? false;
};

const checkIsReviewer = (roles: string[]): boolean => {
return roles?.includes(REVIEWER_ROLE) ?? false;
};

export const userRolesStore = {
subscribe: (
setUserRoles: React.Dispatch<React.SetStateAction<UserRoles>>
Expand All @@ -50,9 +57,11 @@ export const userRolesStore = {
updateUserRoles: (roles: string[] | null) => {
const rolesList = roles ?? [];
const isAdmin = checkIsAdmin(rolesList);
const isReviewer = checkIsReviewer(rolesList);
state = {
roles: rolesList,
isAdmin: isAdmin,
isReviewer: isReviewer,
};

// Persist to localStorage
Expand Down
2 changes: 2 additions & 0 deletions src/api/MeasureServiceApi.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,7 @@ describe("MeasureServiceApi Tests", () => {

const measuresList = await measureServiceApi.searchMeasuresByCriteria(
[OwnershipType.ALL],
false,
25,
0,
"lastModifiedAt",
Expand Down Expand Up @@ -303,6 +304,7 @@ describe("MeasureServiceApi Tests", () => {
try {
await measureServiceApi.searchMeasuresByCriteria(
[OwnershipType.ALL],
false,
25,
0,
"lastModifiedAt",
Expand Down
8 changes: 8 additions & 0 deletions src/api/useMeasureServiceApi.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -744,6 +744,7 @@ describe("MeasureServiceApi admin coverage", () => {

const measuresList = await api.searchMeasuresByCriteria(
[OwnershipType.OWNED],
false,
25,
0,
"lastModifiedAt",
Expand All @@ -762,6 +763,7 @@ describe("MeasureServiceApi admin coverage", () => {
try {
await api.searchMeasuresByCriteria(
[OwnershipType.OWNED],
false,
25,
0,
"lastModifiedAt",
Expand All @@ -786,6 +788,7 @@ describe("MeasureServiceApi admin coverage", () => {
try {
await api.searchMeasuresByCriteria(
[OwnershipType.OWNED],
false,
25,
0,
"lastModifiedAt",
Expand Down Expand Up @@ -902,6 +905,7 @@ describe("MeasureServiceApi admin coverage", () => {

await api.searchMeasuresByCriteria(
[OwnershipType.OWNED, OwnershipType.SHARED],
false,
25,
0,
"lastModifiedAt",
Expand Down Expand Up @@ -931,6 +935,7 @@ describe("MeasureServiceApi admin coverage", () => {

await api.searchMeasuresByCriteria(
[OwnershipType.OWNED, OwnershipType.SHARED],
false,
undefined,
0,
"lastModifiedAt",
Expand Down Expand Up @@ -960,6 +965,7 @@ describe("MeasureServiceApi admin coverage", () => {

await api.searchMeasuresByCriteria(
[OwnershipType.OWNED, OwnershipType.SHARED],
false,
25,
undefined,
"lastModifiedAt",
Expand Down Expand Up @@ -989,6 +995,7 @@ describe("MeasureServiceApi admin coverage", () => {

await api.searchMeasuresByCriteria(
[OwnershipType.OWNED, OwnershipType.SHARED],
false,
25,
0,
undefined,
Expand Down Expand Up @@ -1018,6 +1025,7 @@ describe("MeasureServiceApi admin coverage", () => {

await api.searchMeasuresByCriteria(
[OwnershipType.OWNED, OwnershipType.SHARED],
false,
"All",
0,
"lastModifiedAt",
Expand Down
2 changes: 2 additions & 0 deletions src/api/useMeasureServiceApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,7 @@ export class MeasureServiceApi {

async searchMeasuresByCriteria(
ownershipTypes: OwnershipType[],
isReview: boolean,
limit: string | number = 25,
page: number = 0,
sort: string = "lastModifiedAt",
Expand All @@ -494,6 +495,7 @@ export class MeasureServiceApi {
},
params: {
ownershipTypes,
isReview,
limit,
page,
sort,
Expand Down
2 changes: 2 additions & 0 deletions src/hooks/useUserRoles.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ describe("useUserRoles", () => {
expect(result.current).toEqual({
roles: [],
isAdmin: false,
isReviewer: false,
});
});

Expand All @@ -27,6 +28,7 @@ describe("useUserRoles", () => {
expect(result.current).toEqual({
roles: ["MADiE-Admin"],
isAdmin: true,
isReviewer: false,
});
});

Expand Down
Loading