Skip to content

NETOBSERV-2689: Patternflyv6 updates#1426

Merged
openshift-merge-bot[bot] merged 12 commits intonetobserv:mainfrom
Amoghrd:netobserv-2653-v6-updates
Apr 22, 2026
Merged

NETOBSERV-2689: Patternflyv6 updates#1426
openshift-merge-bot[bot] merged 12 commits intonetobserv:mainfrom
Amoghrd:netobserv-2653-v6-updates

Conversation

@Amoghrd
Copy link
Copy Markdown
Member

@Amoghrd Amoghrd commented Apr 8, 2026

Description

  • Update integration tests to patternfly-v6
  • Reduce dependency on pf selectors
  • Add missing netobserv-logo file under views
  • Make tests less flaky
  • Add funs to reduce duplication

Dependencies

#1365

Checklist

  • Does the changes in PR need specific configuration or environment set up for testing?
    • if so please describe it in PR description.
  • I have added thorough unit tests for the change.
  • QE requirements (check 1 from the list):
    • Standard QE validation, with pre-merge tests unless stated otherwise.
    • Regression tests only (e.g. refactoring with no user-facing change).
    • No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

Jenkins run: noo-frontend-tests#58

All failing tests were flaky and passed on rerun

Summary by CodeRabbit

  • Tests
    • Improved test resilience by replacing position-based selectors with label/test-id lookups and making teardown/hooks more robust across many integration tests
    • Enhanced test utilities and added CLI login and topology/logo verification helpers
  • UI
    • Added data-test attributes to several interactive controls and health cards to improve testability
  • Chores
    • Simplified and consolidated dashboard and netflow test helpers and selectors; added a reusable gateway test fixture

@openshift-ci-robot
Copy link
Copy Markdown
Collaborator

openshift-ci-robot commented Apr 8, 2026

@Amoghrd: This pull request references NETOBSERV-2653 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Description

  • Update integration tests to patternfly-v6
  • Reduce dependency on pf selectors

Dependencies

#1365

Checklist

  • Does the changes in PR need specific configuration or environment set up for testing?
    • if so please describe it in PR description.
  • I have added thorough unit tests for the change.
  • QE requirements (check 1 from the list):
  • Standard QE validation, with pre-merge tests unless stated otherwise.
  • Regression tests only (e.g. refactoring with no user-facing change).
  • No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 8, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Refactors Cypress tests and view/components to replace positional selectors with text/test-id selectors, add and use data-test attributes, harden DOM traversals, adjust several test assertions, add a new cliLogin command, and introduce a fixture and SVG logo verifier for topology resource logos.

Changes

Cohort / File(s) Summary
Tab & Scope Selection
web/cypress/integration-tests/{client_performance,dns_dashboards,dns_tracking,flowRTT,flowRTT_dashboards,netflow_conversations,netflow_external_subnet,netflow_table,netflow_zone_multiCluster,netobserv_udn,packet_drop,packet_drop_dashboards,quickFilters,table_queryopts,topology_view}.cy.ts, web/cypress/integration-tests/topology_{edges_labels,groups}.cy.ts
Replaced positional li:nth-child(...) tab clicks with #tabs-container text-based .contains(...) clicks. Removed redundant null args from selectScopeGroup() and made some response checks null-safe.
Test Assertions & Flows
web/cypress/e2e/table/fields.spec.ts, web/cypress/integration-tests/{network_health,netflow_export,overview_page,flowRTT,flowRTT_dashboards,packet_drop,packet_drop_dashboards}.cy.ts
Updated specific assertions (accordion label, ICMP group, RTT value 4ms→4.05ms), replaced brittle graph/empty-state checks with cy.checkDashboards(...), refactored export modal/download flow, and removed redundant waits.
Selectors & DOM Traversal Hardenings
web/cypress/integration-tests/{netflow_table,netflow_zone_multiCluster,netflow_developer_view,netflow_external_subnet,netobserv_udn,table_queryopts,topology_edges_labels,topology_groups,topology_view,network_health,quickFilters}.cy.ts
Replaced deeply nested selectors with test-id/aria/text-based selectors, simplified per-row assertions (SrcPort/DSCP), updated filter interactions, and hardened localStorage parsing.
Views: netflow & dashboards & list
web/cypress/views/netflow-page.ts, web/cypress/views/dashboards-page.ts, web/cypress/views/list-page.ts, web/cypress/views/pages.ts
Large selector refactor: new helper selectors (thCol, topology helpers), removed/changed exports (e.g., toggleFullScreen), simplified dashboard control selectors, changed graph body to [role="region"], and moved many selectors to test-id/attribute driven forms.
Support commands & new CLI login
web/cypress/support/commands.ts
Switched modal body selector to .pf-v5-c-modal-box__body and added cliLogin(username?, password?) Cypress command (with TypeScript declaration).
Health & Rule UI test attributes
web/src/components/health/{health-card,health-drawer-container,rule-details}.tsx, web/cypress/views/network-health.ts
Added data-test attributes: health-card-, health-drawer-content, rule-details-row, rule-details-actions; updated network-health view to use these selectors and adjusted click/verify flows.
Form/widget & histogram attributes
web/src/components/forms/dynamic-form/widgets.tsx, web/src/components/metrics/histogram.tsx
SwitchWidget forwards data-test={id}; six histogram buttons receive data-test attributes for test targeting.
YAML editor & pages & operator-hub
web/cypress/views/{yaml-editor,pages,operator-hub-page}.ts
Changed Monaco load detection to .monaco-editor .view-lines, adjusted field details button traversal, replaced some selectors with byLegacyTestID, and updated badge/status element lookup.
Topology logo & fixtures
web/cypress/views/netobserv-logo.ts, web/cypress/fixtures/gateway-api.yaml, (removed) web/cypress/fixtures/gateway-api-template.yaml
Added netobserv-logo helper with RESOURCE_SVG_PATH_MAP and verifyResourceSVGLogo. Added new gateway fixture YAML and removed the old template-based fixture.
Many minor test hook renames
web/cypress/integration-tests/**/*.cy.ts
Standardized/renamed many Mocha after(...) hook description strings to variants of "all tests" without changing teardown logic.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive PR description covers objectives (PatternFly v6 updates, reduced selector dependencies) and QE requirements, but required checklist items are incomplete. Mark the checklist boxes for environment setup and unit tests, or explicitly state why they don't apply. Clarify if configuration/environment setup is needed.
✅ Passed checks (2 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Title check ✅ Passed The title 'NETOBSERV-2689: Patternflyv6 updates' accurately reflects the core change—updating integration tests and selectors to PatternFly v6, as confirmed by PR objectives and file summaries throughout the changeset.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Amoghrd Amoghrd changed the title NETOBSERV-2653: Patternflyv6 updates WIP: NETOBSERV-2653: Patternflyv6 updates Apr 8, 2026
@Amoghrd Amoghrd force-pushed the netobserv-2653-v6-updates branch 5 times, most recently from 3910400 to b5702ad Compare April 10, 2026 20:34
@openshift-ci-robot
Copy link
Copy Markdown
Collaborator

openshift-ci-robot commented Apr 10, 2026

@Amoghrd: This pull request references NETOBSERV-2653 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Description

  • Update integration tests to patternfly-v6
  • Reduce dependency on pf selectors

Dependencies

#1365

Checklist

  • Does the changes in PR need specific configuration or environment set up for testing?
    • if so please describe it in PR description.
  • I have added thorough unit tests for the change.
  • QE requirements (check 1 from the list):
  • Standard QE validation, with pre-merge tests unless stated otherwise.
  • Regression tests only (e.g. refactoring with no user-facing change).
  • No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

Jenkins run: noo-frontend-tests#48

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@Amoghrd Amoghrd requested review from jpinsonneau and memodi April 10, 2026 20:57
@Amoghrd Amoghrd changed the title WIP: NETOBSERV-2653: Patternflyv6 updates NETOBSERV-2653: Patternflyv6 updates Apr 10, 2026
@Amoghrd
Copy link
Copy Markdown
Member Author

Amoghrd commented Apr 10, 2026

Have fixed the failing tests(network_health, netflow_table and netflow_export) from ginkgo job. Will rerun them on monday to check if they are passing.

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 10, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 52.47%. Comparing base (9af805b) to head (c293816).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1426   +/-   ##
=======================================
  Coverage   52.47%   52.47%           
=======================================
  Files         233      233           
  Lines       12438    12438           
  Branches     1559     1559           
=======================================
  Hits         6527     6527           
  Misses       5297     5297           
  Partials      614      614           
Flag Coverage Δ
uitests 56.61% <ø> (ø)
unittests 40.96% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Amoghrd Amoghrd force-pushed the netobserv-2653-v6-updates branch from b5702ad to fcad18b Compare April 13, 2026 18:20
@openshift-ci-robot
Copy link
Copy Markdown
Collaborator

openshift-ci-robot commented Apr 13, 2026

@Amoghrd: This pull request references NETOBSERV-2653 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Description

  • Update integration tests to patternfly-v6
  • Reduce dependency on pf selectors

Dependencies

#1365

Checklist

  • Does the changes in PR need specific configuration or environment set up for testing?
    • if so please describe it in PR description.
  • I have added thorough unit tests for the change.
  • QE requirements (check 1 from the list):
  • Standard QE validation, with pre-merge tests unless stated otherwise.
  • Regression tests only (e.g. refactoring with no user-facing change).
  • No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

Jenkins run: noo-frontend-tests#48

Summary by CodeRabbit

  • Tests
  • Refactored Cypress test selectors to use text-based and helper-based locators instead of brittle positional selectors, improving test resilience to UI changes.
  • Simplified DOM selector chains and updated test API calls for improved maintainability.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@Amoghrd Amoghrd force-pushed the netobserv-2653-v6-updates branch from fcad18b to 30fb22f Compare April 13, 2026 18:27
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🧹 Nitpick comments (3)
web/cypress/views/yaml-editor.ts (1)

99-104: Narrow the click scope to avoid flaky cross-item matches.

Using .parents('li') + .find('button') can target a different item’s button in nested lists. Prefer nearest ancestor scoping.

Proposed change
 export const clickFieldDetailsButton = (fieldName: string) => {
   cy.contains('h5', `${fieldName}`)
-    .parents('li')
-    .find('button')
-    .contains('View details')
-    .click();
+    .closest('li')
+    .within(() => {
+      cy.contains('button', 'View details').click();
+    });
 };
As per coding guidelines, "`web/cypress/**/*.ts`: Verify E2E test stability, proper waits, and selector resilience".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/cypress/views/yaml-editor.ts` around lines 99 - 104, The selector in
clickFieldDetailsButton is too broad — using .parents('li').find('button') can
match buttons from other nested items; change to scope to the nearest list item
and then click the button within that scope. Update clickFieldDetailsButton to
use cy.contains('h5', fieldName).closest('li') (or .closest('li').within(() =>
cy.contains('button', 'View details').click())) so the lookup is limited to the
nearest ancestor li and the button lookup uses the 'button' context.
web/cypress/views/operator-hub-page.ts (1)

47-47: Scope the status selector to operator tiles.

Line 47 uses a page-wide [role="status"], which can match unrelated status elements and introduce flaky assertions. Scope it to tile containers.

Proposed change
   getAllTileLabels: () => {
-    return cy.get('[role="status"]')
+    return cy.get('.co-catalog-tile').find('[role="status"]')
   },

As per coding guidelines, web/cypress/**/*.ts must "Verify E2E test stability, proper waits, and selector resilience".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/cypress/views/operator-hub-page.ts` at line 47, The selector currently
returns a page-wide '[role="status"]' which can match unrelated elements; update
the call that returns this selector so it scopes the status to operator tile
containers (for example replace with a descendant selector like
'[data-testid="operator-tile"] [role="status"]' or use
cy.get('[data-testid="operator-tile"]').find('[role="status"]') /
'.operator-tile [role="status"]' depending on the DOM) to ensure the status
element is fetched only from operator tiles and avoid flaky assertions.
web/cypress/views/netobserv.ts (1)

226-227: Scope the final Submit click to the wizard footer.

Line 227 uses a page-wide contains('button', 'Submit'), which can click the wrong button if another submit action is present. Scope it to the form footer to reduce flakiness.

Proposed tweak
-        cy.contains('button', 'Submit').should('exist').click()
+        cy.get('footer').contains('button[type="submit"]', 'Submit').should('be.visible').click()

As per coding guidelines, "web/cypress/**/*.ts: Verify E2E test stability, proper waits, and selector resilience".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/cypress/views/netobserv.ts` around lines 226 - 227, The page-wide
cy.contains('button', 'Submit') call in the "Consumption tab - final submit"
step is too broad; scope the lookup to the wizard/footer region to avoid
clicking the wrong submit button by first selecting the wizard footer container
(for example the footer element or a data-testid like wizard-footer) and then
calling contains on that container for the 'Submit' button, keeping the existing
should('exist') and click flow to preserve assertions.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@web/cypress/integration-tests/netflow_export.cy.ts`:
- Around line 47-53: Replace the flaky fixed sleep and ambiguous ls parsing:
remove the cy.wait(3000) and instead wait for the download file to appear by
polling the downloads directory and selecting the newest file; replace the raw
cy.exec("ls cypress/downloads") + cy.wrap(response.stdout) usage with a
deterministic listing (e.g., cy.exec('ls -t cypress/downloads | head -n1') or a
Node task that returns the newest file) and trim newlines before using the
filename, then move/rename and cy.readFile('cypress/downloads/export_table.csv')
only after confirming the file exists; update the code around cy.exec, cy.wrap,
and cy.readFile to use this deterministic approach so tests are stable and
handle multiple files.

In `@web/cypress/integration-tests/netflow_table.cy.ts`:
- Around line 151-153: The test currently re-queries the entire column inside
the each callback (cy.get('[data-test-td-column-id=SrcPort]').each((td) => {
cy.get('[data-test-td-column-id=SrcPort]').should(...)})), which validates the
whole column instead of the current cell; update the each callbacks to use
cy.wrap(td).should('not.contain.text', 'loki (3100)') so each cell is asserted
individually, and apply the same change to the other similar block mentioned
(the second occurrence around lines 159-161).

In `@web/cypress/integration-tests/quickFilters.cy.ts`:
- Around line 52-53: The test is querying any checkbox inside
`#quick-filters-dropdown` which is too broad and brittle; update both occurrences
(the checks at the lines referencing `#quick-filters-dropdown`) to scope the
checkbox to the "Test NS" filter label instead of selecting all
checkboxes—locate the label text "Test NS" (e.g., with cy.contains or within)
and then find the associated input[type="checkbox"] from that label/container
before asserting/clicking, and ensure any necessary waits or assertions for the
dropdown/label visibility are added to stabilize the E2E step.

In `@web/cypress/integration-tests/table_queryopts.cy.ts`:
- Around line 126-129: The assertion currently re-queries all Dscp cells inside
the .each loop, losing scope; instead, inside the each callback use the td
element directly (wrap the td with cy.wrap(td)) to assert its attributes and
text so each row is validated individually: reference the existing
cy.get('[data-test-td-column-id=Dscp]') .each((td) => ...) loop and replace the
global cy.get(...) text check with cy.wrap(td).should('contain.text',
'Standard') and assert the attribute on cy.wrap(td) (e.g.,
should('have.attr','data-test-td-value').and('contain','0')) so each td is
tested in scope.

In `@web/cypress/views/netflow-page.ts`:
- Around line 145-146: The selector confirmDel uses Playwright-only syntax
'#delete-modal button:has-text("Delete")' which will break in Cypress; replace
it with a proper test-hook based selector (e.g. use an existing data-test-id on
the modal and the confirm button) and update confirmDel to point to that test
hook (reference symbol: confirmDel) instead of using :has-text(), or
alternatively ensure tests use cy.contains(...) in the test code rather than
this Playwright selector; also keep the existing del constant
([data-test-id=delete-resource-button]) unchanged.

In `@web/cypress/views/network-health.ts`:
- Around line 14-25: The tests fail because clickOnAlert and verifyAlert use
non-existent data-test attributes; update both functions (clickOnAlert and
verifyAlert in web/cypress/views/network-health.ts) to use the id-based hooks
emitted by the component (replace `[data-test="health-card-${name}"]` with the
component's id selector, e.g. `#health-card-${name}` or the exact id attribute
used in web/src/components/health/health-card.tsx), keep the existing { timeout,
force } options and the sidePanel checks unchanged, and ensure the same selector
change is applied to both the initial click and the closing click so the test
targets the real DOM nodes.

---

Nitpick comments:
In `@web/cypress/views/netobserv.ts`:
- Around line 226-227: The page-wide cy.contains('button', 'Submit') call in the
"Consumption tab - final submit" step is too broad; scope the lookup to the
wizard/footer region to avoid clicking the wrong submit button by first
selecting the wizard footer container (for example the footer element or a
data-testid like wizard-footer) and then calling contains on that container for
the 'Submit' button, keeping the existing should('exist') and click flow to
preserve assertions.

In `@web/cypress/views/operator-hub-page.ts`:
- Line 47: The selector currently returns a page-wide '[role="status"]' which
can match unrelated elements; update the call that returns this selector so it
scopes the status to operator tile containers (for example replace with a
descendant selector like '[data-testid="operator-tile"] [role="status"]' or use
cy.get('[data-testid="operator-tile"]').find('[role="status"]') /
'.operator-tile [role="status"]' depending on the DOM) to ensure the status
element is fetched only from operator tiles and avoid flaky assertions.

In `@web/cypress/views/yaml-editor.ts`:
- Around line 99-104: The selector in clickFieldDetailsButton is too broad —
using .parents('li').find('button') can match buttons from other nested items;
change to scope to the nearest list item and then click the button within that
scope. Update clickFieldDetailsButton to use cy.contains('h5',
fieldName).closest('li') (or .closest('li').within(() => cy.contains('button',
'View details').click())) so the lookup is limited to the nearest ancestor li
and the button lookup uses the 'button' context.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ef81c7ae-ffe5-4194-b81a-ad35272f388f

📥 Commits

Reviewing files that changed from the base of the PR and between c83176f and fcad18b.

📒 Files selected for processing (32)
  • web/cypress/e2e/table/fields.spec.ts
  • web/cypress/integration-tests/client_performance.cy.ts
  • web/cypress/integration-tests/dns_dashboards.cy.ts
  • web/cypress/integration-tests/dns_tracking.cy.ts
  • web/cypress/integration-tests/flowRTT.cy.ts
  • web/cypress/integration-tests/flowRTT_dashboards.cy.ts
  • web/cypress/integration-tests/gateway_topology_logo.cy.ts
  • web/cypress/integration-tests/ingress_dashboard.cy.ts
  • web/cypress/integration-tests/netflow_conversations.cy.ts
  • web/cypress/integration-tests/netflow_export.cy.ts
  • web/cypress/integration-tests/netflow_external_subnet.cy.ts
  • web/cypress/integration-tests/netflow_table.cy.ts
  • web/cypress/integration-tests/netflow_zone_multiCluster.cy.ts
  • web/cypress/integration-tests/netobserv_udn.cy.ts
  • web/cypress/integration-tests/network_health.cy.ts
  • web/cypress/integration-tests/overview_page.cy.ts
  • web/cypress/integration-tests/packet_drop.cy.ts
  • web/cypress/integration-tests/packet_drop_dashboards.cy.ts
  • web/cypress/integration-tests/quickFilters.cy.ts
  • web/cypress/integration-tests/table_queryopts.cy.ts
  • web/cypress/integration-tests/topology_edges_labels.cy.ts
  • web/cypress/integration-tests/topology_groups.cy.ts
  • web/cypress/integration-tests/topology_view.cy.ts
  • web/cypress/support/commands.ts
  • web/cypress/views/dashboards-page.ts
  • web/cypress/views/list-page.ts
  • web/cypress/views/netflow-page.ts
  • web/cypress/views/netobserv.ts
  • web/cypress/views/network-health.ts
  • web/cypress/views/operator-hub-page.ts
  • web/cypress/views/pages.ts
  • web/cypress/views/yaml-editor.ts

Comment thread web/cypress/integration-tests/netflow_export.cy.ts Outdated
Comment thread web/cypress/integration-tests/netflow_table.cy.ts
Comment thread web/cypress/integration-tests/quickFilters.cy.ts Outdated
Comment thread web/cypress/integration-tests/table_queryopts.cy.ts
Comment thread web/cypress/views/netflow-page.ts Outdated
Comment thread web/cypress/views/network-health.ts Outdated
@Amoghrd
Copy link
Copy Markdown
Member Author

Amoghrd commented Apr 21, 2026

Rebased without changes
This is ready for review since #1365 is merged
cc @jpinsonneau @memodi

jpinsonneau
jpinsonneau previously approved these changes Apr 21, 2026
Copy link
Copy Markdown
Member

@jpinsonneau jpinsonneau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, thanks @Amoghrd !

Just some nit you may want to address here.

Comment thread web/cypress/integration-tests/client_performance.cy.ts Outdated
Comment thread web/cypress/integration-tests/flowRTT.cy.ts Outdated
@Amoghrd
Copy link
Copy Markdown
Member Author

Amoghrd commented Apr 22, 2026

Reran the changed tests post review comment changes. All passed

@Amoghrd Amoghrd added the needs-review Tells that the PR needs a review label Apr 22, 2026
Copy link
Copy Markdown
Member

@kapjain-rh kapjain-rh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, one comment only
I saw in some cases the way of action changed,But mostly looks the improvements in previous tests :)

Comment thread web/cypress/integration-tests/gateway_topology_logo.cy.ts Outdated
@Amoghrd Amoghrd force-pushed the netobserv-2653-v6-updates branch from c293816 to c9021fd Compare April 22, 2026 20:01
@Amoghrd
Copy link
Copy Markdown
Member Author

Amoghrd commented Apr 22, 2026

Yup all are just improvements or to make the tests less flaky

@kapjain-rh
Copy link
Copy Markdown
Member

/lgtm

@openshift-ci
Copy link
Copy Markdown

openshift-ci Bot commented Apr 22, 2026

[APPROVALNOTIFIER] This PR is APPROVED

Approval requirements bypassed by manually added approval.

This pull-request has been approved by:

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@Amoghrd Amoghrd added lgtm and removed needs-review Tells that the PR needs a review lgtm labels Apr 22, 2026
@Amoghrd
Copy link
Copy Markdown
Member Author

Amoghrd commented Apr 22, 2026

@jpinsonneau Could you help merge this?

@openshift-merge-bot openshift-merge-bot Bot merged commit addea95 into netobserv:main Apr 22, 2026
13 of 14 checks passed
Amoghrd added a commit to Amoghrd/netobserv-web-console that referenced this pull request Apr 23, 2026
- Replace complex CSS selector with manage-overview-panels-button
- Replace overviewSelectors.panelsModal with #overview-panels-modal
- Matches PR netobserv#1426 approach to reduce dependency on PF selectors

