Migrate all 11 Helm Cypress E2E features to Playwright - #16901
Conversation
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
Skipping CI for Draft Pull Request. |
|
Note Reviews pausedIt 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 Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughAdded Playwright page objects and end-to-end tests for Helm navigation, repositories, releases, URL installations, upgrades, rollbacks, deletions, and topology links. Removed the Helm Cypress integration-test package and added Knative Cypress scripts. ChangesHelm Playwright migration
Knative Cypress scripts
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 14 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (14 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: sowmya-sl The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Actionable comments posted: 7
🧹 Nitpick comments (1)
frontend/e2e/tests/helm/helm-page-tabs.spec.ts (1)
136-138: 🧹 Nitpick | 🔵 TrivialExternal chart-repository URLs introduce a network dependency for these tests.
Several tests fetch a live
raw.githubusercontent.comindex (also at lines 251-253). If GitHub is unreachable or the file moves, these tests fail for reasons unrelated to the feature under test. Consider whether a stable internal or mocked chart index is feasible for these scenarios.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@frontend/e2e/tests/helm/helm-page-tabs.spec.ts` around lines 136 - 138, Replace the live raw.githubusercontent.com repository URLs used by helmPage.fillRepoUrl in the affected tests, including the occurrence near the later referenced lines, with a stable internal or mocked chart index fixture. Preserve the tests’ existing chart-repository behavior while removing the external network dependency.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@frontend/e2e/pages/helm-page.ts`:
- Around line 87-94: Replace the direct filter-type menu item clicks in
openStatusFilterDropdown and searchByName with this.robustClick, preserving the
existing locators and selection behavior for the Status and Name options.
- Around line 67-72: Remove the duplicate searchCatalogAndSelectChart
implementation, retain searchAndSelectHelmChart as the single shared method, and
update callers in helm-page-tabs.spec.ts to invoke searchAndSelectHelmChart
while preserving the existing helm-navigation.spec.ts usage.
- Around line 82-85: Update clickCreate in the Helm page object to reuse the
existing submit-button click helper, clickSubmit, instead of redeclaring the
submitButton locator and repeating robustClick logic. Preserve the current
asynchronous behavior and button interaction.
- Around line 21-24: Update the catalogSidePaneButton locator in the Helm page
object to target the CTA explicitly with the catalog-details-modal-cta data-test
attribute instead of selecting the first dialog button, while leaving
catalogSidePane unchanged.
In `@frontend/e2e/tests/helm/helm-navigation.spec.ts`:
- Around line 11-20: Before the first Helm navigation in each test, initialize
the SPA with warmupSPA(page) and select the Developer perspective via
HelmPage.switchPerspective('Developer'). Place both calls before
navigateToCatalogHelmCharts, while preserving the existing namespace setup and
chart selection flow.
In `@frontend/e2e/tests/helm/helm-page-tabs.spec.ts`:
- Around line 13-19: Extract the identical namespace setup from the affected
test cases into a shared test.beforeEach hook, preserving the sequence of
createNamespace, cleanup.trackNamespace, warmupSPA,
switchPerspective('Developer'), and navigateToHelmPage. Ensure the hook uses
each test’s ns value and remove the duplicated setup steps from TC01, TC02,
TC03, TC04, and TC06.
In `@frontend/e2e/tests/helm/topology-helm-release.spec.ts`:
- Around line 95-96: Update the Helm release identifier used by the second
test’s “Install Helm chart” step to a name unique to that test, and ensure the
corresponding HELM_RELEASE_NAME references use the same unique value so it
cannot collide with the first test’s release retained until afterAll.
---
Nitpick comments:
In `@frontend/e2e/tests/helm/helm-page-tabs.spec.ts`:
- Around line 136-138: Replace the live raw.githubusercontent.com repository
URLs used by helmPage.fillRepoUrl in the affected tests, including the
occurrence near the later referenced lines, with a stable internal or mocked
chart index fixture. Preserve the tests’ existing chart-repository behavior
while removing the external network dependency.
🪄 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: Repository: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: d2764826-796c-425a-bc6c-bdf5d84d2212
📒 Files selected for processing (8)
frontend/e2e/pages/helm-page.tsfrontend/e2e/pages/helm-url-chart-page.tsfrontend/e2e/pages/topology-page.tsfrontend/e2e/pages/topology-sidebar-page.tsfrontend/e2e/tests/helm/helm-navigation.spec.tsfrontend/e2e/tests/helm/helm-page-tabs.spec.tsfrontend/e2e/tests/helm/install-url-chart.spec.tsfrontend/e2e/tests/helm/topology-helm-release.spec.ts
| async searchAndSelectHelmChart(chartName: string): Promise<void> { | ||
| await this.catalogSearch.fill(chartName); | ||
| await this.page.getByTestId(`HelmChart-${chartName}`).first().click(); | ||
| await expect(this.catalogSidePane).toBeVisible(); | ||
| await this.robustClick(this.catalogSidePaneButton); | ||
| } |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win
Merge duplicate searchAndSelectHelmChart and searchCatalogAndSelectChart.
These two methods have identical bodies. Keep one implementation and update callers (helm-navigation.spec.ts uses searchAndSelectHelmChart; helm-page-tabs.spec.ts uses searchCatalogAndSelectChart) to call the same method. Duplicated implementations can silently diverge if only one is updated later.
♻️ Proposed consolidation
- async searchAndSelectHelmChart(chartName: string): Promise<void> {
- await this.catalogSearch.fill(chartName);
- await this.page.getByTestId(`HelmChart-${chartName}`).first().click();
- await expect(this.catalogSidePane).toBeVisible();
- await this.robustClick(this.catalogSidePaneButton);
- }
+ async searchAndSelectHelmChart(chartName: string): Promise<void> {
+ await this.catalogSearch.fill(chartName);
+ await this.page.getByTestId(`HelmChart-${chartName}`).first().click();
+ await expect(this.catalogSidePane).toBeVisible();
+ await this.robustClick(this.catalogSidePaneButton);
+ }Remove searchCatalogAndSelectChart (lines 309-314) and update its callers to use searchAndSelectHelmChart.
Also applies to: 309-314
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@frontend/e2e/pages/helm-page.ts` around lines 67 - 72, Remove the duplicate
searchCatalogAndSelectChart implementation, retain searchAndSelectHelmChart as
the single shared method, and update callers in helm-page-tabs.spec.ts to invoke
searchAndSelectHelmChart while preserving the existing helm-navigation.spec.ts
usage.
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
frontend/e2e/pages/helm-page.ts (1)
296-302: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winFilter by
namebefore deleting the repository.
deleteRepositoryFromKebabignoresnameand operates on the first kebab button. If multiple repositories are visible, the helper can delete the wrong repository.Proposed fix
async deleteRepositoryFromKebab(name: string, type: string): Promise<void> { + await this.filterRepoByName(name); + await expect(this.kebabButton.first()).toBeVisible({ timeout: 30_000 }); await this.robustClick(this.kebabButton.first());🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@frontend/e2e/pages/helm-page.ts` around lines 296 - 302, Update deleteRepositoryFromKebab to locate the repository row or container matching the provided name before selecting its kebab button, then perform the existing deleteAction and confirmButton clicks within that scoped element. Remove the unconditional kebabButton.first() selection so multiple visible repositories cannot target the wrong one.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@frontend/e2e/pages/helm-page.ts`:
- Around line 432-436: Update clickInstallButton and the corresponding install,
upgrade, and rollback submission methods to remove submitButton.waitFor({ state:
'visible' }) after robustClick. Rely on waitForLoadingComplete or the expected
destination state to determine submission completion, without requiring the
button to remain attached or visible.
- Around line 441-447: Update upgradeChartVersion so it fails when no visible
console-select-item options are available instead of silently continuing.
Require items.count() to be greater than zero before clicking items.first(), and
use the test framework’s assertion or failure mechanism to report the missing
upgrade version.
---
Outside diff comments:
In `@frontend/e2e/pages/helm-page.ts`:
- Around line 296-302: Update deleteRepositoryFromKebab to locate the repository
row or container matching the provided name before selecting its kebab button,
then perform the existing deleteAction and confirmButton clicks within that
scoped element. Remove the unconditional kebabButton.first() selection so
multiple visible repositories cannot target the wrong one.
🪄 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: Repository: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 2e3a20d9-5126-467c-aaff-5fe2ddbca04f
📒 Files selected for processing (6)
frontend/e2e/pages/helm-details-page.tsfrontend/e2e/pages/helm-page.tsfrontend/e2e/tests/helm/helm-compatibility.spec.tsfrontend/e2e/tests/helm/helm-installation-view.spec.tsfrontend/e2e/tests/helm/helm-release.spec.tsfrontend/e2e/tests/helm/install-helm-chart.spec.ts
Migrate helm-page-tabs, install-url-chart, topology-helm-release, and helm-navigation Gherkin features to Playwright specs. This complements PR openshift#16711 which migrated helm-release.feature, covering 22 additional test cases across the remaining uncovered Helm E2E scenarios. New specs: - helm-page-tabs.spec.ts (7 tests: tab navigation, repository CRUD) - install-url-chart.spec.ts (6 tests: URL chart install, validation, OCI) - topology-helm-release.spec.ts (2 tests covering 6 scenarios: sidebar, resource links) - helm-navigation.spec.ts (7 tests: YAML view, filters, search, 2 manual skips) New page objects: - helm-page.ts: Helm releases/repositories tab navigation, status filtering, search, YAML view toggle, catalog chart selection, repository form CRUD, chart version dropdown, and Create dropdown - helm-url-chart-page.ts: URL chart form navigation, chart URL/release name/version inputs, validation error locators, install/reset actions Extended page objects: - topology-page.ts: added clickOnHelmGroup() to search for and click a Helm release group node in the topology graph view - topology-sidebar-page.ts: added getTab() and selectTab() for sidebar tab navigation, clickResourceLink() for clicking resource links (Deployment, BuildConfig, Service, ImageStream, Route) in the sidebar Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds specs for helm-release, install-helm-chart, helm-installation-view, helm-compatibility, actions-on-helm-release, and actions-on-helm-release-after-upgrade features. The helm-release spec (adapted from PR openshift#16711) covers the full lifecycle including install, status verification, filtering, upgrade, rollback, and delete. helm-feature-flag is all-manual and needs no automation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use data-test locator for catalog side pane button instead of fragile role selector - Remove duplicate searchCatalogAndSelectChart method, use searchAndSelectHelmChart - Replace bare .click() with robustClick() for filter menu item selections - Remove flaky submitButton.waitFor after robustClick in install/upgrade/rollback methods - Assert upgrade chart versions are available instead of silently skipping - Add warmupSPA and switchPerspective to helm-navigation tests - Use unique release name in topology second test to avoid collision Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
b5d6cf7 to
d65e39f
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@frontend/package.json`:
- Around line 37-39: Update the test-cypress-knative,
test-cypress-knative-headless, and test-cypress-knative-nightly scripts to
invoke the repository’s Playwright runner with the knative project from
playwright.config.ts instead of changing into the legacy integration-tests
directory and running Cypress. Preserve standard, headless, and nightly behavior
using valid Playwright flags, including the knative-setup dependency.
🪄 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: Repository: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: b2e02194-0b2c-47bf-be39-1a9c3dafff77
📒 Files selected for processing (54)
frontend/e2e/pages/helm-details-page.tsfrontend/e2e/pages/helm-page.tsfrontend/e2e/pages/helm-url-chart-page.tsfrontend/e2e/pages/topology-page.tsfrontend/e2e/pages/topology-sidebar-page.tsfrontend/e2e/tests/helm/helm-compatibility.spec.tsfrontend/e2e/tests/helm/helm-installation-view.spec.tsfrontend/e2e/tests/helm/helm-navigation.spec.tsfrontend/e2e/tests/helm/helm-page-tabs.spec.tsfrontend/e2e/tests/helm/helm-release.spec.tsfrontend/e2e/tests/helm/install-helm-chart.spec.tsfrontend/e2e/tests/helm/install-url-chart.spec.tsfrontend/e2e/tests/helm/topology-helm-release.spec.tsfrontend/package.jsonfrontend/packages/helm-plugin/integration-tests/README.mdfrontend/packages/helm-plugin/integration-tests/cypress.config.jsfrontend/packages/helm-plugin/integration-tests/features/BestPractices.mdfrontend/packages/helm-plugin/integration-tests/features/helm-release.featurefrontend/packages/helm-plugin/integration-tests/features/helm/actions-on-helm-release-after-upgrade.featurefrontend/packages/helm-plugin/integration-tests/features/helm/actions-on-helm-release.featurefrontend/packages/helm-plugin/integration-tests/features/helm/helm-compatibility.featurefrontend/packages/helm-plugin/integration-tests/features/helm/helm-feature-flag.featurefrontend/packages/helm-plugin/integration-tests/features/helm/helm-installation-view.featurefrontend/packages/helm-plugin/integration-tests/features/helm/helm-navigation.featurefrontend/packages/helm-plugin/integration-tests/features/helm/helm-page-tabs.featurefrontend/packages/helm-plugin/integration-tests/features/helm/install-helm-chart.featurefrontend/packages/helm-plugin/integration-tests/features/helm/install-url-chart.featurefrontend/packages/helm-plugin/integration-tests/features/helm/topology-helm-release.featurefrontend/packages/helm-plugin/integration-tests/package.jsonfrontend/packages/helm-plugin/integration-tests/reporter-config.jsonfrontend/packages/helm-plugin/integration-tests/support/commands/hooks.tsfrontend/packages/helm-plugin/integration-tests/support/commands/index.tsfrontend/packages/helm-plugin/integration-tests/support/constants/index.tsfrontend/packages/helm-plugin/integration-tests/support/constants/navigation.tsfrontend/packages/helm-plugin/integration-tests/support/constants/static-text/helm-text.tsfrontend/packages/helm-plugin/integration-tests/support/pages/helm/helm-details-page.tsfrontend/packages/helm-plugin/integration-tests/support/pages/helm/helm-page.tsfrontend/packages/helm-plugin/integration-tests/support/pages/helm/index.tsfrontend/packages/helm-plugin/integration-tests/support/pages/helm/rollBack-helm-release-page.tsfrontend/packages/helm-plugin/integration-tests/support/pages/helm/upgrade-helm-release-page.tsfrontend/packages/helm-plugin/integration-tests/support/pages/helm/url-chart-install-page.tsfrontend/packages/helm-plugin/integration-tests/support/pages/index.tsfrontend/packages/helm-plugin/integration-tests/support/step-definitions/common/common.tsfrontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/actions-on-helm-release-after-upgrade.tsfrontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-compatibility.tsfrontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-installation-view.tsfrontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-navigation.tsfrontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-release.tsfrontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm.tsfrontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/install-url-chart.tsfrontend/packages/helm-plugin/integration-tests/test-data/namespaced-helm-chart-repository.yamlfrontend/packages/helm-plugin/integration-tests/test-data/namespaced-helm-crd.yamlfrontend/packages/helm-plugin/integration-tests/test-data/red-hat-helm-charts.yamlfrontend/packages/helm-plugin/integration-tests/tsconfig.json
💤 Files with no reviewable changes (40)
- frontend/packages/helm-plugin/integration-tests/support/pages/index.ts
- frontend/packages/helm-plugin/integration-tests/features/helm/actions-on-helm-release.feature
- frontend/packages/helm-plugin/integration-tests/test-data/red-hat-helm-charts.yaml
- frontend/packages/helm-plugin/integration-tests/test-data/namespaced-helm-crd.yaml
- frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-navigation.ts
- frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm.ts
- frontend/packages/helm-plugin/integration-tests/features/helm-release.feature
- frontend/packages/helm-plugin/integration-tests/tsconfig.json
- frontend/packages/helm-plugin/integration-tests/features/helm/install-url-chart.feature
- frontend/packages/helm-plugin/integration-tests/features/helm/install-helm-chart.feature
- frontend/packages/helm-plugin/integration-tests/support/commands/index.ts
- frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/actions-on-helm-release-after-upgrade.ts
- frontend/packages/helm-plugin/integration-tests/support/pages/helm/url-chart-install-page.ts
- frontend/packages/helm-plugin/integration-tests/support/commands/hooks.ts
- frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-installation-view.ts
- frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/install-url-chart.ts
- frontend/packages/helm-plugin/integration-tests/support/step-definitions/common/common.ts
- frontend/packages/helm-plugin/integration-tests/features/helm/topology-helm-release.feature
- frontend/packages/helm-plugin/integration-tests/package.json
- frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-compatibility.ts
- frontend/packages/helm-plugin/integration-tests/support/pages/helm/rollBack-helm-release-page.ts
- frontend/packages/helm-plugin/integration-tests/features/BestPractices.md
- frontend/packages/helm-plugin/integration-tests/features/helm/actions-on-helm-release-after-upgrade.feature
- frontend/packages/helm-plugin/integration-tests/support/constants/static-text/helm-text.ts
- frontend/packages/helm-plugin/integration-tests/reporter-config.json
- frontend/packages/helm-plugin/integration-tests/features/helm/helm-feature-flag.feature
- frontend/packages/helm-plugin/integration-tests/support/constants/index.ts
- frontend/packages/helm-plugin/integration-tests/cypress.config.js
- frontend/packages/helm-plugin/integration-tests/test-data/namespaced-helm-chart-repository.yaml
- frontend/packages/helm-plugin/integration-tests/support/constants/navigation.ts
- frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-release.ts
- frontend/packages/helm-plugin/integration-tests/support/pages/helm/upgrade-helm-release-page.ts
- frontend/packages/helm-plugin/integration-tests/features/helm/helm-navigation.feature
- frontend/packages/helm-plugin/integration-tests/features/helm/helm-compatibility.feature
- frontend/packages/helm-plugin/integration-tests/features/helm/helm-page-tabs.feature
- frontend/packages/helm-plugin/integration-tests/support/pages/helm/helm-page.ts
- frontend/packages/helm-plugin/integration-tests/README.md
- frontend/packages/helm-plugin/integration-tests/support/pages/helm/index.ts
- frontend/packages/helm-plugin/integration-tests/support/pages/helm/helm-details-page.ts
- frontend/packages/helm-plugin/integration-tests/features/helm/helm-installation-view.feature
🚧 Files skipped from review as they are similar to previous changes (11)
- frontend/e2e/pages/topology-page.ts
- frontend/e2e/tests/helm/helm-installation-view.spec.ts
- frontend/e2e/pages/helm-details-page.ts
- frontend/e2e/pages/topology-sidebar-page.ts
- frontend/e2e/tests/helm/helm-navigation.spec.ts
- frontend/e2e/tests/helm/helm-release.spec.ts
- frontend/e2e/tests/helm/helm-compatibility.spec.ts
- frontend/e2e/tests/helm/install-helm-chart.spec.ts
- frontend/e2e/tests/helm/install-url-chart.spec.ts
- frontend/e2e/tests/helm/helm-page-tabs.spec.ts
- frontend/e2e/pages/helm-page.ts
All 11 Helm features have been migrated to Playwright. Remove the legacy Cypress integration-tests directory and associated npm scripts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
d65e39f to
4209ae5
Compare
|
/test frontend |
|
@sowmya-sl: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions 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 kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Migrate all 11 Helm Cypress/Gherkin E2E features to Playwright, completing the Helm E2E migration. This incorporates patterns from PR #16711 (helm-release lifecycle) and adds coverage for all remaining features.
New Playwright specs (8 files, covering all 11 features)
helm-release.spec.tshelm-navigation.spec.tshelm-page-tabs.spec.tsinstall-url-chart.spec.tstopology-helm-release.spec.tsinstall-helm-chart.spec.tshelm-installation-view.spec.tshelm-compatibility.spec.tshelm-feature-flag.feature: All scenarios are
@manual— no automation needed.New page objects
helm-details-page.ts: Helm release details page — section heading, tabs (Resources, Revision history, Release notes), actions menu, status, delete modalhelm-page.ts: Extended with kebab menu actions, upgrade/rollback flows, chart version dropdown, status getters, catalog navigation, and filter helpershelm-url-chart-page.ts: URL chart form — chart URL/release name/version inputs, validation, install/resetExtended page objects
topology-page.ts:clickOnHelmGroup()for Helm release group nodestopology-sidebar-page.ts:getTab()/selectTab()for sidebar navigation,clickResourceLink()for resource linksAnalysis / Root cause:
The Helm plugin had 11 Cypress/Gherkin E2E feature files that were not running in CI. This PR migrates all of them to Playwright using the console's standard page object patterns.
Solution description:
Created 8 Playwright spec files covering all 11 Cypress features. Three features (helm-release, actions-on-helm-release, actions-on-helm-release-after-upgrade) are consolidated into a single lifecycle test in
helm-release.spec.ts. Manual-only scenarios are preserved astest.skip()stubs with explanations.Screenshots / screen recording:
Test setup:
Requires an OpenShift cluster with Helm chart repositories configured (default
openshift-helm-chartsrepo).Test cases:
All migrated test cases are listed in the table above. Run with:
Browser conformance:
Additional info:
helm-release.featurehelm-release.spec.tsin this PR is adapted from PR CONSOLE-5240: Migrate Helm Cypress E2E tests to Playwright #16711's version to work with the shared page object layerSummary by CodeRabbit
Tests
Chores