[#32] changed how userinfo is filled
This commit is contained in:
committed by
Benoit TELLIER
parent
290c7f301b
commit
b9d2a16984
@@ -8,7 +8,7 @@ import { push } from "redux-first-history";
|
||||
import {
|
||||
setTokens,
|
||||
setUserData,
|
||||
getOpenPaasUserIdAsync,
|
||||
getOpenPaasUserDataAsync,
|
||||
} from "../../../src/features/User/userSlice";
|
||||
import { getCalendarsListAsync } from "../../../src/features/Calendars/CalendarSlice";
|
||||
import { renderWithProviders } from "../../utils/Renderwithproviders";
|
||||
@@ -26,7 +26,7 @@ jest.mock("../../../src/features/User/oidcAuth", () => ({
|
||||
jest.mock("../../../src/features/User/userSlice", () => ({
|
||||
setUserData: jest.fn((data) => ({ type: "SET_USER", payload: data })),
|
||||
setTokens: jest.fn((tokens) => ({ type: "SET_TOKENS", payload: tokens })),
|
||||
getOpenPaasUserIdAsync: jest.fn(() => ({ type: "GET_USER_ID" })),
|
||||
getOpenPaasUserDataAsync: jest.fn(() => ({ type: "GET_USER_ID" })),
|
||||
}));
|
||||
|
||||
jest.mock("../../../src/features/Calendars/CalendarSlice", () => ({
|
||||
@@ -63,7 +63,7 @@ describe("CallbackResume", () => {
|
||||
expect(oidcAuth.Callback).toHaveBeenCalledWith("verifier123", "state456");
|
||||
expect(dispatch).toHaveBeenCalledWith(setUserData(mockUserInfo));
|
||||
expect(dispatch).toHaveBeenCalledWith(setTokens(mockTokenSet));
|
||||
expect(dispatch).toHaveBeenCalledWith(getOpenPaasUserIdAsync());
|
||||
expect(dispatch).toHaveBeenCalledWith(getOpenPaasUserDataAsync());
|
||||
expect(dispatch).toHaveBeenCalledWith(getCalendarsListAsync());
|
||||
expect(dispatch).toHaveBeenCalledWith(push("/"));
|
||||
expect(sessionStorage.getItem("redirectState")).toBe(null);
|
||||
|
||||
@@ -2,7 +2,7 @@ import { useEffect, useRef } from "react";
|
||||
import { Callback } from "./oidcAuth";
|
||||
import { useAppDispatch, useAppSelector } from "../../app/hooks";
|
||||
import { push } from "redux-first-history";
|
||||
import { getOpenPaasUserIdAsync, setTokens, setUserData } from "./userSlice";
|
||||
import { getOpenPaasUserDataAsync, setTokens, setUserData } from "./userSlice";
|
||||
import { Loading } from "../../components/Loading/Loading";
|
||||
import { getCalendarsListAsync } from "../Calendars/CalendarSlice";
|
||||
|
||||
@@ -22,7 +22,7 @@ export function CallbackResume() {
|
||||
const data = await Callback(saved?.code_verifier, saved?.state);
|
||||
dispatch(setUserData(data?.userinfo));
|
||||
dispatch(setTokens(data?.tokenSet));
|
||||
dispatch(getOpenPaasUserIdAsync());
|
||||
dispatch(getOpenPaasUserDataAsync());
|
||||
dispatch(getCalendarsListAsync());
|
||||
|
||||
sessionStorage.removeItem("redirectState");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { api } from "../../utils/apiUtils";
|
||||
|
||||
export default async function getOpenPaasUserId() {
|
||||
export default async function getOpenPaasUser() {
|
||||
const user = await api.get(`api/user`).json();
|
||||
return user;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { createAsyncThunk, createSlice } from "@reduxjs/toolkit";
|
||||
import { userData, userOrganiser } from "./userDataTypes";
|
||||
import getOpenPaasUserId from "./userAPI";
|
||||
import getOpenPaasUser from "./userAPI";
|
||||
|
||||
export const getOpenPaasUserIdAsync = createAsyncThunk<string>(
|
||||
"user/getOpenPaasUserId",
|
||||
export const getOpenPaasUserDataAsync = createAsyncThunk<any>(
|
||||
"user/getOpenPaasUserData",
|
||||
async () => {
|
||||
const user = (await getOpenPaasUserId()) as Record<string, string>;
|
||||
const user = (await getOpenPaasUser()) as Record<string, string>;
|
||||
|
||||
return user.id;
|
||||
return user;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -32,8 +32,18 @@ export const userSlice = createSlice({
|
||||
},
|
||||
},
|
||||
extraReducers: (builder) => {
|
||||
builder.addCase(getOpenPaasUserIdAsync.fulfilled, (state, action) => {
|
||||
state.userData.openpaasId = action.payload;
|
||||
builder.addCase(getOpenPaasUserDataAsync.fulfilled, (state, action) => {
|
||||
state.userData.name = action.payload.firstname;
|
||||
state.userData.family_name = action.payload.lastname;
|
||||
state.userData.openpaasId = action.payload.id;
|
||||
if (!state.organiserData) {
|
||||
state.organiserData = {} as userOrganiser;
|
||||
}
|
||||
state.organiserData.cn = `${action.payload.firstname} ${action.payload.lastname}`;
|
||||
if (action.payload.preferredEmail) {
|
||||
state.organiserData.cal_address = `mailto:${action.payload.preferredEmail}`;
|
||||
state.userData.email = action.payload.preferredEmail;
|
||||
}
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user