Skip to content

CONSOLE-5416: Migrate dev-console Cypress tests to Playwright (batch 3b)#16774

Open
shahsahil264 wants to merge 3 commits into
openshift:mainfrom
shahsahil264:CONSOLE-5416b
Open

CONSOLE-5416: Migrate dev-console Cypress tests to Playwright (batch 3b)#16774
shahsahil264 wants to merge 3 commits into
openshift:mainfrom
shahsahil264:CONSOLE-5416b

Conversation

@shahsahil264

@shahsahil264 shahsahil264 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Analysis / Root cause:
Part of the Cypress → Playwright migration epic (CONSOLE-5196). This is the second half of batch 3, split from PR #16751 to keep CI test counts under the auth session timeout.

Solution description:
Migrates 4 dev-console Cypress feature files to idiomatic Playwright:

  • add-page.featureadd-page.spec.ts (7 tests)
  • create-from-git.featureimport-from-git.spec.ts (4 tests)
  • create-from-devfile.featureimport-from-devfile.spec.ts (1 test)
  • quick-search-add.featurequick-search.spec.ts (4 tests)

Includes shared page objects and infrastructure changes (add-page.ts, base-page.ts, kubernetes-client.ts) identical to batch 3a (#16751) for independent CI testing. When #16751 merges first, conflicts on shared files resolve by accepting main.

Screenshots / screen recording:
N/A — E2E test migration, no UI changes.

Test setup:
Requires an OpenShift cluster with Developer perspective enabled.

Test cases:

Playwright test Source Assertions
Add page cards and options [A-11-TC02] add-page.feature 4
Software Catalog sub-options [A-11-TC03] add-page.feature 3
Git Repository sub-options [A-11-TC04] add-page.feature 2
From Local Machine sub-options [A-11-TC05] add-page.feature 2
Details switch on/off [A-11-TC09/TC10] add-page.feature 4
Getting started resources [A-11-TC01] add-page.feature 2
Hide/show Getting started [A-11-TC06/TC07] add-page.feature 3
cancel git workload creation [A-06-TC03] create-from-git.feature 2
create workload without route [A-06-TC04] create-from-git.feature 3
disable devfile for non-standard git [A-06-TC18] create-from-git.feature 2
devfile not detected warning [A-06-TC19] create-from-git.feature 2
deploy git workload with devfile [A-04-TC02] create-from-devfile.feature 3
Add to project search bar [A-11-TC01] quick-search-add.feature 2
View all results [A-11-TC03] quick-search-add.feature 2
No results for invalid search [A-11-TC04] quick-search-add.feature 2
Add to project (smoke) [A-11-TC01] quick-search-add.feature 2

Browser conformance:

  • Chrome

Merge criteria:

Summary by CodeRabbit

  • New Features
    • Expanded end-to-end coverage for Developer Console “Add” workflows, including quick search, Git/Devfile-based creation, image deployment, catalog browsing, YAML import, and topology interactions.
    • Added Getting Started visibility checks and “Details” toggle behavior validation.
  • Bug Fixes
    • Improved ConfigMap update handling to correctly apply merged data using JSON Patch semantics.
    • More reliable Developer Console perspective switching using stronger UI test selectors.
  • Tests
    • Added new Playwright end-to-end specs and removed legacy integration feature definitions for the affected flows.

Migrates 4 dev-console Cypress feature files to Playwright:
  add-page, import-from-git, import-from-devfile, quick-search

Includes shared page objects and infrastructure changes
(add-page.ts, base-page.ts, kubernetes-client.ts) identical
to batch 3a for independent CI testing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 17, 2026
@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 17, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

@shahsahil264: This pull request references CONSOLE-5416 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 sub-task to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Analysis / Root cause:
Part of the Cypress → Playwright migration epic (CONSOLE-5196). This is the second half of batch 3, split from PR #16751 to keep CI test counts under the auth session timeout.

Solution description:
Migrates 4 dev-console Cypress feature files to idiomatic Playwright:

  • add-page.featureadd-page.spec.ts (7 tests)
  • create-from-git.featureimport-from-git.spec.ts (4 tests)
  • create-from-devfile.featureimport-from-devfile.spec.ts (1 test)
  • quick-search-add.featurequick-search.spec.ts (4 tests)

Includes shared page objects and infrastructure changes (add-page.ts, base-page.ts, kubernetes-client.ts) identical to batch 3a (#16751) for independent CI testing. When #16751 merges first, conflicts on shared files resolve by accepting main.

Screenshots / screen recording:
N/A — E2E test migration, no UI changes.

Test setup:
Requires an OpenShift cluster with Developer perspective enabled.

Test cases:

Playwright test Source Assertions
Add page cards and options [A-11-TC02] add-page.feature 4
Software Catalog sub-options [A-11-TC03] add-page.feature 3
Git Repository sub-options [A-11-TC04] add-page.feature 2
From Local Machine sub-options [A-11-TC05] add-page.feature 2
Details switch on/off [A-11-TC09/TC10] add-page.feature 4
Getting started resources [A-11-TC01] add-page.feature 2
Hide/show Getting started [A-11-TC06/TC07] add-page.feature 3
cancel git workload creation [A-06-TC03] create-from-git.feature 2
create workload without route [A-06-TC04] create-from-git.feature 3
disable devfile for non-standard git [A-06-TC18] create-from-git.feature 2
devfile not detected warning [A-06-TC19] create-from-git.feature 2
deploy git workload with devfile [A-04-TC02] create-from-devfile.feature 3
Add to project search bar [A-11-TC01] quick-search-add.feature 2
View all results [A-11-TC03] quick-search-add.feature 2
No results for invalid search [A-11-TC04] quick-search-add.feature 2
Add to project (smoke) [A-11-TC01] quick-search-add.feature 2

Browser conformance:

  • Chrome

Merge criteria:

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.

@openshift-ci

openshift-ci Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci

openshift-ci Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: shahsahil264
Once this PR has been reviewed and has the lgtm label, please assign spadgett for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

@openshift-ci openshift-ci Bot added the component/dev-console Related to dev-console label Jul 17, 2026
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This change migrates Developer Console Add-page, Git/devfile import, topology, and quick-search coverage to Playwright page objects and E2E specs. It also updates shared perspective selectors and ConfigMap patching used by the tests.

Changes

Developer Console E2E migration

Layer / File(s) Summary
Shared E2E foundation
frontend/e2e/clients/kubernetes-client.ts, frontend/e2e/pages/base-page.ts
ConfigMap updates use JSON Patch, and perspective controls use getByTestId with updated Playwright imports.
Developer Console page objects
frontend/e2e/pages/dev-console/add-page.ts
Adds page objects for Add, Git import, image deployment, Software Catalog, YAML import, and Topology workflows.
Add page and quick-search coverage
frontend/e2e/tests/dev-console/add-page.spec.ts, frontend/e2e/tests/dev-console/quick-search.spec.ts
Tests Add-page cards, Getting Started visibility, details toggling, quick-search results, catalog navigation, and no-result messaging.
Git and devfile import coverage
frontend/e2e/tests/dev-console/import-from-git.spec.ts, frontend/e2e/tests/dev-console/import-from-devfile.spec.ts
Tests Git cancellation, workload creation, validation states, devfile import, and resulting Topology workloads.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Test as Playwright test
  participant Add as AddPage
  participant Git as ImportFromGitPage
  participant Topology as TopologyPage
  Test->>Add: Open Import from Git
  Add->>Git: Navigate to import form
  Test->>Git: Enter repository and workload name
  Git->>Git: Validate and create workload
  Test->>Topology: Find created workload
  Topology-->>Test: Return workload and sidebar title
Loading

Possibly related PRs

Suggested labels: px-approved, jira/valid-reference

🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Ipv6 And Disconnected Network Test Compatibility ⚠️ Warning The new import-from-git/devfile Playwright tests use public GitHub URLs and wait for repo validation, so they depend on external internet access. Switch to cluster-internal mirrored repos or mocked inputs, or mark these flows skipped in disconnected CI if public GitHub access is required.
✅ Passed checks (14 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed All new/changed test titles are static strings; dynamic names appear only in namespace variables inside test bodies, not in titles.
Test Structure And Quality ✅ Passed The new Playwright specs use beforeEach+cleanup, explicit timeouts on cluster waits, and each test stays focused on one add-page flow; no missing cleanup or indefinite waits found.
Microshift Test Compatibility ✅ Passed PASS: New Playwright specs only use namespaces, ConfigMap, and Route; no MicroShift-blocked APIs, namespaces, or skip guards found.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The new Playwright specs only exercise UI, namespace, workload, and Route assertions; no node-count, scheduling, drain, anti-affinity, or HA assumptions were found.
Topology-Aware Scheduling Compatibility ✅ Passed PR only migrates E2E page objects/tests and a ConfigMap patch; no deployment/controller code or topology-sensitive scheduling constraints were added.
Ote Binary Stdout Contract ✅ Passed No stdout writes in top-level/suite setup of changed files; added specs/page objects only, and the imported fixture module logs to stderr only.
No-Weak-Crypto ✅ Passed No MD5/SHA1/DES/RC4/3DES/Blowfish/ECB, custom crypto, or secret/token comparisons were added in the touched files.
Container-Privileges ✅ Passed The PR only changes Playwright TS/spec files and feature deletions; no manifests or privilege-related settings (privileged, hostPID, allowPrivilegeEscalation, etc.) appear in the diff.
No-Sensitive-Data-In-Logs ✅ Passed No console/logger calls or debug output were added in touched files; secret-like strings are confined to auth code/test fixtures, not logs.
Title check ✅ Passed The title clearly states the main change: migrating dev-console Cypress tests to Playwright in batch 3b.
Description check ✅ Passed The description covers the required analysis, solution, test setup, test cases, and browser conformance sections.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 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/clients/kubernetes-client.ts`:
- Around line 380-381: Update the patch request around the ConfigMap data
mutation to use the JSON Patch operation “add” for “/data” instead of “replace”,
and set the patch options’ Content-Type to
k8s.PatchUtils.PATCH_FORMAT_JSON_PATCH.

In `@frontend/e2e/tests/dev-console/import-from-devfile.spec.ts`:
- Around line 43-50: In the “Fill out the devfile import form” step, verify that
the Devfile import strategy is selected after git validation and before calling
gitPage.clickCreate(). Use the existing strategy-selection assertion or selector
exposed by gitPage, ensuring the test fails if another import strategy is
active.

In `@frontend/e2e/tests/dev-console/import-from-git.spec.ts`:
- Around line 72-76: Extend the “Verify workload in topology” test step to query
the workload’s namespace and assert that no Route exists for name-no-route. Keep
the existing workload and sidebar checks, and use the test’s established
namespace/resource-query utilities.

In `@frontend/e2e/tests/dev-console/quick-search.spec.ts`:
- Around line 44-50: Replace the generic heading assertion after clicking
viewAllLink in the quick-search test with a catalog-specific URL or heading
assertion. In frontend/e2e/tests/dev-console/import-from-git.spec.ts lines
51-53, replace the generic post-navigation heading check with an assertion for
/add/ns/${ns} or the Add-page heading, ensuring both tests verify the intended
destination.
🪄 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: d6a6282c-2a15-4275-806b-d5c43e305eaf

📥 Commits

Reviewing files that changed from the base of the PR and between 36bfb51 and 6b68c97.

📒 Files selected for processing (11)
  • frontend/e2e/clients/kubernetes-client.ts
  • frontend/e2e/pages/base-page.ts
  • frontend/e2e/pages/dev-console/add-page.ts
  • frontend/e2e/tests/dev-console/add-page.spec.ts
  • frontend/e2e/tests/dev-console/import-from-devfile.spec.ts
  • frontend/e2e/tests/dev-console/import-from-git.spec.ts
  • frontend/e2e/tests/dev-console/quick-search.spec.ts
  • frontend/packages/dev-console/integration-tests/features/addFlow/add-page.feature
  • frontend/packages/dev-console/integration-tests/features/addFlow/create-from-devfile.feature
  • frontend/packages/dev-console/integration-tests/features/addFlow/create-from-git.feature
  • frontend/packages/dev-console/integration-tests/features/addFlow/quick-search-add.feature
💤 Files with no reviewable changes (4)
  • frontend/packages/dev-console/integration-tests/features/addFlow/quick-search-add.feature
  • frontend/packages/dev-console/integration-tests/features/addFlow/create-from-git.feature
  • frontend/packages/dev-console/integration-tests/features/addFlow/create-from-devfile.feature
  • frontend/packages/dev-console/integration-tests/features/addFlow/add-page.feature

Comment on lines +380 to +381
body: [{ op: 'replace', path: '/data', value: mergedData }],
});

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -n -C4 \
  'patchNamespacedConfigMap|PatchStrategy\.(JsonPatch|MergePatch)|setHeaderOptions' \
  frontend

Repository: openshift/console

Length of output: 942


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '--- package references ---\n'
rg -n '"`@kubernetes/client-node`"|client-node' package.json frontend package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null || true

printf '\n--- nearby kubernetes-client code ---\n'
sed -n '360,390p' frontend/e2e/clients/kubernetes-client.ts

printf '\n--- patch method usages in repo ---\n'
rg -n 'patchNamespacedConfigMap\(|contentType:\s*k8s\.PatchStrategy|PatchStrategy\.' frontend -g '*.ts' -g '*.js' || true

Repository: openshift/console

Length of output: 246


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '--- package references ---'
rg -n '"`@kubernetes/client-node`"|client-node' package.json frontend package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null || true

echo
echo '--- nearby kubernetes-client code ---'
sed -n '360,390p' frontend/e2e/clients/kubernetes-client.ts

echo
echo '--- patch method usages in repo ---'
rg -n 'patchNamespacedConfigMap\(|contentType:\s*k8s\.PatchStrategy|PatchStrategy\.' frontend -g '*.ts' -g '*.js' || true

Repository: openshift/console

Length of output: 1650


🌐 Web query:

@kubernetes/client-node patchNamespacedConfigMap body array contentType JsonPatch 1.4.0

💡 Result:

When using @kubernetes/client-node to perform a patch operation on a ConfigMap (or other resources) using the JsonPatch format (JSON Patch, RFC 6902), the generated client often does not automatically set the required Content-Type header [1]. This frequently results in a 415 Unsupported Media Type error from the Kubernetes API server [2][1]. To resolve this, you must explicitly pass the Content-Type header via the options parameter in your patchNamespacedConfigMap call [3][2]. The correct Content-Type for JSON Patch is application/json-patch+json [3]. You can access this constant directly from the library's PatchUtils [3]. Example Usage: const k8s = require('@kubernetes/client-node'); const coreApi = k8s.ConfigFactory.defaultConfig.makeApiClient(k8s.CoreV1Api); // Define your JSON patch operations as an array const patch = [ { op: 'replace', path: '/data/key1', value: 'newValue' } ]; // Set the correct content-type header const options = { headers: { 'Content-Type': k8s.PatchUtils.PATCH_FORMAT_JSON_PATCH } }; // Perform the patch await coreApi.patchNamespacedConfigMap( 'configmap-name', 'namespace', patch, undefined, undefined, undefined, undefined, options); Key Implementation Details: 1. Header Requirement: The Kubernetes API server requires the specific Content-Type corresponding to the patch strategy [3][1]. 2. Patch Format: Use k8s.PatchUtils.PATCH_FORMAT_JSON_PATCH (which maps to application/json-patch+json) when providing the body as an array of operations [3]. 3. Method Signature: The options object is typically the final argument in the patchNamespacedConfigMap method [4][2]. Ensure all preceding optional arguments (such as pretty, dryRun, fieldManager, and force) are explicitly set to undefined if they are not being used [2][1].

Citations:


🌐 Web query:

@kubernetes/client-node PatchUtils PATCH_FORMAT_JSON_PATCH patchNamespacedConfigMap options headers Content-Type

💡 Result:

In the @kubernetes/client-node library, the patchNamespacedConfigMap function (and other similar patch operations) often requires explicitly setting the Content-Type header to match the specific patch format being used, as the default behavior may not automatically select the correct type or might lead to a 415 Unsupported Media Type error [1][2]. You can manage these headers by passing an options object as the final argument to the function [1][2]. This options object should contain a headers property with the desired Content-Type [3][4]. The library provides a PatchUtils class that defines the appropriate strings for the various patch formats supported by the Kubernetes API [5][6]: - k8s.PatchUtils.PATCH_FORMAT_JSON_PATCH (application/json-patch+json) [3][5] - k8s.PatchUtils.PATCH_FORMAT_JSON_MERGE_PATCH (application/merge-patch+json) [3][5] - k8s.PatchUtils.PATCH_FORMAT_STRATEGIC_MERGE_PATCH (application/strategic-merge-patch+json) [3][5] - k8s.PatchUtils.PATCH_FORMAT_APPLY_YAML (application/apply-patch+yaml) [5][6] To perform a patch, construct your options object as follows: const options = { headers: { 'Content-Type': k8s.PatchUtils.PATCH_FORMAT_JSON_PATCH } }; Then, pass this object as the last argument in your API call. Note that depending on the version of the @kubernetes/client-node library you are using, the number of positional arguments (such as undefined for unused parameters like dryRun or fieldManager) may vary [1][2]. Example usage: await k8sApi.patchNamespacedConfigMap( name, namespace, body, undefined, // dryRun undefined, // fieldManager undefined, // fieldValidation undefined, // force options // options with headers); Always ensure your patch body is formatted correctly to correspond with the Content-Type you have selected [3].

Citations:


🌐 Web query:

@kubernetes/client-node 1.4.0 patchNamespacedConfigMap signature options headers contentType PatchUtils

💡 Result:

In @kubernetes/client-node version 1.4.0, the patchNamespacedConfigMap method is part of the CoreV1Api generated client. When using this method to perform a PATCH operation, you must specify the correct Content-Type header to match your patch format [1]. The client does not automatically set the Content-Type header for non-standard patch operations [2][3][4]. You should pass an options object as the final argument to the function containing your headers [2][1][4]. You can use the PatchUtils utility class provided by the library to set the appropriate Content-Type [1][5]: import { PatchUtils } from '@kubernetes/client-node'; // Example: Using JSON Patch const options = { headers: { 'Content-Type': PatchUtils.PATCH_FORMAT_JSON_PATCH, }, }; // Method signature: // await coreV1Api.patchNamespacedConfigMap( // name, // namespace, // body, // pretty, // dryRun, // fieldManager, // fieldValidation, // force, // options // Pass the options object here //); Available PatchUtils formats include [1][5]: - PatchUtils.PATCH_FORMAT_JSON_PATCH ('application/json-patch+json') - PatchUtils.PATCH_FORMAT_JSON_MERGE_PATCH ('application/merge-patch+json') - PatchUtils.PATCH_FORMAT_STRATEGIC_MERGE_PATCH ('application/strategic-merge-patch+json') - PatchUtils.PATCH_FORMAT_APPLY_YAML ('application/apply-patch+yaml') Note: Because generated API methods in this library frequently receive new parameters (such as fieldValidation), the exact position of the options object in the argument list can shift between versions [2][3]. Always verify the current argument signature for your specific library version in your IDE's type definitions or the generated code in dist/gen/api/coreV1Api.ts [6][4]. In version 1.4.0, ensure your options object is passed as the final argument [2].

Citations:


Use add /data and set the JSON Patch content type here. replace fails when a ConfigMap has no data field, and this request needs Content-Type: k8s.PatchUtils.PATCH_FORMAT_JSON_PATCH in the patch options.

🤖 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/clients/kubernetes-client.ts` around lines 380 - 381, Update the
patch request around the ConfigMap data mutation to use the JSON Patch operation
“add” for “/data” instead of “replace”, and set the patch options’ Content-Type
to k8s.PatchUtils.PATCH_FORMAT_JSON_PATCH.

Comment thread frontend/e2e/tests/dev-console/import-from-devfile.spec.ts
Comment thread frontend/e2e/tests/dev-console/import-from-git.spec.ts
Comment on lines +44 to +50
await test.step('Click view all and verify catalog', async () => {
const viewAllLink = addPage.getViewAllLink();
await expect(viewAllLink).toBeVisible({ timeout: 10_000 });
await viewAllLink.click();
const catalogPage = new SoftwareCatalogPage(page);
await expect(catalogPage.getPageHeading()).toBeVisible({ timeout: 15_000 });
});

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use destination-specific assertions after navigation.

Both tests assert a generic heading already present on the source page, allowing false positives when navigation fails.

  • frontend/e2e/tests/dev-console/quick-search.spec.ts#L44-L50: assert the catalog URL or catalog-specific heading.
  • frontend/e2e/tests/dev-console/import-from-git.spec.ts#L51-L53: assert /add/ns/${ns} or the Add-page heading text.
📍 Affects 2 files
  • frontend/e2e/tests/dev-console/quick-search.spec.ts#L44-L50 (this comment)
  • frontend/e2e/tests/dev-console/import-from-git.spec.ts#L51-L53
🤖 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/dev-console/quick-search.spec.ts` around lines 44 - 50,
Replace the generic heading assertion after clicking viewAllLink in the
quick-search test with a catalog-specific URL or heading assertion. In
frontend/e2e/tests/dev-console/import-from-git.spec.ts lines 51-53, replace the
generic post-navigation heading check with an assertion for /add/ns/${ns} or the
Add-page heading, ensuring both tests verify the intended destination.

- patchConfigMap: use JSON Patch op "add" instead of "replace" so it
  works when /data key doesn't exist yet
- import-from-devfile: assert Devfile strategy is selected before Create
- quick-search: verify catalog URL after "View all" click
- Remove unused Page type import from add-page.ts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@shahsahil264

Copy link
Copy Markdown
Contributor Author

/test e2e-gcp-console
/test e2e-playwright

TC03: verify cancel redirects to /add/ns/ URL, not just a generic heading.
TC04: verify no Route resource exists after creating workload without route.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@shahsahil264

Copy link
Copy Markdown
Contributor Author

/test e2e-gcp-console
/test e2e-playwright

@shahsahil264
shahsahil264 marked this pull request as ready for review July 17, 2026 20:43
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 17, 2026
@openshift-ci
openshift-ci Bot requested review from TheRealJon and rhamilto July 17, 2026 20:44
@openshift-ci

openshift-ci Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

@shahsahil264: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-playwright c693e1b link false /test e2e-playwright

Full PR test history. Your PR dashboard.

Details

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 kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component/dev-console Related to dev-console jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants