diff --git a/src/users/VerifiedName.jsx b/src/users/VerifiedName.jsx
index a9b5eb9a6..093db4e5c 100644
--- a/src/users/VerifiedName.jsx
+++ b/src/users/VerifiedName.jsx
@@ -10,13 +10,58 @@ import {
import PageLoading from '../components/common/PageLoading';
import Table from '../components/Table';
import { formatDate } from '../utils';
-import { getVerifiedNameHistory, getVerificationAttemptDetailsById } from './data/api';
+import { getVerifiedNameHistory } from './data/api';
+
+const verifiedNameColumns = [
+ {
+ Header: 'Verified Name',
+ accessor: 'verifiedName',
+ },
+ {
+ Header: 'Status',
+ accessor: 'status',
+ },
+ {
+ Header: 'Verification Type',
+ accessor: 'verificationType',
+ },
+ {
+ Header: 'History',
+ accessor: 'history',
+ },
+];
+
+const verifiedNameHistoryColumns = [
+ {
+ Header: 'Verified Name',
+ accessor: 'verifiedName',
+ },
+ {
+ Header: 'Profile Name',
+ accessor: 'profileName',
+ },
+ {
+ Header: 'Status',
+ accessor: 'status',
+ },
+ {
+ Header: 'IDV Attempt ID',
+ accessor: 'idvAttemptId',
+ },
+ {
+ Header: 'Proctoring Attempt ID',
+ accessor: 'proctoringAttemptId',
+ },
+ {
+ Header: 'Created At',
+ accessor: 'createdAt',
+ },
+];
export default function VerifiedName({ username }) {
const [verifiedNameData, setVerifiedNameData] = useState(null);
const [verifiedNameHistoryData, setVerifiedNameHistoryData] = useState([]);
const [isModalOpen, setIsModalOpen] = useState(false);
- const [verificationAttemptDetails, setVerificationAttemptDetails] = useState({});
useEffect(() => {
let isMounted = true;
@@ -45,9 +90,11 @@ export default function VerifiedName({ username }) {
trigger="hover"
overlay={(
- {verificationAttemptDetails[result.verificationAttemptId].status}
-
- {verificationAttemptDetails[result.verificationAttemptId].message}
+
+ Status
+
+
+ {result.verificationAttemptStatus ? result.verificationAttemptStatus : 'Error: Missing data'}
)}
@@ -60,71 +107,14 @@ export default function VerifiedName({ username }) {
proctoringAttemptId: result.proctoredExamAttemptId,
createdAt: formatDate(result.created),
}),
- ), [verifiedNameHistoryData, verificationAttemptDetails]);
+ ), [verifiedNameHistoryData]);
// Modal to display verified name history
const openVerifiedNameModal = async (data) => {
- for (let idx = 0; idx < data.length; idx++) {
- const historyItem = data[idx];
- if (historyItem.verificationAttemptId && !(historyItem.verificationAttemptId in verificationAttemptDetails)) {
- // eslint-disable-next-line no-await-in-loop
- await getVerificationAttemptDetailsById(historyItem.verificationAttemptId).then((response) => {
- const camelCaseDetailsData = camelCaseObject(response);
- verificationAttemptDetails[historyItem.verificationAttemptId] = camelCaseDetailsData;
- setVerificationAttemptDetails(verificationAttemptDetails);
- });
- }
- }
setVerifiedNameHistoryData(data);
setIsModalOpen(true);
};
- const verifiedNameColumns = useMemo(() => [
- {
- Header: 'Verified Name',
- accessor: 'verifiedName',
- },
- {
- Header: 'Status',
- accessor: 'status',
- },
- {
- Header: 'Verification Type',
- accessor: 'verificationType',
- },
- {
- Header: 'History',
- accessor: 'history',
- },
- ], []);
-
- const verifiedNameHistoryColumns = useMemo(() => [
- {
- Header: 'Verified Name',
- accessor: 'verifiedName',
- },
- {
- Header: 'Profile Name',
- accessor: 'profileName',
- },
- {
- Header: 'Status',
- accessor: 'status',
- },
- {
- Header: 'IDV Attempt ID',
- accessor: 'idvAttemptId',
- },
- {
- Header: 'Proctoring Attempt ID',
- accessor: 'proctoringAttemptId',
- },
- {
- Header: 'Created At',
- accessor: 'createdAt',
- },
- ], []);
-
const verifiedNameParsedData = useMemo(() => [{
verifiedName: (
verifiedNameData?.verifiedName || verifiedNameData?.error || 'Error while fetching data'
diff --git a/src/users/VerifiedName.test.jsx b/src/users/VerifiedName.test.jsx
index b5ec9edc4..31c9b148a 100644
--- a/src/users/VerifiedName.test.jsx
+++ b/src/users/VerifiedName.test.jsx
@@ -35,13 +35,7 @@ describe('Verified Name', () => {
history: verifiedNameHistory.results,
};
- const idVerificationAttemptDetails = {
- status: 'denied',
- message: '[{"generalReasons": ["Name mismatch"]}]',
- };
-
jest.spyOn(api, 'getVerifiedNameHistory').mockResolvedValueOnce(verifiedNameData);
- jest.spyOn(api, 'getVerificationAttemptDetailsById').mockResolvedValueOnce(idVerificationAttemptDetails);
render();
const historyButton = await screen.findByText('Show');
@@ -63,16 +57,7 @@ describe('Verified Name', () => {
verificationType: 'Proctoring',
history: verifiedNameHistory.results,
};
- const idVerificationAttemptDetails = {
- status: 'denied',
- message: '[{"generalReasons": ["Name mismatch"]}]',
- };
jest.spyOn(api, 'getVerifiedNameHistory').mockResolvedValueOnce(verifiedNameData);
- const getVerificationAPICallSpy = jest.spyOn(
- api,
- 'getVerificationAttemptDetailsById',
- ).mockResolvedValueOnce(idVerificationAttemptDetails);
-
await act(async () => {
render();
});
@@ -82,15 +67,13 @@ describe('Verified Name', () => {
fireEvent.click(historyButton);
});
- expect(getVerificationAPICallSpy).toHaveBeenCalledWith(
- verifiedNameHistory.results[1].verification_attempt_id,
- );
-
const hoverLink = await screen.getByText(verifiedNameHistory.results[1].verification_attempt_id);
await act(async () => {
fireEvent.mouseOver(hoverLink);
});
- await screen.getByTestId('verificationAttemptTooltip');
+ await screen.getByTestId('verificationAttemptTooltipTitle');
+
+ expect(screen.getByText('must_retry')).toBeTruthy();
});
});
diff --git a/src/users/data/test/verifiedNameHistory.js b/src/users/data/test/verifiedNameHistory.js
index 0e6c357c0..236360a26 100644
--- a/src/users/data/test/verifiedNameHistory.js
+++ b/src/users/data/test/verifiedNameHistory.js
@@ -5,6 +5,7 @@ const verifiedNameHistory = {
verified_name: 'Jonathan Doe',
profile_name: 'Jon Doe',
verification_attempt_id: null,
+ verification_attempt_status: null,
proctored_exam_attempt_id: 123,
status: 'approved',
},
@@ -13,6 +14,7 @@ const verifiedNameHistory = {
verified_name: 'J Doe',
profile_name: 'Jon Doe',
verification_attempt_id: 456,
+ verification_attempt_status: 'must_retry',
proctored_exam_attempt_id: null,
status: 'denied',
},