11import { render , screen , fireEvent } from '@testing-library/react' ;
2+ import {
3+ exportTasksAsJSON ,
4+ exportTasksAsTXT ,
5+ } from '@/components/utils/ExportTasks' ;
26import { NavbarMobile } from '../NavbarMobile' ;
37import {
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 ( / E n a b l e A u t o - S y n c / i) ) . toBeInTheDocument ( ) ;
153+ } ) ;
117154} ) ;
118155
119156describe ( 'NavbarMobile component using snapshot' , ( ) => {
0 commit comments