@@ -2,7 +2,7 @@ import { screen, waitFor } from '@testing-library/react';
22import userEvent from '@testing-library/user-event' ;
33import CertificatesPage from '@src/certificates/CertificatesPage' ;
44import { renderWithAlertAndIntl } from '@src/testUtils' ;
5- import { useCourseInfo } from '@src/data/apiHook' ;
5+ import { useCourseInfo , usePendingTasks } from '@src/data/apiHook' ;
66import {
77 useCertificateGenerationHistory ,
88 useGrantBulkExceptions ,
@@ -25,9 +25,22 @@ jest.mock('react-router-dom', () => ({
2525jest . mock ( '@src/certificates/data/apiHook' ) ;
2626jest . mock ( '@src/data/apiHook' , ( ) => ( {
2727 useCourseInfo : jest . fn ( ) ,
28+ usePendingTasks : jest . fn ( ) ,
29+ } ) ) ;
30+
31+ jest . mock ( '@src/components/PendingTasks' , ( ) => ( {
32+ PendingTasks : function MockPendingTasks ( { onToggle } : { isOpen : boolean , onToggle : ( ) => void } ) {
33+ return (
34+ < div data-testid = "pending-tasks" >
35+ Pending Tasks
36+ < button onClick = { onToggle } > Toggle</ button >
37+ </ div >
38+ ) ;
39+ } ,
2840} ) ) ;
2941
3042const mockUseCourseInfo = useCourseInfo as jest . MockedFunction < typeof useCourseInfo > ;
43+ const mockUsePendingTasks = usePendingTasks as jest . MockedFunction < typeof usePendingTasks > ;
3144const mockUseCertificateGenerationHistory = useCertificateGenerationHistory as jest . MockedFunction < typeof useCertificateGenerationHistory > ;
3245const mockUseInstructorTasks = useInstructorTasks as jest . MockedFunction < typeof useInstructorTasks > ;
3346const mockUseIssuedCertificates = useIssuedCertificates as jest . MockedFunction < typeof useIssuedCertificates > ;
@@ -56,6 +69,12 @@ describe('CertificatesPage', () => {
5669 error : null ,
5770 } as any ) ;
5871
72+ mockUsePendingTasks . mockReturnValue ( {
73+ data : [ ] ,
74+ isLoading : false ,
75+ refetch : jest . fn ( ) ,
76+ } as any ) ;
77+
5978 mockUseCertificateGenerationHistory . mockReturnValue ( {
6079 data : {
6180 results : [ ] ,
@@ -181,6 +200,17 @@ describe('CertificatesPage', () => {
181200 expect ( screen . getByText ( messages . generationHistoryTab . defaultMessage ) ) . toBeInTheDocument ( ) ;
182201 } ) ;
183202
203+ it ( 'renders pending tasks component' , async ( ) => {
204+ renderWithAlertAndIntl ( < CertificatesPage /> ) ;
205+ const user = userEvent . setup ( ) ;
206+
207+ expect ( screen . getByTestId ( 'pending-tasks' ) ) . toBeInTheDocument ( ) ;
208+
209+ // Test toggle functionality
210+ const toggleButton = screen . getByText ( 'Toggle' ) ;
211+ await user . click ( toggleButton ) ;
212+ } ) ;
213+
184214 it ( 'renders issued certificates tab by default' , ( ) => {
185215 renderWithAlertAndIntl ( < CertificatesPage /> ) ;
186216
0 commit comments