diff options
| author | Adam Mathes <adam@adammathes.com> | 2026-02-16 08:18:42 -0800 |
|---|---|---|
| committer | Adam Mathes <adam@adammathes.com> | 2026-02-16 08:18:42 -0800 |
| commit | de741fa9c5491787ab1e55dcb8b361a598fc945a (patch) | |
| tree | bd5d3cd3014193ba853f1f0a85a9dffddd194320 /frontend-vanilla/src/main.test.ts | |
| parent | 795d48fe18c38422fe63ffa900c26405e395ade2 (diff) | |
| download | neko-de741fa9c5491787ab1e55dcb8b361a598fc945a.tar.gz neko-de741fa9c5491787ab1e55dcb8b361a598fc945a.tar.bz2 neko-de741fa9c5491787ab1e55dcb8b361a598fc945a.zip | |
Implement settings toggle logic and refactor sidebar navigation
- Close NK-s8nytj: Settings page close behavior
- Update frontend-vanilla/src/main.ts to toggle settings/filter navigation
- Add tests in frontend-vanilla/src/main.test.ts for navigation logic
- Created NK-gxvegm for feed/tag settings behavior
- Created NK-f64ocp for routing logic refactor
Diffstat (limited to 'frontend-vanilla/src/main.test.ts')
| -rw-r--r-- | frontend-vanilla/src/main.test.ts | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/frontend-vanilla/src/main.test.ts b/frontend-vanilla/src/main.test.ts index a8b6969..d397a5e 100644 --- a/frontend-vanilla/src/main.test.ts +++ b/frontend-vanilla/src/main.test.ts @@ -293,4 +293,31 @@ describe('main application logic', () => { body: expect.stringContaining('"read":true') })); }); + + it('should close settings and return to home when clicking settings again', () => { + renderLayout(); + const settingsLink = document.querySelector('[data-nav="settings"]') as HTMLElement; + expect(settingsLink).not.toBeNull(); + + const getCurrentRouteSpy = vi.spyOn(router, 'getCurrentRoute').mockReturnValue({ path: '/settings', params: {}, query: new URLSearchParams() }); + const navigateSpy = vi.spyOn(router, 'navigate'); + + settingsLink.click(); + + expect(navigateSpy).toHaveBeenCalledWith('/', expect.any(Object)); + getCurrentRouteSpy.mockRestore(); + }); + + it('should navigate to home with filter when clicking filter from settings', () => { + renderLayout(); + const getCurrentRouteSpy = vi.spyOn(router, 'getCurrentRoute').mockReturnValue({ path: '/settings', params: {}, query: new URLSearchParams() }); + const navigateSpy = vi.spyOn(router, 'navigate'); + + const filterLink = document.querySelector('a[data-nav="filter"][data-value="starred"]') as HTMLElement; + expect(filterLink).not.toBeNull(); + filterLink.click(); + + expect(navigateSpy).toHaveBeenCalledWith('/', expect.objectContaining({ filter: 'starred' })); + getCurrentRouteSpy.mockRestore(); + }); }); |
