@@ -185,6 +185,10 @@ jest.mock('../TaskSkeleton', () => {
185185 } ;
186186} ) ;
187187
188+ jest . mock ( '../ReportsView' , ( ) => ( {
189+ ReportsView : ( ) => < div data-testid = "reports-view" > Mocked ReportsView</ div > ,
190+ } ) ) ;
191+
188192global . fetch = jest . fn ( ) . mockResolvedValue ( { ok : true } ) ;
189193
190194describe ( 'Tasks Component' , ( ) => {
@@ -1933,4 +1937,55 @@ describe('Tasks Component', () => {
19331937 ) ;
19341938 } ) ;
19351939 } ) ;
1940+
1941+ describe ( 'Reports Toggle' , ( ) => {
1942+ test ( 'shows "Show Reports" button by default' , async ( ) => {
1943+ render ( < Tasks { ...mockProps } /> ) ;
1944+ await screen . findByText ( 'Task 1' ) ;
1945+
1946+ expect ( screen . getByText ( 'Show Reports' ) ) . toBeInTheDocument ( ) ;
1947+ } ) ;
1948+
1949+ test ( 'switches button text to "Show Tasks" after clicking' , async ( ) => {
1950+ render ( < Tasks { ...mockProps } /> ) ;
1951+ await screen . findByText ( 'Task 1' ) ;
1952+
1953+ const btn = screen . getByText ( 'Show Reports' ) ;
1954+ await act ( async ( ) => {
1955+ fireEvent . click ( btn ) ;
1956+ } ) ;
1957+
1958+ expect ( screen . getByText ( 'Show Tasks' ) ) . toBeInTheDocument ( ) ;
1959+ } ) ;
1960+
1961+ test ( 'renders ReportsView when toggled on' , async ( ) => {
1962+ render ( < Tasks { ...mockProps } /> ) ;
1963+ await screen . findByText ( 'Task 1' ) ;
1964+
1965+ await act ( async ( ) => {
1966+ fireEvent . click ( screen . getByText ( 'Show Reports' ) ) ;
1967+ } ) ;
1968+
1969+ expect ( screen . getByTestId ( 'reports-view' ) ) . toBeInTheDocument ( ) ;
1970+ } ) ;
1971+
1972+ test ( 'hides ReportsView when toggled off again' , async ( ) => {
1973+ render ( < Tasks { ...mockProps } /> ) ;
1974+ await screen . findByText ( 'Task 1' ) ;
1975+
1976+ const btn = screen . getByText ( 'Show Reports' ) ;
1977+ await act ( async ( ) => {
1978+ fireEvent . click ( btn ) ;
1979+ } ) ;
1980+
1981+ expect ( screen . getByTestId ( 'reports-view' ) ) . toBeInTheDocument ( ) ;
1982+
1983+ await act ( async ( ) => {
1984+ fireEvent . click ( screen . getByText ( 'Show Tasks' ) ) ;
1985+ } ) ;
1986+
1987+ expect ( screen . queryByTestId ( 'reports-view' ) ) . not . toBeInTheDocument ( ) ;
1988+ expect ( screen . getByText ( 'Show Reports' ) ) . toBeInTheDocument ( ) ;
1989+ } ) ;
1990+ } ) ;
19361991} ) ;
0 commit comments