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={( )} @@ -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', },