From e09762fd23c8563dfa915b35966448dc527af869 Mon Sep 17 00:00:00 2001 From: Ishwar Kanse Date: Fri, 10 Oct 2025 11:22:08 +0530 Subject: [PATCH] TRACING-5579: Update Cypress tests for Material-UI time range component Assisted by Cursor IDE --- tests/cypress/support/commands.ts | 27 +++++++++++++++++++++++++-- tests/e2e/dt-plugin-tests.cy.ts | 8 ++++---- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/tests/cypress/support/commands.ts b/tests/cypress/support/commands.ts index 682a861..49d00b4 100644 --- a/tests/cypress/support/commands.ts +++ b/tests/cypress/support/commands.ts @@ -59,6 +59,9 @@ declare global { pfCloseButtonIfExists(ariaLabel?: string, options?: Partial): Chainable; menuToggleContains(text: string | RegExp, options?: Partial): Chainable>; verifyTraceCount(expectedCount: number | string, options?: Partial): Chainable; + // Material-UI specific commands + muiSelect(ariaLabel: string, options?: Partial): Chainable>; + muiSelectOption(optionText: string, options?: Partial): Chainable>; // Tracing-specific commands setupTracePage(tempoInstance: string, tenant: string, timeframe?: string, serviceFilter?: string): Chainable; navigateToTraceDetails(): Chainable; @@ -595,6 +598,26 @@ Cypress.Commands.add( }, ); +// Material-UI Select commands + +Cypress.Commands.add( + 'muiSelect', + (ariaLabel: string, options?: Partial) => { + const defaultOptions = { timeout: 10000, ...options }; + // Find Material-UI Select component by aria-label (supports partial match) + cy.get(`[role="combobox"][aria-label*="${ariaLabel}"]`, defaultOptions); + }, +); + +Cypress.Commands.add( + 'muiSelectOption', + (optionText: string, options?: Partial) => { + const defaultOptions = { timeout: 10000, ...options }; + // Find Material-UI Select option by text in the listbox + cy.get('[role="listbox"] [role="option"]', defaultOptions).contains(optionText); + }, +); + Cypress.Commands.add( 'pfCloseButton', (ariaLabel?: string, options?: Partial) => { @@ -685,8 +708,8 @@ Cypress.Commands.add( // Set timeframe if provided if (timeframe) { - cy.pfMenuToggle('Last 30 minutes').click(); - cy.pfSelectMenuItem(timeframe).click(); + cy.muiSelect('Select time range').click(); + cy.muiSelectOption(timeframe).click(); } // Set service filter if provided diff --git a/tests/e2e/dt-plugin-tests.cy.ts b/tests/e2e/dt-plugin-tests.cy.ts index 204771c..dd33558 100644 --- a/tests/e2e/dt-plugin-tests.cy.ts +++ b/tests/e2e/dt-plugin-tests.cy.ts @@ -373,8 +373,8 @@ describe('OpenShift Distributed Tracing UI Plugin tests', () => { cy.pfSelectMenuItem('chainsaw-rbac / simplst').click(); cy.pfTypeahead('Select a tenant').click(); cy.pfSelectMenuItem('dev').click(); - cy.pfMenuToggle('Last 30 minutes').click(); - cy.pfSelectMenuItem('Last 15 minutes').click(); + cy.muiSelect('Select time range').click(); + cy.muiSelectOption('Last 15 minutes').click(); cy.pfMenuToggle('Service Name').click(); cy.pfMenuToggleByLabel('Multi typeahead checkbox').click(); cy.pfCheckMenuItem('http-rbac-1'); @@ -403,8 +403,8 @@ describe('OpenShift Distributed Tracing UI Plugin tests', () => { cy.pfSelectMenuItem('chainsaw-mmo-rbac / mmo-rbac').click(); cy.pfTypeahead('Select a tenant').click(); cy.pfSelectMenuItem('dev').click(); - cy.pfMenuToggle('Last').click(); - cy.pfSelectMenuItem('Last 1 hour').click(); + cy.muiSelect('Select time range').click(); + cy.muiSelectOption('Last 1 hour').click(); cy.pfMenuToggle('Service Name').click(); cy.pfMenuToggleByLabel('Multi typeahead checkbox').click(); cy.pfCheckMenuItem('http-rbac-1');