Skip to content

Commit 3729006

Browse files
authored
test(Tasks): add Reports Toggle tests (#467)
Added tests for the Reports Toggle feature in the Tasks component. Ref #433
1 parent c5b0bb8 commit 3729006

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

frontend/src/components/HomeComponents/Tasks/__tests__/Tasks.test.tsx

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
188192
global.fetch = jest.fn().mockResolvedValue({ ok: true });
189193

190194
describe('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

Comments
 (0)