// The Lucia project. // Copyright 2026-2026 DSP, inc. All rights reserved. // Authors: // imacat.yang@dsp.im (imacat), 2026/03/05 import { loginWithFixtures } from '../support/intercept'; describe('Discover Performance Page', () => { beforeEach(() => { loginWithFixtures(); cy.visit('/discover/log/297310264/performance'); cy.wait('@getPerformance'); }); it('page loads and loading overlay disappears', () => { // Loading overlay should not be visible after data loads cy.get('.z-\\[9999\\]', { timeout: 10000 }).should('not.exist'); }); it('displays Time Usage sidebar section', () => { cy.get('.z-\\[9999\\]', { timeout: 10000 }).should('not.exist'); cy.contains('Time Usage').should('be.visible'); }); it('displays Frequency sidebar section', () => { cy.get('.z-\\[9999\\]', { timeout: 10000 }).should('not.exist'); cy.contains('Frequency').should('be.visible'); }); it('displays sidebar navigation items', () => { cy.get('.z-\\[9999\\]', { timeout: 10000 }).should('not.exist'); cy.contains('Cycle Time & Efficiency').should('be.visible'); cy.contains('Processing Time').should('be.visible'); cy.contains('Waiting Time').should('be.visible'); cy.contains('Number of Cases').should('be.visible'); }); it('displays chart titles', () => { cy.get('.z-\\[9999\\]', { timeout: 10000 }).should('not.exist'); cy.contains('Average Cycle Time').should('be.visible'); cy.contains('Cycle Efficiency').should('be.visible'); cy.contains('Average Processing Time').should('be.visible'); cy.contains('Average Processing Time by Activity').should('be.visible'); cy.contains('Average Waiting Time').should('be.visible'); }); it('displays frequency chart titles', () => { cy.get('.z-\\[9999\\]', { timeout: 10000 }).should('not.exist'); cy.contains('New Cases').should('be.visible'); cy.contains('Number of Cases by Activity').should('be.visible'); }); it('renders canvas elements for charts', () => { cy.get('.z-\\[9999\\]', { timeout: 10000 }).should('not.exist'); // Chart.js renders into canvas elements cy.get('canvas').should('have.length.at.least', 5); }); it('sidebar navigation scrolls to section', () => { cy.get('.z-\\[9999\\]', { timeout: 10000 }).should('not.exist'); // Click on "Waiting Time" in sidebar cy.contains('li', 'Waiting Time').click(); // The Waiting Time section should be in view cy.get('#waitingTime').should('exist'); }); });