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', () => {