Files
lucia-frontend/cypress/e2e/discoverPerformance.cy.js
2026-03-06 18:57:58 +08:00

67 lines
2.5 KiB
JavaScript

// 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');
});
});