Skip to content

Commit 96af3f0

Browse files
authored
test: add test for NavbarMobile (#339)
* test:added test for NavbarMobile * test:added test for NavbarMobile
1 parent eb89424 commit 96af3f0

1 file changed

Lines changed: 38 additions & 1 deletion

File tree

frontend/src/components/HomeComponents/Navbar/__tests__/NavbarMobile.test.tsx

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
import { render, screen, fireEvent } from '@testing-library/react';
2+
import {
3+
exportTasksAsJSON,
4+
exportTasksAsTXT,
5+
} from '@/components/utils/ExportTasks';
26
import { NavbarMobile } from '../NavbarMobile';
37
import {
48
deleteAllTasks,
@@ -7,7 +11,12 @@ import {
711
routeList,
812
} from '../navbar-utils';
913

10-
jest.mock('../navbar-utils', () => ({
14+
jest.mock('@/components/utils/ExportTasks', () => ({
15+
exportTasksAsJSON: jest.fn(),
16+
exportTasksAsTXT: jest.fn(),
17+
}));
18+
19+
jest.mock('@/components/HomeComponents/Navbar/navbar-utils', () => ({
1120
deleteAllTasks: jest.fn(),
1221
handleLogout: jest.fn(),
1322
routeList: [
@@ -114,6 +123,34 @@ describe('NavbarMobile', () => {
114123
fireEvent.click(logoutButton);
115124
expect(handleLogout).toHaveBeenCalled();
116125
});
126+
127+
test('export task as json and close menu', () => {
128+
render(<NavbarMobile {...openProps} />);
129+
130+
fireEvent.click(screen.getByText('Export Tasks'));
131+
fireEvent.click(screen.getByText('Download .json'));
132+
133+
expect(exportTasksAsJSON).toHaveBeenCalledWith(openProps.tasks);
134+
expect(mockSetIsOpen).toHaveBeenCalledWith(false);
135+
});
136+
137+
test('export task as txt and close menu', () => {
138+
render(<NavbarMobile {...openProps} />);
139+
140+
fireEvent.click(screen.getByText('Export Tasks'));
141+
fireEvent.click(screen.getByText('Download .txt'));
142+
143+
expect(exportTasksAsTXT).toHaveBeenCalledWith(openProps.tasks);
144+
expect(mockSetIsOpen).toHaveBeenCalledWith(false);
145+
});
146+
147+
test('opens auto-sync dialog', () => {
148+
render(<NavbarMobile {...openProps} />);
149+
150+
fireEvent.click(screen.getByText('Auto-sync'));
151+
152+
expect(screen.getByText(/Enable Auto-Sync/i)).toBeInTheDocument();
153+
});
117154
});
118155

119156
describe('NavbarMobile component using snapshot', () => {

0 commit comments

Comments
 (0)