// The Lucia project. // Copyright 2026-2026 DSP, inc. All rights reserved. // Authors: // imacat.yang@dsp.im (imacat), 2026/03/05 import { loginWithFixtures, setupApiIntercepts } from '../support/intercept'; describe('Navigation and Routing', () => { it('redirects / to /files when logged in', () => { loginWithFixtures(); cy.visit('/'); cy.url().should('include', '/files'); }); it('shows 404 page for unknown routes', () => { loginWithFixtures(); cy.visit('/nonexistent-page'); cy.contains('404').should('exist'); }); it('navbar shows correct view name', () => { loginWithFixtures(); cy.visit('/files'); cy.wait('@getFiles'); cy.get('#nav_bar').should('exist'); cy.get('#nav_bar h2').should('contain', 'FILES'); }); it('navbar shows back arrow on non-files pages', () => { loginWithFixtures(); cy.visit('/discover/log/1/map'); // Back arrow should be visible on discover pages cy.get('#backPage').should('exist'); }); it('navbar tabs are clickable on discover page', () => { loginWithFixtures(); cy.visit('/discover/log/1/map'); // Discover navbar should show MAP, CONFORMANCE, PERFORMANCE tabs cy.contains('.nav-item', 'MAP').should('exist'); cy.contains('.nav-item', 'CONFORMANCE').should('exist'); cy.contains('.nav-item', 'PERFORMANCE').should('exist'); // Click CONFORMANCE tab cy.contains('.nav-item', 'CONFORMANCE').click(); cy.url().should('include', '/conformance'); // Click PERFORMANCE tab cy.contains('.nav-item', 'PERFORMANCE').click(); cy.url().should('include', '/performance'); // Click MAP tab to go back cy.contains('.nav-item', 'MAP').click(); cy.url().should('include', '/map'); }); it('login page is accessible at /login', () => { setupApiIntercepts(); cy.visit('/login'); cy.get('h2').should('contain', 'LOGIN'); }); });