diff --git a/frontend/src/components/HomeComponents/Navbar/__tests__/NavbarMobile.test.tsx b/frontend/src/components/HomeComponents/Navbar/__tests__/NavbarMobile.test.tsx
index 025c11bc..eb810e35 100644
--- a/frontend/src/components/HomeComponents/Navbar/__tests__/NavbarMobile.test.tsx
+++ b/frontend/src/components/HomeComponents/Navbar/__tests__/NavbarMobile.test.tsx
@@ -1,4 +1,8 @@
import { render, screen, fireEvent } from '@testing-library/react';
+import {
+ exportTasksAsJSON,
+ exportTasksAsTXT,
+} from '@/components/utils/ExportTasks';
import { NavbarMobile } from '../NavbarMobile';
import {
deleteAllTasks,
@@ -7,7 +11,12 @@ import {
routeList,
} from '../navbar-utils';
-jest.mock('../navbar-utils', () => ({
+jest.mock('@/components/utils/ExportTasks', () => ({
+ exportTasksAsJSON: jest.fn(),
+ exportTasksAsTXT: jest.fn(),
+}));
+
+jest.mock('@/components/HomeComponents/Navbar/navbar-utils', () => ({
deleteAllTasks: jest.fn(),
handleLogout: jest.fn(),
routeList: [
@@ -114,6 +123,34 @@ describe('NavbarMobile', () => {
fireEvent.click(logoutButton);
expect(handleLogout).toHaveBeenCalled();
});
+
+ test('export task as json and close menu', () => {
+ render();
+
+ fireEvent.click(screen.getByText('Export Tasks'));
+ fireEvent.click(screen.getByText('Download .json'));
+
+ expect(exportTasksAsJSON).toHaveBeenCalledWith(openProps.tasks);
+ expect(mockSetIsOpen).toHaveBeenCalledWith(false);
+ });
+
+ test('export task as txt and close menu', () => {
+ render();
+
+ fireEvent.click(screen.getByText('Export Tasks'));
+ fireEvent.click(screen.getByText('Download .txt'));
+
+ expect(exportTasksAsTXT).toHaveBeenCalledWith(openProps.tasks);
+ expect(mockSetIsOpen).toHaveBeenCalledWith(false);
+ });
+
+ test('opens auto-sync dialog', () => {
+ render();
+
+ fireEvent.click(screen.getByText('Auto-sync'));
+
+ expect(screen.getByText(/Enable Auto-Sync/i)).toBeInTheDocument();
+ });
});
describe('NavbarMobile component using snapshot', () => {