All 3 overview tests now passing on OCP 4.14 cluster 373965

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Amoghrd added a commit to Amoghrd/netobserv-web-console that referenced this pull request Apr 23, 2026
- Replace complex CSS selector with manage-overview-panels-button
- Replace overviewSelectors.panelsModal with #overview-panels-modal
- Matches PR netobserv#1426 approach to reduce dependency on PF selectors

All 3 overview tests now passing on OCP 4.14 cluster 373965

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Amoghrd added a commit to Amoghrd/netobserv-web-console that referenced this pull request Apr 23, 2026
- Add getTopologyScopeURL() and getMemoryUsageMB() helper functions
- Update tab navigation to use .contains() instead of nth-child()
- Simplify beforeEach to wait for page load instead of intercepting
- Use getMemoryUsageMB() helper for consistent memory calculation
- Update API URL from **/backend/api/flow/metrics* to **/api/flow/metrics*
- Keep fixture paths as netobserv/perf/ (PF4 branch structure)

Matches upstream PR netobserv#1426 pattern to reduce PF selector dependencies

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Amoghrd added a commit to Amoghrd/netobserv-web-console that referenced this pull request Apr 23, 2026
Following PR netobserv#1426 pattern, replace brittle nth-child() selectors with
resilient .contains() for tab navigation to reduce PatternFly version
dependency.

Changes:
- nth-child(2) → .contains('Traffic flows')
- nth-child(3) → .contains('Topology')

Files updated:
- packet_drop_dashboards.cy.ts
- netflow_zone_multiCluster.cy.ts (2 occurrences)
- topology_groups.cy.ts
- dns_dashboards.cy.ts
- dns_tracking.cy.ts
- packet_drop.cy.ts
- flowRTT_dashboards.cy.ts
- quickFilters.cy.ts

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Amoghrd added a commit to Amoghrd/netobserv-web-console that referenced this pull request Apr 23, 2026
Major improvements to test stability by reducing dependency on
PatternFly-specific CSS selectors:

**Removed Selectors:**
- mColumns, mPanels: Use openColumnsModal()/openPanelsModal() commands
- expand: Unused selector
- overviewExport, tableExport, topologyExport: Use #export-button
- expandedQuerySummaryPanel: Unused
- PF-specific classes in checkPopupItems

**Updated Commands:**
- checkPopupItems: Uses label matching instead of PF data-list classes
- selectPopupItems: Uses parent/input traversal instead of PF classes

**Updated Tests:**
- dns_tracking.cy.ts: openColumnsModal(), openPanelsModal()
- netflow_external_subnet.cy.ts: openColumnsModal()
- netflow_table.cy.ts: openColumnsModal(), showAdvancedOptions()
- netflow_zone_multiCluster.cy.ts: openColumnsModal()
- netflow_export.cy.ts: #export-button, export-modal, showAdvancedOptions()

**Selector Improvements:**
- optsClose: .pf-c-drawer__close > .pf-c-button → [aria-label="Close drawer panel"]

Following PR netobserv#1426 pattern of resilient selectors for better test
maintainability across PatternFly versions.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants