Skip to content

WIP ACM-33544 update minimum ocp version 4.22#6317

Closed
KevinFCormier wants to merge 6 commits into
stolostron:mainfrom
KevinFCormier:ACM-33544-update-minimum-ocp-version-4.22
Closed

WIP ACM-33544 update minimum ocp version 4.22#6317
KevinFCormier wants to merge 6 commits into
stolostron:mainfrom
KevinFCormier:ACM-33544-update-minimum-ocp-version-4.22

Conversation

@KevinFCormier

@KevinFCormier KevinFCormier commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

📝 Summary

Ticket Summary (Title):
Install dynamic plugin SDK 4.22 and set minimum OCP version

Ticket Link:
https://redhat.atlassian.net/browse/ACM-33544

Type of Change:

  • 🐞 Bug Fix
  • ✨ Feature
  • 🔧 Refactor
  • 💸 Tech Debt
  • 🧪 Test-related
  • 📄 Docs

✅ Checklist

General

  • PR title follows the convention (e.g. ACM-12340 Fix bug with...)
  • Code builds and runs locally without errors
  • No console logs, commented-out code, or unnecessary files
  • All commits are meaningful and well-labeled
  • All new display strings are externalized for localization (English only)
  • (Nice to have) JSDoc comments added for new functions and interfaces

🗒️ Notes for Reviewers

Summary by CodeRabbit

  • New Features

    • Upgraded router and console SDK for improved navigation and plugin compatibility.
  • Bug Fixes

    • Fixed timestamp handling in policy details to ensure correct display and formatting.
  • Refactor

    • Updated routing integration and navigation hooks across the app.
    • Tightened plugin/extension typings and switched to type-only imports for safer builds.

@openshift-ci

openshift-ci Bot commented Jun 9, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: KevinFCormier

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

@openshift-ci openshift-ci Bot added the approved label Jun 9, 2026
@coderabbitai

coderabbitai Bot commented Jun 9, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Router imports, test harness mocks, and package dependencies were switched from react-router-dom-v5-compat to react-router-dom across frontend app, route, component, and test files. Several SDK and extension types were also updated to use Extension and type-only imports.

Changes

Frontend router and SDK migration

Layer / File(s) Summary
All changes (single checkpoint)
frontend/** (many files), frontend/package.json, frontend/jest.config.ts, frontend/.storybook/preview.js, frontend/packages/*, frontend/src/plugin-extensions/*
All imports and tests were migrated from react-router-dom-v5-compat to react-router-dom; Jest moduleNameMapper was added to resolve the compat specifier in tests; package.json dependencies updated to remove react-router-dom-v5-compat and add react-router-dom; several packages updated (@openshift-console/dynamic-plugin-sdk ranges); numerous tests updated to mock react-router-dom; multiple SDK/extension typings changed from ExtensionDeclaration to Extension and several imports became type-only.
  • Sequence Diagram(s): Included above for high-level interactions between Tests/Mocks, App/Routes, and Jest config.

Estimated code review effort:
🎯 4 (Complex) | ⏱️ ~45 minutes

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 7

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (5)
frontend/src/components/LostChanges.test.tsx (1)

66-75: ⚠️ Potential issue | 🔴 Critical

Fix React Router v6 routing in LostChanges.test.tsx

  • The project uses react-router-dom ^6.30.4, but this test uses React Router v5-style <Route path=...> with children directly under MemoryRouter (missing <Routes> and element prop).
  • Re-enabling the skipped tests will also fail because the test mocks useNavigate to jest.fn(), so navigate('/discarded') / navigate('/submitted') won’t actually change routes (the expected routed text won’t render).
🔧 Proposed fix to update Route usage for React Router v6
+import { MemoryRouter, Routes, Route, useNavigate } from 'react-router-dom'
-import { MemoryRouter, Route, useNavigate } from 'react-router-dom'

 const TestLostChangesProvider = () => {
   return (
     <MemoryRouter initialEntries={['/form', '/discarded', '/submitted']}>
       <LostChangesProvider>
-        <Route path={'/form'}>
-          <OuterForm />
-        </Route>
-        <Route path={'/discarded'}>Form Discarded</Route>
-        <Route path={'/submitted'}>Form Submitted</Route>
+        <Routes>
+          <Route path="/form" element={<OuterForm />} />
+          <Route path="/discarded" element={<>Form Discarded</>} />
+          <Route path="/submitted" element={<>Form Submitted</>} />
+        </Routes>
       </LostChangesProvider>
     </MemoryRouter>
   )
 }
🤖 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/src/components/LostChanges.test.tsx` around lines 66 - 75, Update
LostChanges.test.tsx to use React Router v6 semantics: replace the v5-style
nested <Route path=...> under MemoryRouter with a <Routes> wrapper and v6 Route
elements using the element prop (e.g., <Routes><Route path="/form"
element={<OuterForm/>}/><Route path="/discarded" element={'Form
Discarded'}/><Route path="/submitted" element={'Form Submitted'}/></Routes>)
while keeping MemoryRouter and LostChangesProvider. Also stop mocking
useNavigate (or adjust the mock to delegate to the real navigate) so calls like
navigate('/discarded') and navigate('/submitted') actually change the
MemoryRouter location and cause the expected route text to render. Ensure
references to MemoryRouter, LostChangesProvider, OuterForm, Route, Routes, and
useNavigate are corrected accordingly.
frontend/src/routes/Applications/components/DeleteResourceModal.tsx (1)

254-259: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Remove unnecessary dangerouslySetInnerHTML in modal content.

This block renders plain translated text; using dangerouslySetInnerHTML adds avoidable XSS risk surface. Render it as text directly.

Suggested fix
-            <div className="remove-app-modal-content-text">
-              <p
-                dangerouslySetInnerHTML={{
-                  __html: `${props.t(
-                    'The following Argo application(s) deployed by the application set will also be deleted:'
-                  )}`,
-                }}
-              />
-            </div>
+            <div className="remove-app-modal-content-text">
+              <p>{props.t('The following Argo application(s) deployed by the application set will also be deleted:')}</p>
+            </div>

As per coding guidelines, frontend/**/*.{tsx,scss,css} must avoid unsafe HTML injection patterns in UI code.

🤖 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/src/routes/Applications/components/DeleteResourceModal.tsx` around
lines 254 - 259, The modal is using dangerouslySetInnerHTML to render plain
translated text in DeleteResourceModal; remove dangerouslySetInnerHTML and
render the string directly (e.g., replace the element using
dangerouslySetInnerHTML with a normal JSX child using props.t('The following
Argo application(s) deployed by the application set will also be deleted:')),
ensuring no HTML injection is used and translation is passed as a plain text
child; keep the same props.t key and component structure.

Source: Coding guidelines

frontend/src/routes/Infrastructure/Automations/AnsibleAutomations.test.tsx (1)

49-55: ⚠️ Potential issue | 🟡 Minor

Fix useLocation mock in AnsibleAutomations.test.tsx to return a Location object
The test mocks react-router-dom’s useLocation to return mockedUsedNavigate (a function). Components in this render path (e.g., AcmTableToolbar) destructure { pathname, search } from useLocation(), so you’ll get undefined instead of an actual location. Return a location-like object (e.g., { pathname: NavigationPath.ansibleAutomations, search: '' }) or remove the useLocation mock so MemoryRouter supplies the correct values. [frontend/src/routes/Infrastructure/Automations/AnsibleAutomations.test.tsx:49-57]

🤖 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/src/routes/Infrastructure/Automations/AnsibleAutomations.test.tsx`
around lines 49 - 55, The mocked react-router-dom useLocation currently returns
mockedUsedNavigate (a function) causing components like AcmTableToolbar that
destructure { pathname, search } from useLocation() to receive undefined; update
the jest.mock for useLocation to return a location-like object (e.g., {
pathname: NavigationPath.ansibleAutomations, search: '' }) or remove the
useLocation mock so MemoryRouter provides correct values, keeping
useNavigate/mock behavior (mockedUsedNavigate) intact.
frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/HypershiftAWSCLI.test.tsx (1)

24-37: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add the required accessibility assertion for this component test.

This test renders a component but does not include the required jest-axe check.

Suggested patch
 import { render } from '`@testing-library/react`'
+import { axe } from 'jest-axe'
 import { MemoryRouter, Route, Routes } from 'react-router-dom'
 ...
   test('should show all the steps', async () => {
 ...
   })
+
+  test('is accessible', async () => {
+    const { container } = render(<Component />)
+    expect(await axe(container)).toHaveNoViolations()
+  })

As per coding guidelines, “Every component test must include an accessibility test with jest-axe: expect(await axe(container)).toHaveNoViolations()”.

🤖 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/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/HypershiftAWSCLI.test.tsx`
around lines 24 - 37, The test "should show all the steps" renders <Component />
and exercises UI but lacks the required accessibility assertion; after the
existing render(...) and waitForText/waitForTestId checks, import and invoke
jest-axe's axe on the rendered container and add the assertion expect(await
axe(container)).toHaveNoViolations() (ensure jest-axe is imported and any async
await is used), placing the assertion at the end of the test so the component
DOM is fully loaded before the accessibility check.

Source: Coding guidelines

frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/NetworkForm.test.tsx (1)

96-100: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add the mandatory jest-axe accessibility test for this rendered component.

This file renders NetworkForm but currently only snapshots output.

Suggested patch
 import { render } from '`@testing-library/react`'
+import { axe } from 'jest-axe'
 import { MemoryRouter, Route, Routes } from 'react-router-dom'
 ...
   test('it renders', async () => {
     const { container } = render(<Component />)
     normalizeGeneratedOuiaIds(container)
     expect(container).toMatchSnapshot()
   })
+
+  test('is accessible', async () => {
+    const { container } = render(<Component />)
+    expect(await axe(container)).toHaveNoViolations()
+  })
 })

As per coding guidelines, “Every component test must include an accessibility test with jest-axe: expect(await axe(container)).toHaveNoViolations()”.

🤖 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/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/NetworkForm.test.tsx`
around lines 96 - 100, Add a jest-axe accessibility assertion to the existing
render test: import { axe, toHaveNoViolations } from 'jest-axe' at the top of
the test file and call expect.extend(toHaveNoViolations) once (top-level), then
in the 'it renders' test (the async test that renders <Component /> and calls
normalizeGeneratedOuiaIds(container)) add expect(await
axe(container)).toHaveNoViolations() after normalizeGeneratedOuiaIds(container)
so the test both snapshots and asserts no accessibility violations.

Source: Coding guidelines

🧹 Nitpick comments (4)
frontend/jest.config.ts (1)

23-23: ⚡ Quick win

Document or track removal of this temporary test shim.

The moduleNameMapper entry redirecting react-router-dom-v5-compat to react-router-dom is explicitly noted as temporary in the PR summary. Once all source files have been migrated to import directly from react-router-dom, this mapping should be removed to ensure no stale imports remain.

💡 Recommended tracking

Consider adding a TODO comment or opening a follow-up issue to remove this mapping after the migration is complete:

 '`@openshift-assisted/locales/`([a-z]{2,3}/translation.json)':
   '<rootDir>/node_modules/@openshift-assisted/locales/lib/$1/translation.json',
+// TODO: Remove after react-router-dom v6 migration is complete (ACM-33544)
 '^react-router-dom-v5-compat$': '<rootDir>/node_modules/react-router-dom',
🤖 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/jest.config.ts` at line 23, Add a short TODO and tracking reference
for the temporary moduleNameMapper entry that redirects
'^react-router-dom-v5-compat$' to '<rootDir>/node_modules/react-router-dom' so
we remember to remove it after migration; update the jest.config.ts near the
moduleNameMapper block to include a TODO comment with a brief note and
optionally open a follow-up issue/PR number in the comment so the mapping can be
removed once all imports no longer use react-router-dom-v5-compat.
frontend/packages/multicluster-sdk/package.json (1)

41-41: Clarify peerDependency range >=4.22.0-0 in @openshift-console/dynamic-plugin-sdk

>=4.22.0-0 is valid semver (prerelease identifier 0) and it matches 4.22.0-prerelease.3 and 4.22.0 (while rejecting 4.21.0), effectively allowing any 4.22.0 prerelease plus the final 4.22.0. If the intent is narrower than “any 4.22.0 prerelease/final”, tighten the range; otherwise add a brief comment explaining why -0 is used.

🤖 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/packages/multicluster-sdk/package.json` at line 41, The
peerDependency entry for "`@openshift-console/dynamic-plugin-sdk`" currently uses
the semver range ">=4.22.0-0" which permits all 4.22.0 prereleases plus the
final 4.22.0; either tighten that range or document the intent: update the
peerDependency on "`@openshift-console/dynamic-plugin-sdk`" in package.json to a
more specific range (for example a caret/pinned or bounded range that restricts
prereleases/future majors) if you meant to exclude prerelease versions, or add a
brief inline comment next to the "`@openshift-console/dynamic-plugin-sdk`"
peerDependency explaining why "-0" prerelease allowance is required so readers
understand the choice.
frontend/src/routes/Credentials/CreateCredentialsCatalog.tsx (1)

10-10: ⚡ Quick win

Use a type-only import for To.

Line 10 imports To as a runtime symbol, but it’s only used as a type (Line 12). Switch to import type { To } from 'react-router-dom'.

As per coding guidelines, “Use import type syntax to avoid runtime imports.”

Suggested diff
-import { To } from 'react-router-dom'
+import type { To } from 'react-router-dom'
🤖 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/src/routes/Credentials/CreateCredentialsCatalog.tsx` at line 10, The
import for To is currently a runtime import but it's only used as a type in
CreateCredentialsCatalog; change the import to a type-only import by using the
TypeScript `import type { To } from 'react-router-dom'` form so To is erased at
runtime and no extra module import is emitted—update the import statement that
currently reads `import { To } from 'react-router-dom'` to the type-only form
and keep all usages of To (e.g., the prop/type on CreateCredentialsCatalog)
unchanged.

Source: Coding guidelines

frontend/src/routes/Applications/CreateArgoApplication/createArgoResources.ts (1)

3-3: ⚡ Quick win

Use a type-only import for NavigateFunction.

At Line 3, NavigateFunction is type-only and should use import type per frontend TS conventions.

Proposed fix
-import { generatePath, NavigateFunction } from 'react-router-dom'
+import { generatePath, type NavigateFunction } from 'react-router-dom'

As per coding guidelines, “Use import type syntax to avoid runtime imports.”

🤖 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/src/routes/Applications/CreateArgoApplication/createArgoResources.ts`
at line 3, The import currently brings in NavigateFunction as a runtime import;
change it to a type-only import to follow TS conventions by using "import type"
for NavigateFunction (the symbol to change) while keeping generatePath as a
normal import; update the import statement that references generatePath and
NavigateFunction so NavigateFunction is imported with "import type" to prevent
emitting a runtime import for the type.

Source: Coding guidelines

🤖 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/packages/multicluster-sdk/src/extensions/resource.ts`:
- Line 2: The file imports CodeRef and Extension from the SDK but only uses them
as types; change the import to type-only to avoid runtime imports by replacing
the current import with an import type for CodeRef and Extension (update the
import statement that references CodeRef and Extension in resource.ts). Ensure
any existing type aliases or usages such as the CodeRef and Extension references
remain unchanged, just convert the import to use "import type" so the
transpiler/tree-shaker treats them as type-only.

In `@frontend/packages/react-form-wizard/wizards/Argo/ArgoExamples.tsx`:
- Around line 12-14: The onCancel helper uses navigate(`./${RouteE.ArgoCD}`)
which adds an unnecessary "./" prefix; update the onCancel function (the
navigate call inside it) to use the same relative path style as other
navigations by removing the "./" prefix (e.g., navigate(RouteE.ArgoCD) or
navigate(`${RouteE.ArgoCD}`)) so it matches the other calls in this file and
React Router v6 expectations.

In `@frontend/src/lib/SharedContext.ts`:
- Line 6: Change the SharedContext generic default from any to unknown by
updating the type declaration for SharedContext (currently declared as
SharedContext<T = any>) to SharedContext<T = unknown>; update any call sites or
tests that relied on implicit any to explicitly type the generic or narrow with
type assertions so consumers handle the unknown safely (look for usages of
SharedContext and any places that omit the generic parameter).
- Around line 2-3: Change the runtime imports to type-only imports and remove
the `any` default on the SharedContext generic: update the imports to use
"import type { Context } from 'react'" and "import type { CodeRef, Extension }
from '`@openshift-console/dynamic-plugin-sdk`'" (so types are erased at runtime),
and change the SharedContext generic default from `any` to a safer type such as
`unknown` (or `Record<string, unknown>`) to avoid using `any`; apply these edits
where `Context`, `CodeRef`, `Extension`, and the `SharedContext` generic are
declared.

In `@frontend/src/plugin-extensions/extensions/actionExtension.ts`:
- Line 2: The import of Extension in actionExtension.ts is used only in type
positions, so change the import to a type-only import: replace the current plain
import of Extension with an "import type { Extension } ..." from
'`@openshift-console/dynamic-plugin-sdk/lib/types`' so the compiler/tree-shaker
knows it's a type-only dependency; update any usages in type aliases or the
isExtension type-guard signatures accordingly (no runtime change required).

In `@frontend/src/plugin-extensions/extensions/listColumnExtension.ts`:
- Line 2: Change the runtime import of Extension to a type-only import: replace
the current import of Extension from
'`@openshift-console/dynamic-plugin-sdk/lib/types`' with an "import type" so the
symbol Extension is erased at runtime; make sure there are no runtime references
to Extension in this file (only type aliases/type guards) before switching, and
keep all existing type usages (e.g., any type aliases or type-guard functions
that reference Extension) unchanged except for the import form.

In `@frontend/src/plugin-extensions/extensions/OverviewTab.ts`:
- Line 2: The import of Extension is only used for types; change the import to a
type-only import by replacing the runtime import of Extension from
'`@openshift-console/dynamic-plugin-sdk/lib/types`' with an "import type {
Extension }" form so TypeScript will erase the import at runtime; update the
top-level import statement that currently names Extension to use the type-only
form to avoid pulling the module into runtime.

---

Outside diff comments:
In `@frontend/src/components/LostChanges.test.tsx`:
- Around line 66-75: Update LostChanges.test.tsx to use React Router v6
semantics: replace the v5-style nested <Route path=...> under MemoryRouter with
a <Routes> wrapper and v6 Route elements using the element prop (e.g.,
<Routes><Route path="/form" element={<OuterForm/>}/><Route path="/discarded"
element={'Form Discarded'}/><Route path="/submitted" element={'Form
Submitted'}/></Routes>) while keeping MemoryRouter and LostChangesProvider. Also
stop mocking useNavigate (or adjust the mock to delegate to the real navigate)
so calls like navigate('/discarded') and navigate('/submitted') actually change
the MemoryRouter location and cause the expected route text to render. Ensure
references to MemoryRouter, LostChangesProvider, OuterForm, Route, Routes, and
useNavigate are corrected accordingly.

In `@frontend/src/routes/Applications/components/DeleteResourceModal.tsx`:
- Around line 254-259: The modal is using dangerouslySetInnerHTML to render
plain translated text in DeleteResourceModal; remove dangerouslySetInnerHTML and
render the string directly (e.g., replace the element using
dangerouslySetInnerHTML with a normal JSX child using props.t('The following
Argo application(s) deployed by the application set will also be deleted:')),
ensuring no HTML injection is used and translation is passed as a plain text
child; keep the same props.t key and component structure.

In `@frontend/src/routes/Infrastructure/Automations/AnsibleAutomations.test.tsx`:
- Around line 49-55: The mocked react-router-dom useLocation currently returns
mockedUsedNavigate (a function) causing components like AcmTableToolbar that
destructure { pathname, search } from useLocation() to receive undefined; update
the jest.mock for useLocation to return a location-like object (e.g., {
pathname: NavigationPath.ansibleAutomations, search: '' }) or remove the
useLocation mock so MemoryRouter provides correct values, keeping
useNavigate/mock behavior (mockedUsedNavigate) intact.

In
`@frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/HypershiftAWSCLI.test.tsx`:
- Around line 24-37: The test "should show all the steps" renders <Component />
and exercises UI but lacks the required accessibility assertion; after the
existing render(...) and waitForText/waitForTestId checks, import and invoke
jest-axe's axe on the rendered container and add the assertion expect(await
axe(container)).toHaveNoViolations() (ensure jest-axe is imported and any async
await is used), placing the assertion at the end of the test so the component
DOM is fully loaded before the accessibility check.

In
`@frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/NetworkForm.test.tsx`:
- Around line 96-100: Add a jest-axe accessibility assertion to the existing
render test: import { axe, toHaveNoViolations } from 'jest-axe' at the top of
the test file and call expect.extend(toHaveNoViolations) once (top-level), then
in the 'it renders' test (the async test that renders <Component /> and calls
normalizeGeneratedOuiaIds(container)) add expect(await
axe(container)).toHaveNoViolations() after normalizeGeneratedOuiaIds(container)
so the test both snapshots and asserts no accessibility violations.

---

Nitpick comments:
In `@frontend/jest.config.ts`:
- Line 23: Add a short TODO and tracking reference for the temporary
moduleNameMapper entry that redirects '^react-router-dom-v5-compat$' to
'<rootDir>/node_modules/react-router-dom' so we remember to remove it after
migration; update the jest.config.ts near the moduleNameMapper block to include
a TODO comment with a brief note and optionally open a follow-up issue/PR number
in the comment so the mapping can be removed once all imports no longer use
react-router-dom-v5-compat.

In `@frontend/packages/multicluster-sdk/package.json`:
- Line 41: The peerDependency entry for "`@openshift-console/dynamic-plugin-sdk`"
currently uses the semver range ">=4.22.0-0" which permits all 4.22.0
prereleases plus the final 4.22.0; either tighten that range or document the
intent: update the peerDependency on "`@openshift-console/dynamic-plugin-sdk`" in
package.json to a more specific range (for example a caret/pinned or bounded
range that restricts prereleases/future majors) if you meant to exclude
prerelease versions, or add a brief inline comment next to the
"`@openshift-console/dynamic-plugin-sdk`" peerDependency explaining why "-0"
prerelease allowance is required so readers understand the choice.

In
`@frontend/src/routes/Applications/CreateArgoApplication/createArgoResources.ts`:
- Line 3: The import currently brings in NavigateFunction as a runtime import;
change it to a type-only import to follow TS conventions by using "import type"
for NavigateFunction (the symbol to change) while keeping generatePath as a
normal import; update the import statement that references generatePath and
NavigateFunction so NavigateFunction is imported with "import type" to prevent
emitting a runtime import for the type.

In `@frontend/src/routes/Credentials/CreateCredentialsCatalog.tsx`:
- Line 10: The import for To is currently a runtime import but it's only used as
a type in CreateCredentialsCatalog; change the import to a type-only import by
using the TypeScript `import type { To } from 'react-router-dom'` form so To is
erased at runtime and no extra module import is emitted—update the import
statement that currently reads `import { To } from 'react-router-dom'` to the
type-only form and keep all usages of To (e.g., the prop/type on
CreateCredentialsCatalog) unchanged.
🪄 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: stolostron/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: a0b4c3b6-b9c6-476f-8fb2-e06228bd128b

📥 Commits

Reviewing files that changed from the base of the PR and between 183ae82 and 8063a5c.

⛔ Files ignored due to path filters (1)
  • frontend/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (299)
  • frontend/.storybook/preview.js
  • frontend/jest.config.ts
  • frontend/package.json
  • frontend/packages/multicluster-sdk/README.md
  • frontend/packages/multicluster-sdk/package.json
  • frontend/packages/multicluster-sdk/src/components/FleetResourceLink.test.tsx
  • frontend/packages/multicluster-sdk/src/components/FleetResourceLink.tsx
  • frontend/packages/multicluster-sdk/src/extensions/resource.ts
  • frontend/packages/multicluster-sdk/src/internal/FleetResourceEventStream/EventComponent.test.tsx
  • frontend/packages/multicluster-sdk/src/internal/FleetResourceEventStream/EventComponent.tsx
  • frontend/packages/react-form-wizard/package.json
  • frontend/packages/react-form-wizard/wizards/Ansible/AnsibleExample.tsx
  • frontend/packages/react-form-wizard/wizards/AppWizard/AppExample.tsx
  • frontend/packages/react-form-wizard/wizards/Application/ApplicationExample.tsx
  • frontend/packages/react-form-wizard/wizards/Argo/ArgoExamples.tsx
  • frontend/packages/react-form-wizard/wizards/Cluster/ClusterForm.tsx
  • frontend/packages/react-form-wizard/wizards/Cluster/Provider.tsx
  • frontend/packages/react-form-wizard/wizards/Credentials/CredentialsExample.tsx
  • frontend/packages/react-form-wizard/wizards/Demo.tsx
  • frontend/packages/react-form-wizard/wizards/Home/HomeWizard.tsx
  • frontend/packages/react-form-wizard/wizards/Hypershift/AmazonHypershiftWizard.tsx
  • frontend/packages/react-form-wizard/wizards/Inputs/InputsWizard.tsx
  • frontend/packages/react-form-wizard/wizards/Placement/PlacementExamples.tsx
  • frontend/packages/react-form-wizard/wizards/Policy/PolicyExamples.tsx
  • frontend/packages/react-form-wizard/wizards/PolicyAutomation/PolicyAutomationExamples.tsx
  • frontend/packages/react-form-wizard/wizards/PolicySet/PolicySetExamples.tsx
  • frontend/packages/react-form-wizard/wizards/ROSA/RosaExample.tsx
  • frontend/packages/react-form-wizard/wizards/common/utils.ts
  • frontend/plugins/acm/console-plugin-metadata.ts
  • frontend/plugins/mce/console-plugin-metadata.ts
  • frontend/src/App.tsx
  • frontend/src/NavigationPath.tsx
  • frontend/src/components/ACMNotReadyWarning.test.tsx
  • frontend/src/components/AutomationProviderHint.test.tsx
  • frontend/src/components/ClusterSets/ClusterSetsTable.test.tsx
  • frontend/src/components/ClusterSets/ClusterSetsTable.tsx
  • frontend/src/components/Clusters/ClustersTable.test.tsx
  • frontend/src/components/Clusters/ClustersTableHelper.test.tsx
  • frontend/src/components/Clusters/ClustersTableHelper.tsx
  • frontend/src/components/KubevirtProviderAlert.test.tsx
  • frontend/src/components/KubevirtProviderAlert.tsx
  • frontend/src/components/LoadPluginData.test.tsx
  • frontend/src/components/LoadPluginData.tsx
  • frontend/src/components/LostChanges.test.tsx
  • frontend/src/components/LostChanges.tsx
  • frontend/src/components/OperatorAlert.test.tsx
  • frontend/src/components/OperatorAlert.tsx
  • frontend/src/components/PluginDataContextProvider.test.tsx
  • frontend/src/components/ProjectsTable.test.tsx
  • frontend/src/components/ProjectsTable.tsx
  • frontend/src/components/RBACResourceYaml.test.tsx
  • frontend/src/components/StatusIcons.tsx
  • frontend/src/components/TemplateEditor/TemplateEditor.test.js
  • frontend/src/components/TemplateSummaryModal.tsx
  • frontend/src/components/YamlEditor.test.tsx
  • frontend/src/components/rbac/IdentitiesList.test.tsx
  • frontend/src/lib/AcmTimestamp.test.tsx
  • frontend/src/lib/SharedContext.ts
  • frontend/src/lib/search.ts
  • frontend/src/plugin-extensions/acmResourceRoutes.test.ts
  • frontend/src/plugin-extensions/acmResourceRoutes.ts
  • frontend/src/plugin-extensions/extensions/OverviewTab.ts
  • frontend/src/plugin-extensions/extensions/actionExtension.ts
  • frontend/src/plugin-extensions/extensions/listColumnExtension.ts
  • frontend/src/routes/Applications/AdvancedConfiguration.test.tsx
  • frontend/src/routes/Applications/AdvancedConfiguration.tsx
  • frontend/src/routes/Applications/ApplicationDetails/ApplicationDetails.test.tsx
  • frontend/src/routes/Applications/ApplicationDetails/ApplicationDetails.tsx
  • frontend/src/routes/Applications/ApplicationDetails/ApplicationDetails/ApplicationDetails.test.tsx
  • frontend/src/routes/Applications/ApplicationDetails/ApplicationDetails/ApplicationDetails.tsx
  • frontend/src/routes/Applications/Applications.tsx
  • frontend/src/routes/Applications/ApplicationsPage.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/CreatePullApplicationSet.test.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/CreatePullApplicationSet.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/CreatePushApplicationSet.test.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/CreatePushApplicationSet.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/EditArgoApplicationSet.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/createArgoResources.ts
  • frontend/src/routes/Applications/CreateSubscriptionApplication/SubscriptionApplication.test.tsx
  • frontend/src/routes/Applications/CreateSubscriptionApplication/SubscriptionApplication.tsx
  • frontend/src/routes/Applications/Overview.test.tsx
  • frontend/src/routes/Applications/Overview.tsx
  • frontend/src/routes/Applications/components/DeleteResourceModal.test.tsx
  • frontend/src/routes/Applications/components/DeleteResourceModal.tsx
  • frontend/src/routes/Applications/components/TimeWindowLabels.test.tsx
  • frontend/src/routes/Applications/components/TimeWindowLabels.tsx
  • frontend/src/routes/Applications/components/ToggleSelector.tsx
  • frontend/src/routes/Applications/helpers/resource-helper.tsx
  • frontend/src/routes/Credentials/CreateCredentials.test.tsx
  • frontend/src/routes/Credentials/CreateCredentials.tsx
  • frontend/src/routes/Credentials/CreateCredentialsCatalog.tsx
  • frontend/src/routes/Credentials/CreateCredentialsType/CreateCredentialsAWS.test.tsx
  • frontend/src/routes/Credentials/Credentials.tsx
  • frontend/src/routes/Credentials/CredentialsForm.test.tsx
  • frontend/src/routes/Credentials/CredentialsForm.tsx
  • frontend/src/routes/Credentials/CredentialsPage.test.tsx
  • frontend/src/routes/Credentials/CredentialsPage.tsx
  • frontend/src/routes/Governance/Governance.tsx
  • frontend/src/routes/Governance/GovernancePage.tsx
  • frontend/src/routes/Governance/common/util.tsx
  • frontend/src/routes/Governance/components/AutomationDetailsSidebar.test.tsx
  • frontend/src/routes/Governance/components/AutomationDetailsSidebar.tsx
  • frontend/src/routes/Governance/components/GovernanceEmptyState.tsx
  • frontend/src/routes/Governance/components/PolicyActionDropdown.tsx
  • frontend/src/routes/Governance/components/ViewDiffApiCall.test.tsx
  • frontend/src/routes/Governance/discovered/DiscoveredPolicies.test.tsx
  • frontend/src/routes/Governance/discovered/DiscoveredPolicies.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredByCluster.test.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredByCluster.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredPolicyDetailsPage.test.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredPolicyDetailsPage.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredResources.test.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredResources.tsx
  • frontend/src/routes/Governance/discovered/details/common.test.tsx
  • frontend/src/routes/Governance/discovered/details/common.tsx
  • frontend/src/routes/Governance/overview/ClusterPolicySummarySidebar.test.tsx
  • frontend/src/routes/Governance/overview/ClusterPolicySummarySidebar.tsx
  • frontend/src/routes/Governance/overview/Overview.test.tsx
  • frontend/src/routes/Governance/overview/PolicyViolationSummary.tsx
  • frontend/src/routes/Governance/overview/SecurityGroupPolicySummarySidebar.tsx
  • frontend/src/routes/Governance/policies/CreatePolicy.test.tsx
  • frontend/src/routes/Governance/policies/CreatePolicy.tsx
  • frontend/src/routes/Governance/policies/CreatePolicyAutomation.test.tsx
  • frontend/src/routes/Governance/policies/CreatePolicyAutomation.tsx
  • frontend/src/routes/Governance/policies/CreatePolicySubmit.test.tsx
  • frontend/src/routes/Governance/policies/EditPolicy.test.tsx
  • frontend/src/routes/Governance/policies/EditPolicy.tsx
  • frontend/src/routes/Governance/policies/EditPolicyAutomation.test.tsx
  • frontend/src/routes/Governance/policies/EditPolicyAutomation.tsx
  • frontend/src/routes/Governance/policies/Policies.test.tsx
  • frontend/src/routes/Governance/policies/Policies.tsx
  • frontend/src/routes/Governance/policies/PolicyTableCell.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsOverview.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsOverview.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsPage.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsPage.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsResults.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsResults.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/KyvernoRelatedResources.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyDetailsHistory.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyDetailsHistory.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetailHooks.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetails.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetails.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetailsColumns.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetailsPage.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetailsPage.tsx
  • frontend/src/routes/Governance/policy-sets/CreatePolicySet.test.tsx
  • frontend/src/routes/Governance/policy-sets/CreatePolicySet.tsx
  • frontend/src/routes/Governance/policy-sets/EditPolicySet.test.tsx
  • frontend/src/routes/Governance/policy-sets/EditPolicySet.tsx
  • frontend/src/routes/Governance/policy-sets/PolicySets.test.tsx
  • frontend/src/routes/Governance/policy-sets/PolicySets.tsx
  • frontend/src/routes/Governance/policy-sets/components/PolicySetCard.test.tsx
  • frontend/src/routes/Governance/policy-sets/components/PolicySetCard.tsx
  • frontend/src/routes/Governance/policy-sets/components/PolicySetDetailSidebar.test.tsx
  • frontend/src/routes/Governance/policy-sets/components/PolicySetDetailSidebar.tsx
  • frontend/src/routes/Home/Overview/Overview.test.tsx
  • frontend/src/routes/Home/Overview/OverviewPage.test.tsx
  • frontend/src/routes/Home/Overview/components/SavedSearchesCard.test.tsx
  • frontend/src/routes/Home/Overview/components/SavedSearchesCard.tsx
  • frontend/src/routes/Home/Overview/components/SummaryCard.test.tsx
  • frontend/src/routes/Home/Overview/components/SummaryCard.tsx
  • frontend/src/routes/Home/Overview/components/SummaryClustersCard.test.tsx
  • frontend/src/routes/Home/Overview/components/SummaryClustersCard.tsx
  • frontend/src/routes/Home/Overview/components/SummaryStatusCard.test.tsx
  • frontend/src/routes/Home/Overview/components/SummaryStatusCard.tsx
  • frontend/src/routes/Home/Welcome/Welcome.tsx
  • frontend/src/routes/Infrastructure/Automations/AnsibleAutomations.test.tsx
  • frontend/src/routes/Infrastructure/Automations/AnsibleAutomations.tsx
  • frontend/src/routes/Infrastructure/Automations/AnsibleAutomationsForm.test.tsx
  • frontend/src/routes/Infrastructure/Automations/AnsibleAutomationsForm.tsx
  • frontend/src/routes/Infrastructure/Automations/Automations.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/ClusterPools.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/ClusterPools.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPool/CreateClusterPool.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPool/CreateClusterPool.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPool/CreateClusterPoolCatalog.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPool/CreateClusterPoolCatalog.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPoolPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/components/ClusterClaimModal.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterRoleAssignments.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterRoleAssignments.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetAccessManagement/ClusterSetAccessManagement.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetClusterPools/ClusterSetClusterPools.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetClusters/ClusterSetClusters.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetClusters/ClusterSetClusters.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetDetails.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetDetails.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetDetailsPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetInstallSubmariner/InstallSubmarinerForm.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetManageResources/ClusterSetManageResources.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetManageResources/ClusterSetManageResources.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetOverview/ClusterSetOverview.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetRoleAssignments/ClusterSetRoleAssignments.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetRoleAssignments/ClusterSetRoleAssignments.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetSubmariner/ClusterSetSubmariner.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetRoleAssignmentsPage.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetRoleAssignmentsPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSets.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetsPage.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/CreateClusterSet/CreateClusterSetModal.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/components/ClusterSetActionDropdown.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/components/ClusterSetActionDropdown.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/components/MultiClusterNetworkStatus.tsx
  • frontend/src/routes/Infrastructure/Clusters/Clusters.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClustersPage.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClustersPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/DiscoveredClusters/DiscoveredClusters.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/DiscoveredClusters/DiscoveredClusters.tsx
  • frontend/src/routes/Infrastructure/Clusters/DiscoveredClusters/DiscoveryConfig/DiscoveryConfig.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/DiscoveredClusters/DiscoveryConfig/DiscoveryConfig.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterDetails.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterDetails.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterMachinePools/ClusterMachinePools.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterNodes/ClusterNodes.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterNodes/ClusterNodes.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterOverview/ClusterOverview.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterOverview/ClusterOverview.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/CreateCluster.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/CreateCluster.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/Warning.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/DetailsForm.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/DetailsForm.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/HostForm.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/HypershiftAWSCLI.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/NetworkForm.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/utils.ts
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateAWSControlPlane.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateClusterCatalog.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateControlPlane.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateDiscoverHost.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateDiscoverHost.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateKubeVirtControlPlane.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ImportCluster/ImportCluster.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ImportCluster/ImportCluster.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ManagedClusters.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ManagedClusters.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/AddCluster.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/BatchChannelSelectModal.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/BatchUpgradeModal.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterActionDropdown.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterActionDropdown.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterDestroy.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterDestroy.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterPolicySidebar.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/DistributionField.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/DistributionField.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/HiveNotification.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/HostedClusterProgress.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ImportCommand.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/LoginCredentials.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/NodePoolsProgress.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/NodePoolsTable.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/OnboardingModal.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/OnboardingModal.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ProgressStepBar.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/RemoveAutomationModal.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ScaleClusterAlert.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/StatusField.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/StatusField.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/StatusSummaryCount.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/StatusSummaryCount.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/UpdateAutomationModal.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/UpdateAutomationModal.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/cim/AIClusterDetails.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/cim/EditAICluster.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/cim/EditAICluster.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/CreatePlacement/CreatePlacement.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/CreatePlacement/CreatePlacement.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/CreatePlacement/EditPlacement.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/CreatePlacement/EditPlacement.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/PlacementDetails/PlacementDetails.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/PlacementDetails/PlacementDetails.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/PlacementDetails/PlacementOverview/PlacementOverview.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/PlacementDetails/PlacementOverview/PlacementOverview.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/Placements.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/Placements.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/utils.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/utils.tsx
  • frontend/src/routes/Infrastructure/Clusters/RoleAssignmentsPage.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/RoleAssignmentsPage.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/CreateInfraEnv.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/Details/InfraEnvironmentDetailsPage.test.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/Details/InfraEnvironmentDetailsPage.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/InfraEnvForm.test.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/InfraEnvironments.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/InfraEnvironmentsPage.test.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/InfraEnvironmentsPage.tsx
  • frontend/src/routes/Infrastructure/VirtualMachines/utils.test.tsx
  • frontend/src/routes/Infrastructure/VirtualMachines/utils.tsx
  • frontend/src/routes/Search/Details/DetailsOverviewPage.test.tsx
  • frontend/src/routes/Search/Details/DetailsOverviewPage.tsx
  • frontend/src/routes/Search/Details/DetailsPage.test.tsx
  • frontend/src/routes/Search/Details/DetailsPage.tsx
  • frontend/src/routes/Search/Details/LogsPage.test.tsx
  • frontend/src/routes/Search/Details/LogsPage.tsx
  • frontend/src/routes/Search/Details/RelatedResourceDetailsTab.test.tsx
💤 Files with no reviewable changes (2)
  • frontend/src/components/Clusters/ClustersTableHelper.test.tsx
  • frontend/src/components/Clusters/ClustersTable.test.tsx
👮 Files not reviewed due to content moderation or server errors (1)
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetClusters/ClusterSetClusters.tsx

Comment thread frontend/packages/multicluster-sdk/src/extensions/resource.ts Outdated
Comment thread frontend/packages/react-form-wizard/wizards/Argo/ArgoExamples.tsx
Comment thread frontend/src/lib/SharedContext.ts Outdated
Comment thread frontend/src/lib/SharedContext.ts Outdated
Comment thread frontend/src/plugin-extensions/extensions/actionExtension.ts Outdated
Comment thread frontend/src/plugin-extensions/extensions/listColumnExtension.ts Outdated
Comment thread frontend/src/plugin-extensions/extensions/OverviewTab.ts Outdated
Signed-off-by: Kevin Cormier <kcormier@redhat.com>
Assisted-by: Cursor (Claude Opus 4.6 High)
Signed-off-by: Kevin Cormier <kcormier@redhat.com>
Signed-off-by: Kevin Cormier <kcormier@redhat.com>
…outer-dom@6

Signed-off-by: Kevin Cormier <kcormier@redhat.com>
Signed-off-by: Kevin Cormier <kcormier@redhat.com>
Signed-off-by: Kevin Cormier <kcormier@redhat.com>
@KevinFCormier KevinFCormier force-pushed the ACM-33544-update-minimum-ocp-version-4.22 branch from a102c60 to 476452d Compare June 9, 2026 18:36

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (5)
frontend/src/routes/Infrastructure/Clusters/Placements/utils.test.tsx (1)

240-387: ⚠️ Potential issue | 🟠 Major

Add jest-axe accessibility assertions to PlacementLinkList/ClusterLinkList/ClusterSetLinkList tests

frontend/src/routes/Infrastructure/Clusters/Placements/utils.test.tsx (lines ~240-387) contains no jest-axe / axe(container) / toHaveNoViolations() assertions for these component test blocks; add accessibility checks per frontend/**/*.test.tsx requirement.

🤖 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/src/routes/Infrastructure/Clusters/Placements/utils.test.tsx` around
lines 240 - 387, Add jest-axe accessibility assertions to the PlacementLinkList,
ClusterLinkList, and ClusterSetLinkList tests by running axe on the rendered
container and asserting no violations; for each test block that calls render(…)
for PlacementLinkList, ClusterLinkList, or ClusterSetLinkList (use the existing
render calls that return a container), call await axe(container) and
expect(results).toHaveNoViolations() (or expect(await
axe(container)).toHaveNoViolations()) after rendering and user interactions
(e.g., after clicking show more/show less) so each test verifies accessibility
using the jest-axe matcher.

Source: Coding guidelines

frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ScaleClusterAlert.test.tsx (1)

29-80: ⚠️ Potential issue | 🟡 Minor

Add a jest-axe accessibility assertion to ScaleClusterAlert tests.

frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ScaleClusterAlert.test.tsx mounts the component but the test cases shown have no expect(await axe(container)).toHaveNoViolations() check.

🤖 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/src/routes/Infrastructure/Clusters/ManagedClusters/components/ScaleClusterAlert.test.tsx`
around lines 29 - 80, Add an accessibility assertion to each test by running
jest-axe against the rendered DOM container and asserting no violations; import
axe from 'jest-axe' and use expect(await axe(container)).toHaveNoViolations()
after each render in the tests that call render(<Component />) (the tests inside
describe('ScaleClusterAlert') that use RecoilRoot and render Component,
including the cases with machinePoolsState). Ensure the container returned by
render(...) is captured (e.g., const { container } = render(...)) and await the
axe result before completing each test.
frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateControlPlane.test.tsx (1)

24-123: 🛠️ Refactor suggestion | 🟠 Major

Add a jest-axe accessibility assertion to this test suite.
frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateControlPlane.test.tsx contains component tests but no axe(container) / toHaveNoViolations() check; add one to match frontend/**/*.test.tsx requirements.

🤖 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/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateControlPlane.test.tsx`
around lines 24 - 123, Add an accessibility assertion using jest-axe to the
CreateControlPlane test suite: import axe (and ensure toHaveNoViolations is
registered) and after each render + waitForNocks call use the rendered container
(from render(...)) to run `await axe(container)` and
`expect(results).toHaveNoViolations()`; update tests that call render (e.g., the
tests using render(<Component ... />) and symbols like CreateControlPlane,
render, waitForNocks, getByTestId) to include this check right after waiting for
nocks so the accessibility scan runs on the final DOM.

Source: Coding guidelines

frontend/src/lib/AcmTimestamp.test.tsx (1)

45-147: ⚠️ Potential issue | 🟡 Minor

Add jest-axe accessibility assertion to AcmTimestamp test suite

frontend/src/lib/AcmTimestamp.test.tsx contains no jest-axe/axe(container) check, so it doesn’t meet the accessibility test requirement for component tests.

Suggested patch
+import { axe } from 'jest-axe'
 import { UseK8sWatchResource } from '`@openshift-console/dynamic-plugin-sdk`'
 import { useFleetK8sWatchResource } from '`@stolostron/multicluster-sdk`'
 import { render, screen } from '`@testing-library/react`'
 import React from 'react'
 import AcmTimestamp from './AcmTimestamp'
 import { PluginContext } from './PluginContext'
 import { PluginDataContext } from './PluginDataContext'

 describe('AcmTimestamp', () => {
   const timestamp = 'Jan 3, 2025, 6:53 PM'
 
+  test('has no accessibility violations', async () => {
+    const { container } = render(
+      <PluginContext.Provider value={mockPluginContextValue}>
+        <AcmTimestamp timestamp={timestamp} />
+      </PluginContext.Provider>
+    )
+    expect(await axe(container)).toHaveNoViolations()
+  })
+
   test('renders dash when timestamp is undefined', () => {
     render(
       <PluginContext.Provider value={mockPluginContextValue}>
         <AcmTimestamp timestamp={undefined} />
       </PluginContext.Provider>
     )
     expect(screen.getByText('-')).toBeInTheDocument()
   })
🤖 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/src/lib/AcmTimestamp.test.tsx` around lines 45 - 147, The test suite
for AcmTimestamp is missing a jest-axe accessibility assertion; update the tests
that call render(...) (e.g., in the describe('AcmTimestamp') block and tests
using PluginContext and mockPluginContextValue) to import and use axe from
'jest-axe', capture the render result's container, make the test async, run
const results = await axe(container) and assert
expect(results).toHaveNoViolations(); you can add a single new async test (or
append to existing renders) that covers the default render and the edge-case
renders (empty/undefined/null) to satisfy the accessibility check for
AcmTimestamp and SimpleTimestamp fallbacks.

Source: Coding guidelines

frontend/packages/multicluster-sdk/src/internal/FleetResourceEventStream/EventComponent.test.tsx (1)

57-113: ⚠️ Potential issue | 🟡 Minor

Add jest-axe accessibility coverage to EventComponent test

frontend/packages/multicluster-sdk/src/internal/FleetResourceEventStream/EventComponent.test.tsx has no expect(await axe(container)).toHaveNoViolations() assertion. Import axe from jest-axe, capture container from render(...), and add the accessibility assertion to this component test suite.

🤖 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/packages/multicluster-sdk/src/internal/FleetResourceEventStream/EventComponent.test.tsx`
around lines 57 - 113, Update the EventComponent test to include jest-axe
accessibility assertion: import { axe } from 'jest-axe', make the test async,
capture the container returned by render(<EventComponent ... />), then add await
expect(await axe(container)).toHaveNoViolations() (or expect(await
axe(container)).toHaveNoViolations() inside an async test) after the existing
DOM assertions; ensure you reference the EventComponent test block and the
render call so the container variable is used.

Source: Coding guidelines

🤖 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.

Outside diff comments:
In
`@frontend/packages/multicluster-sdk/src/internal/FleetResourceEventStream/EventComponent.test.tsx`:
- Around line 57-113: Update the EventComponent test to include jest-axe
accessibility assertion: import { axe } from 'jest-axe', make the test async,
capture the container returned by render(<EventComponent ... />), then add await
expect(await axe(container)).toHaveNoViolations() (or expect(await
axe(container)).toHaveNoViolations() inside an async test) after the existing
DOM assertions; ensure you reference the EventComponent test block and the
render call so the container variable is used.

In `@frontend/src/lib/AcmTimestamp.test.tsx`:
- Around line 45-147: The test suite for AcmTimestamp is missing a jest-axe
accessibility assertion; update the tests that call render(...) (e.g., in the
describe('AcmTimestamp') block and tests using PluginContext and
mockPluginContextValue) to import and use axe from 'jest-axe', capture the
render result's container, make the test async, run const results = await
axe(container) and assert expect(results).toHaveNoViolations(); you can add a
single new async test (or append to existing renders) that covers the default
render and the edge-case renders (empty/undefined/null) to satisfy the
accessibility check for AcmTimestamp and SimpleTimestamp fallbacks.

In
`@frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ScaleClusterAlert.test.tsx`:
- Around line 29-80: Add an accessibility assertion to each test by running
jest-axe against the rendered DOM container and asserting no violations; import
axe from 'jest-axe' and use expect(await axe(container)).toHaveNoViolations()
after each render in the tests that call render(<Component />) (the tests inside
describe('ScaleClusterAlert') that use RecoilRoot and render Component,
including the cases with machinePoolsState). Ensure the container returned by
render(...) is captured (e.g., const { container } = render(...)) and await the
axe result before completing each test.

In
`@frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateControlPlane.test.tsx`:
- Around line 24-123: Add an accessibility assertion using jest-axe to the
CreateControlPlane test suite: import axe (and ensure toHaveNoViolations is
registered) and after each render + waitForNocks call use the rendered container
(from render(...)) to run `await axe(container)` and
`expect(results).toHaveNoViolations()`; update tests that call render (e.g., the
tests using render(<Component ... />) and symbols like CreateControlPlane,
render, waitForNocks, getByTestId) to include this check right after waiting for
nocks so the accessibility scan runs on the final DOM.

In `@frontend/src/routes/Infrastructure/Clusters/Placements/utils.test.tsx`:
- Around line 240-387: Add jest-axe accessibility assertions to the
PlacementLinkList, ClusterLinkList, and ClusterSetLinkList tests by running axe
on the rendered container and asserting no violations; for each test block that
calls render(…) for PlacementLinkList, ClusterLinkList, or ClusterSetLinkList
(use the existing render calls that return a container), call await
axe(container) and expect(results).toHaveNoViolations() (or expect(await
axe(container)).toHaveNoViolations()) after rendering and user interactions
(e.g., after clicking show more/show less) so each test verifies accessibility
using the jest-axe matcher.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 36bb83af-79da-478b-913a-e41efe7163dd

📥 Commits

Reviewing files that changed from the base of the PR and between a102c60 and 476452d.

⛔ Files ignored due to path filters (1)
  • frontend/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (291)
  • frontend/.storybook/preview.js
  • frontend/jest.config.ts
  • frontend/package.json
  • frontend/packages/multicluster-sdk/README.md
  • frontend/packages/multicluster-sdk/package.json
  • frontend/packages/multicluster-sdk/src/components/FleetResourceLink.test.tsx
  • frontend/packages/multicluster-sdk/src/components/FleetResourceLink.tsx
  • frontend/packages/multicluster-sdk/src/extensions/resource.ts
  • frontend/packages/multicluster-sdk/src/internal/FleetResourceEventStream/EventComponent.test.tsx
  • frontend/packages/multicluster-sdk/src/internal/FleetResourceEventStream/EventComponent.tsx
  • frontend/packages/multicluster-sdk/src/internal/resourceRouteUtils.ts
  • frontend/packages/react-form-wizard/package.json
  • frontend/packages/react-form-wizard/wizards/Ansible/AnsibleExample.tsx
  • frontend/packages/react-form-wizard/wizards/AppWizard/AppExample.tsx
  • frontend/packages/react-form-wizard/wizards/Application/ApplicationExample.tsx
  • frontend/packages/react-form-wizard/wizards/Argo/ArgoExamples.tsx
  • frontend/packages/react-form-wizard/wizards/Cluster/ClusterForm.tsx
  • frontend/packages/react-form-wizard/wizards/Cluster/Provider.tsx
  • frontend/packages/react-form-wizard/wizards/Credentials/CredentialsExample.tsx
  • frontend/packages/react-form-wizard/wizards/Demo.tsx
  • frontend/packages/react-form-wizard/wizards/Home/HomeWizard.tsx
  • frontend/packages/react-form-wizard/wizards/Hypershift/AmazonHypershiftWizard.tsx
  • frontend/packages/react-form-wizard/wizards/Inputs/InputsWizard.tsx
  • frontend/packages/react-form-wizard/wizards/Placement/PlacementExamples.tsx
  • frontend/packages/react-form-wizard/wizards/Policy/PolicyExamples.tsx
  • frontend/packages/react-form-wizard/wizards/PolicyAutomation/PolicyAutomationExamples.tsx
  • frontend/packages/react-form-wizard/wizards/PolicySet/PolicySetExamples.tsx
  • frontend/packages/react-form-wizard/wizards/ROSA/RosaExample.tsx
  • frontend/packages/react-form-wizard/wizards/common/utils.ts
  • frontend/plugins/acm/console-plugin-metadata.ts
  • frontend/plugins/mce/console-plugin-metadata.ts
  • frontend/src/App.tsx
  • frontend/src/NavigationPath.tsx
  • frontend/src/components/ACMNotReadyWarning.test.tsx
  • frontend/src/components/AutomationProviderHint.test.tsx
  • frontend/src/components/ClusterSets/ClusterSetsTable.test.tsx
  • frontend/src/components/ClusterSets/ClusterSetsTable.tsx
  • frontend/src/components/Clusters/ClustersTable.test.tsx
  • frontend/src/components/Clusters/ClustersTableHelper.test.tsx
  • frontend/src/components/Clusters/ClustersTableHelper.tsx
  • frontend/src/components/KubevirtProviderAlert.test.tsx
  • frontend/src/components/KubevirtProviderAlert.tsx
  • frontend/src/components/LoadPluginData.test.tsx
  • frontend/src/components/LoadPluginData.tsx
  • frontend/src/components/LostChanges.test.tsx
  • frontend/src/components/LostChanges.tsx
  • frontend/src/components/OperatorAlert.test.tsx
  • frontend/src/components/OperatorAlert.tsx
  • frontend/src/components/PluginContextProvider.tsx
  • frontend/src/components/PluginDataContextProvider.test.tsx
  • frontend/src/components/ProjectsTable.test.tsx
  • frontend/src/components/ProjectsTable.tsx
  • frontend/src/components/RBACResourceYaml.test.tsx
  • frontend/src/components/StatusIcons.tsx
  • frontend/src/components/TemplateEditor/TemplateEditor.test.js
  • frontend/src/components/TemplateSummaryModal.tsx
  • frontend/src/components/YamlEditor.test.tsx
  • frontend/src/components/rbac/IdentitiesList.test.tsx
  • frontend/src/lib/AcmTimestamp.test.tsx
  • frontend/src/lib/SharedContext.ts
  • frontend/src/lib/search.ts
  • frontend/src/plugin-extensions/acmResourceRoutes.test.ts
  • frontend/src/plugin-extensions/acmResourceRoutes.ts
  • frontend/src/plugin-extensions/extensions/OverviewTab.ts
  • frontend/src/plugin-extensions/extensions/actionExtension.ts
  • frontend/src/plugin-extensions/extensions/listColumnExtension.ts
  • frontend/src/plugin-extensions/properties/overviewTabProps.ts
  • frontend/src/routes/Applications/AdvancedConfiguration.test.tsx
  • frontend/src/routes/Applications/AdvancedConfiguration.tsx
  • frontend/src/routes/Applications/ApplicationDetails/ApplicationDetails.test.tsx
  • frontend/src/routes/Applications/ApplicationDetails/ApplicationDetails.tsx
  • frontend/src/routes/Applications/ApplicationDetails/ApplicationDetails/ApplicationDetails.test.tsx
  • frontend/src/routes/Applications/ApplicationDetails/ApplicationDetails/ApplicationDetails.tsx
  • frontend/src/routes/Applications/Applications.tsx
  • frontend/src/routes/Applications/ApplicationsPage.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/CreatePullApplicationSet.test.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/CreatePullApplicationSet.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/CreatePushApplicationSet.test.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/CreatePushApplicationSet.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/EditArgoApplicationSet.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/createArgoResources.ts
  • frontend/src/routes/Applications/CreateSubscriptionApplication/SubscriptionApplication.test.tsx
  • frontend/src/routes/Applications/CreateSubscriptionApplication/SubscriptionApplication.tsx
  • frontend/src/routes/Applications/Overview.test.tsx
  • frontend/src/routes/Applications/Overview.tsx
  • frontend/src/routes/Applications/components/DeleteResourceModal.test.tsx
  • frontend/src/routes/Applications/components/DeleteResourceModal.tsx
  • frontend/src/routes/Applications/components/TimeWindowLabels.test.tsx
  • frontend/src/routes/Applications/components/TimeWindowLabels.tsx
  • frontend/src/routes/Applications/components/ToggleSelector.tsx
  • frontend/src/routes/Applications/helpers/resource-helper.tsx
  • frontend/src/routes/Credentials/CreateCredentials.test.tsx
  • frontend/src/routes/Credentials/CreateCredentials.tsx
  • frontend/src/routes/Credentials/CreateCredentialsCatalog.tsx
  • frontend/src/routes/Credentials/CreateCredentialsType/CreateCredentialsAWS.test.tsx
  • frontend/src/routes/Credentials/Credentials.tsx
  • frontend/src/routes/Credentials/CredentialsForm.test.tsx
  • frontend/src/routes/Credentials/CredentialsForm.tsx
  • frontend/src/routes/Credentials/CredentialsPage.test.tsx
  • frontend/src/routes/Credentials/CredentialsPage.tsx
  • frontend/src/routes/Governance/Governance.tsx
  • frontend/src/routes/Governance/GovernancePage.tsx
  • frontend/src/routes/Governance/common/util.tsx
  • frontend/src/routes/Governance/components/AutomationDetailsSidebar.test.tsx
  • frontend/src/routes/Governance/components/AutomationDetailsSidebar.tsx
  • frontend/src/routes/Governance/components/GovernanceEmptyState.tsx
  • frontend/src/routes/Governance/components/PolicyActionDropdown.tsx
  • frontend/src/routes/Governance/components/ViewDiffApiCall.test.tsx
  • frontend/src/routes/Governance/discovered/DiscoveredPolicies.test.tsx
  • frontend/src/routes/Governance/discovered/DiscoveredPolicies.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredByCluster.test.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredByCluster.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredPolicyDetailsPage.test.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredPolicyDetailsPage.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredResources.test.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredResources.tsx
  • frontend/src/routes/Governance/discovered/details/common.test.tsx
  • frontend/src/routes/Governance/discovered/details/common.tsx
  • frontend/src/routes/Governance/overview/ClusterPolicySummarySidebar.test.tsx
  • frontend/src/routes/Governance/overview/ClusterPolicySummarySidebar.tsx
  • frontend/src/routes/Governance/overview/Overview.test.tsx
  • frontend/src/routes/Governance/overview/PolicyViolationSummary.tsx
  • frontend/src/routes/Governance/overview/SecurityGroupPolicySummarySidebar.tsx
  • frontend/src/routes/Governance/policies/CreatePolicy.test.tsx
  • frontend/src/routes/Governance/policies/CreatePolicy.tsx
  • frontend/src/routes/Governance/policies/CreatePolicyAutomation.test.tsx
  • frontend/src/routes/Governance/policies/CreatePolicyAutomation.tsx
  • frontend/src/routes/Governance/policies/CreatePolicySubmit.test.tsx
  • frontend/src/routes/Governance/policies/EditPolicy.test.tsx
  • frontend/src/routes/Governance/policies/EditPolicy.tsx
  • frontend/src/routes/Governance/policies/EditPolicyAutomation.test.tsx
  • frontend/src/routes/Governance/policies/EditPolicyAutomation.tsx
  • frontend/src/routes/Governance/policies/Policies.test.tsx
  • frontend/src/routes/Governance/policies/Policies.tsx
  • frontend/src/routes/Governance/policies/PolicyTableCell.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsOverview.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsOverview.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsPage.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsPage.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsResults.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsResults.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/KyvernoRelatedResources.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyDetailsHistory.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyDetailsHistory.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetailHooks.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetails.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetails.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetailsColumns.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetailsPage.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetailsPage.tsx
  • frontend/src/routes/Governance/policy-sets/CreatePolicySet.test.tsx
  • frontend/src/routes/Governance/policy-sets/CreatePolicySet.tsx
  • frontend/src/routes/Governance/policy-sets/EditPolicySet.test.tsx
  • frontend/src/routes/Governance/policy-sets/EditPolicySet.tsx
  • frontend/src/routes/Governance/policy-sets/PolicySets.test.tsx
  • frontend/src/routes/Governance/policy-sets/PolicySets.tsx
  • frontend/src/routes/Governance/policy-sets/components/PolicySetCard.test.tsx
  • frontend/src/routes/Governance/policy-sets/components/PolicySetCard.tsx
  • frontend/src/routes/Governance/policy-sets/components/PolicySetDetailSidebar.test.tsx
  • frontend/src/routes/Governance/policy-sets/components/PolicySetDetailSidebar.tsx
  • frontend/src/routes/Home/Overview/Overview.test.tsx
  • frontend/src/routes/Home/Overview/OverviewPage.test.tsx
  • frontend/src/routes/Home/Overview/components/SavedSearchesCard.test.tsx
  • frontend/src/routes/Home/Overview/components/SavedSearchesCard.tsx
  • frontend/src/routes/Home/Overview/components/SummaryCard.test.tsx
  • frontend/src/routes/Home/Overview/components/SummaryCard.tsx
  • frontend/src/routes/Home/Overview/components/SummaryClustersCard.test.tsx
  • frontend/src/routes/Home/Overview/components/SummaryClustersCard.tsx
  • frontend/src/routes/Home/Overview/components/SummaryStatusCard.test.tsx
  • frontend/src/routes/Home/Overview/components/SummaryStatusCard.tsx
  • frontend/src/routes/Home/Welcome/Welcome.tsx
  • frontend/src/routes/Infrastructure/Automations/AnsibleAutomations.test.tsx
  • frontend/src/routes/Infrastructure/Automations/AnsibleAutomations.tsx
  • frontend/src/routes/Infrastructure/Automations/AnsibleAutomationsForm.test.tsx
  • frontend/src/routes/Infrastructure/Automations/AnsibleAutomationsForm.tsx
  • frontend/src/routes/Infrastructure/Automations/Automations.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/ClusterPools.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/ClusterPools.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPool/CreateClusterPool.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPool/CreateClusterPool.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPool/CreateClusterPoolCatalog.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPool/CreateClusterPoolCatalog.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPoolPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/components/ClusterClaimModal.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterRoleAssignments.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterRoleAssignments.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetAccessManagement/ClusterSetAccessManagement.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetClusterPools/ClusterSetClusterPools.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetClusters/ClusterSetClusters.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetClusters/ClusterSetClusters.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetDetails.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetDetails.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetDetailsPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetInstallSubmariner/InstallSubmarinerForm.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetManageResources/ClusterSetManageResources.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetManageResources/ClusterSetManageResources.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetOverview/ClusterSetOverview.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetRoleAssignments/ClusterSetRoleAssignments.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetRoleAssignments/ClusterSetRoleAssignments.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetSubmariner/ClusterSetSubmariner.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetRoleAssignmentsPage.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetRoleAssignmentsPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSets.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetsPage.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/CreateClusterSet/CreateClusterSetModal.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/components/ClusterSetActionDropdown.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/components/ClusterSetActionDropdown.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/components/MultiClusterNetworkStatus.tsx
  • frontend/src/routes/Infrastructure/Clusters/Clusters.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClustersPage.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClustersPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/DiscoveredClusters/DiscoveredClusters.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/DiscoveredClusters/DiscoveredClusters.tsx
  • frontend/src/routes/Infrastructure/Clusters/DiscoveredClusters/DiscoveryConfig/DiscoveryConfig.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/DiscoveredClusters/DiscoveryConfig/DiscoveryConfig.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterDetails.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterDetails.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterMachinePools/ClusterMachinePools.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterNodes/ClusterNodes.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterNodes/ClusterNodes.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterOverview/ClusterOverview.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterOverview/ClusterOverview.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/CreateCluster.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/CreateCluster.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/Warning.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/DetailsForm.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/DetailsForm.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/HostForm.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/HypershiftAWSCLI.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/NetworkForm.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/utils.ts
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateAWSControlPlane.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateClusterCatalog.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateControlPlane.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateDiscoverHost.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateDiscoverHost.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateKubeVirtControlPlane.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ImportCluster/ImportCluster.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ImportCluster/ImportCluster.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ManagedClusters.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ManagedClusters.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/AddCluster.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/BatchChannelSelectModal.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/BatchUpgradeModal.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterActionDropdown.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterActionDropdown.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterDestroy.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterDestroy.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterPolicySidebar.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/DistributionField.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/DistributionField.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/HiveNotification.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/HostedClusterProgress.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ImportCommand.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/LoginCredentials.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/NodePoolsProgress.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/NodePoolsTable.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/OnboardingModal.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/OnboardingModal.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ProgressStepBar.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/RemoveAutomationModal.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ScaleClusterAlert.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/StatusField.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/StatusField.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/StatusSummaryCount.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/StatusSummaryCount.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/UpdateAutomationModal.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/UpdateAutomationModal.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/cim/AIClusterDetails.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/cim/EditAICluster.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/cim/EditAICluster.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/CreatePlacement/CreatePlacement.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/CreatePlacement/CreatePlacement.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/CreatePlacement/EditPlacement.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/CreatePlacement/EditPlacement.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/PlacementDetails/PlacementDetails.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/PlacementDetails/PlacementDetails.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/PlacementDetails/PlacementOverview/PlacementOverview.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/PlacementDetails/PlacementOverview/PlacementOverview.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/Placements.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/Placements.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/utils.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/utils.tsx
  • frontend/src/routes/Infrastructure/Clusters/RoleAssignmentsPage.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/RoleAssignmentsPage.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/CreateInfraEnv.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/Details/InfraEnvironmentDetailsPage.test.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/Details/InfraEnvironmentDetailsPage.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/InfraEnvForm.test.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/InfraEnvironments.tsx
💤 Files with no reviewable changes (2)
  • frontend/src/components/Clusters/ClustersTableHelper.test.tsx
  • frontend/src/components/Clusters/ClustersTable.test.tsx
✅ Files skipped from review due to trivial changes (108)
  • frontend/src/routes/Governance/policies/Policies.test.tsx
  • frontend/src/components/LostChanges.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterRoleAssignments.tsx
  • frontend/src/components/OperatorAlert.tsx
  • frontend/src/routes/Home/Overview/components/SummaryStatusCard.tsx
  • frontend/src/routes/Applications/components/DeleteResourceModal.tsx
  • frontend/src/routes/Governance/discovered/details/common.test.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/CreatePullApplicationSet.tsx
  • frontend/src/routes/Applications/helpers/resource-helper.tsx
  • frontend/src/App.tsx
  • frontend/src/routes/Home/Overview/components/SummaryStatusCard.test.tsx
  • frontend/src/routes/Governance/components/GovernanceEmptyState.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetRoleAssignmentsPage.tsx
  • frontend/src/routes/Governance/overview/ClusterPolicySummarySidebar.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/NetworkForm.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/components/ClusterSetActionDropdown.tsx
  • frontend/src/lib/search.ts
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/HiveNotification.test.tsx
  • frontend/src/routes/Governance/policy-sets/CreatePolicySet.tsx
  • frontend/src/routes/Governance/GovernancePage.tsx
  • frontend/src/routes/Governance/policies/CreatePolicyAutomation.tsx
  • frontend/src/routes/Infrastructure/Automations/Automations.tsx
  • frontend/src/routes/Governance/policies/EditPolicyAutomation.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/components/ClusterSetActionDropdown.test.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/Details/InfraEnvironmentDetailsPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetOverview/ClusterSetOverview.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/NodePoolsTable.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/DiscoveredClusters/DiscoveryConfig/DiscoveryConfig.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyDetailsHistory.test.tsx
  • frontend/src/routes/Governance/overview/SecurityGroupPolicySummarySidebar.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSets.test.tsx
  • frontend/src/components/StatusIcons.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/HostForm.test.tsx
  • frontend/src/routes/Governance/policies/PolicyTableCell.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/InfraEnvironments.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/OnboardingModal.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/StatusField.test.tsx
  • frontend/src/components/LoadPluginData.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterNodes/ClusterNodes.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/Placements.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetManageResources/ClusterSetManageResources.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterDetails.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ImportCommand.test.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/createArgoResources.ts
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/OnboardingModal.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/StatusField.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/NodePoolsProgress.test.tsx
  • frontend/packages/multicluster-sdk/src/internal/FleetResourceEventStream/EventComponent.tsx
  • frontend/src/components/TemplateEditor/TemplateEditor.test.js
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/CreateCluster.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ProgressStepBar.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetClusterPools/ClusterSetClusterPools.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterPolicySidebar.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/DiscoveredClusters/DiscoveryConfig/DiscoveryConfig.test.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredPolicyDetailsPage.test.tsx
  • frontend/src/components/ACMNotReadyWarning.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/PlacementDetails/PlacementDetails.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetClusters/ClusterSetClusters.test.tsx
  • frontend/src/routes/Home/Overview/components/SavedSearchesCard.test.tsx
  • frontend/src/routes/Governance/discovered/DiscoveredPolicies.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/DetailsForm.tsx
  • frontend/src/components/LoadPluginData.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterOverview/ClusterOverview.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetails.tsx
  • frontend/src/components/PluginDataContextProvider.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetailsPage.tsx
  • frontend/src/routes/Governance/policy-sets/CreatePolicySet.test.tsx
  • frontend/src/plugin-extensions/extensions/actionExtension.ts
  • frontend/src/routes/Applications/AdvancedConfiguration.tsx
  • frontend/src/routes/Credentials/CreateCredentials.tsx
  • frontend/src/routes/Credentials/Credentials.tsx
  • frontend/src/routes/Infrastructure/Automations/AnsibleAutomationsForm.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/CreatePlacement/EditPlacement.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/CreatePlacement/EditPlacement.tsx
  • frontend/packages/multicluster-sdk/README.md
  • frontend/src/routes/Governance/policies/EditPolicy.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetDetails.tsx
  • frontend/packages/multicluster-sdk/src/internal/resourceRouteUtils.ts
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetDetails.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/CreatePlacement/CreatePlacement.test.tsx
  • frontend/src/routes/Home/Overview/components/SummaryClustersCard.test.tsx
  • frontend/src/routes/Applications/ApplicationsPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetSubmariner/ClusterSetSubmariner.tsx
  • frontend/src/routes/Credentials/CreateCredentialsType/CreateCredentialsAWS.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateAWSControlPlane.test.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/CreateInfraEnv.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsPage.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/KyvernoRelatedResources.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterRoleAssignments.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterDetails.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/DistributionField.test.tsx
  • frontend/src/routes/Credentials/CreateCredentials.test.tsx
  • frontend/src/routes/Applications/ApplicationDetails/ApplicationDetails.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateKubeVirtControlPlane.test.tsx
  • frontend/src/routes/Home/Overview/components/SummaryCard.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/PlacementDetails/PlacementDetails.test.tsx
  • frontend/src/routes/Credentials/CredentialsPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/utils.ts
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetInstallSubmariner/InstallSubmarinerForm.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/components/ClusterClaimModal.tsx
  • frontend/src/routes/Governance/common/util.tsx
  • frontend/src/routes/Applications/CreateSubscriptionApplication/SubscriptionApplication.test.tsx
  • frontend/src/routes/Applications/ApplicationDetails/ApplicationDetails.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/HostedClusterProgress.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/PlacementDetails/PlacementOverview/PlacementOverview.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsResults.test.tsx
  • frontend/src/components/rbac/IdentitiesList.test.tsx
  • frontend/src/plugin-extensions/properties/overviewTabProps.ts
🚧 Files skipped from review as they are similar to previous changes (153)
  • frontend/src/routes/Governance/policy-sets/EditPolicySet.tsx
  • frontend/src/routes/Credentials/CreateCredentialsCatalog.tsx
  • frontend/src/routes/Governance/policy-sets/components/PolicySetDetailSidebar.test.tsx
  • frontend/src/components/ClusterSets/ClusterSetsTable.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/CreateClusterSet/CreateClusterSetModal.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsOverview.test.tsx
  • frontend/src/routes/Applications/components/TimeWindowLabels.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetsPage.test.tsx
  • frontend/src/routes/Applications/Applications.tsx
  • frontend/src/components/KubevirtProviderAlert.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterActionDropdown.test.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredResources.tsx
  • frontend/.storybook/preview.js
  • frontend/src/components/ProjectsTable.test.tsx
  • frontend/src/routes/Governance/policies/EditPolicy.tsx
  • frontend/src/routes/Infrastructure/Automations/AnsibleAutomationsForm.test.tsx
  • frontend/src/routes/Governance/overview/PolicyViolationSummary.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPool/CreateClusterPool.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/ClusterPools.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/DetailsForm.test.tsx
  • frontend/src/routes/Governance/policies/CreatePolicy.test.tsx
  • frontend/src/routes/Home/Overview/OverviewPage.test.tsx
  • frontend/src/plugin-extensions/extensions/OverviewTab.ts
  • frontend/src/routes/Infrastructure/Clusters/DiscoveredClusters/DiscoveredClusters.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/UpdateAutomationModal.test.tsx
  • frontend/src/routes/Governance/overview/Overview.test.tsx
  • frontend/src/routes/Governance/components/AutomationDetailsSidebar.test.tsx
  • frontend/src/routes/Applications/Overview.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetails.test.tsx
  • frontend/src/routes/Governance/policies/EditPolicyAutomation.test.tsx
  • frontend/src/components/ClusterSets/ClusterSetsTable.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ImportCluster/ImportCluster.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/RemoveAutomationModal.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/AddCluster.tsx
  • frontend/src/routes/Governance/policy-sets/PolicySets.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetRoleAssignmentsPage.test.tsx
  • frontend/packages/react-form-wizard/wizards/Inputs/InputsWizard.tsx
  • frontend/src/routes/Applications/Overview.test.tsx
  • frontend/src/routes/Infrastructure/Automations/AnsibleAutomations.tsx
  • frontend/src/routes/Governance/overview/ClusterPolicySummarySidebar.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateClusterCatalog.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/cim/AIClusterDetails.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/UpdateAutomationModal.tsx
  • frontend/src/components/ProjectsTable.tsx
  • frontend/packages/react-form-wizard/wizards/common/utils.ts
  • frontend/src/routes/Applications/components/ToggleSelector.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/InfraEnvForm.test.tsx
  • frontend/plugins/acm/console-plugin-metadata.ts
  • frontend/src/routes/Infrastructure/Clusters/RoleAssignmentsPage.tsx
  • frontend/src/routes/Governance/policy-sets/PolicySets.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClustersPage.tsx
  • frontend/src/routes/Governance/Governance.tsx
  • frontend/src/routes/Credentials/CredentialsPage.test.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredByCluster.test.tsx
  • frontend/src/routes/Home/Overview/components/SavedSearchesCard.tsx
  • frontend/src/components/TemplateSummaryModal.tsx
  • frontend/src/routes/Governance/discovered/DiscoveredPolicies.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPoolPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/utils.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateDiscoverHost.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/Placements.tsx
  • frontend/src/routes/Applications/AdvancedConfiguration.test.tsx
  • frontend/src/routes/Home/Welcome/Welcome.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/CreatePullApplicationSet.test.tsx
  • frontend/src/routes/Governance/policy-sets/components/PolicySetCard.test.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/EditArgoApplicationSet.tsx
  • frontend/packages/react-form-wizard/wizards/AppWizard/AppExample.tsx
  • frontend/src/routes/Governance/policy-sets/components/PolicySetCard.tsx
  • frontend/src/components/AutomationProviderHint.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterDestroy.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/Warning.tsx
  • frontend/src/routes/Applications/CreateArgoApplication/CreatePushApplicationSet.tsx
  • frontend/src/routes/Infrastructure/InfraEnvironments/Details/InfraEnvironmentDetailsPage.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ManagedClusters.tsx
  • frontend/src/routes/Infrastructure/Clusters/RoleAssignmentsPage.test.tsx
  • frontend/src/components/RBACResourceYaml.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetClusters/ClusterSetClusters.tsx
  • frontend/src/routes/Governance/policies/CreatePolicyAutomation.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/BatchUpgradeModal.test.tsx
  • frontend/plugins/mce/console-plugin-metadata.ts
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetRoleAssignments/ClusterSetRoleAssignments.tsx
  • frontend/packages/react-form-wizard/wizards/Cluster/ClusterForm.tsx
  • frontend/src/NavigationPath.tsx
  • frontend/src/routes/Governance/policies/CreatePolicySubmit.test.tsx
  • frontend/packages/react-form-wizard/wizards/ROSA/RosaExample.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterPage.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/StatusSummaryCount.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/PlacementDetails/PlacementOverview/PlacementOverview.tsx
  • frontend/src/routes/Applications/CreateSubscriptionApplication/SubscriptionApplication.tsx
  • frontend/packages/react-form-wizard/wizards/Application/ApplicationExample.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetDetailsPage.tsx
  • frontend/src/routes/Governance/discovered/details/common.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterNodes/ClusterNodes.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/cim/EditAICluster.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterActionDropdown.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetManageResources/ClusterSetManageResources.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/CreateCluster.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateCluster/components/assisted-installer/hypershift/HypershiftAWSCLI.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/DistributionField.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPool/CreateClusterPoolCatalog.test.tsx
  • frontend/packages/react-form-wizard/wizards/Demo.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/ClusterDestroy.test.tsx
  • frontend/src/routes/Applications/components/TimeWindowLabels.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/ClusterPools.tsx
  • frontend/src/routes/Governance/components/PolicyActionDropdown.tsx
  • frontend/packages/react-form-wizard/wizards/Home/HomeWizard.tsx
  • frontend/src/routes/Home/Overview/Overview.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterOverview/ClusterOverview.tsx
  • frontend/src/routes/Applications/ApplicationDetails/ApplicationDetails/ApplicationDetails.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Placements/CreatePlacement/CreatePlacement.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ClusterDetails/ClusterMachinePools/ClusterMachinePools.test.tsx
  • frontend/src/plugin-extensions/acmResourceRoutes.test.ts
  • frontend/src/routes/Governance/policies/Policies.tsx
  • frontend/src/routes/Governance/components/ViewDiffApiCall.test.tsx
  • frontend/packages/react-form-wizard/wizards/Credentials/CredentialsExample.tsx
  • frontend/src/routes/Infrastructure/Automations/AnsibleAutomations.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterPools/CreateClusterPool/CreateClusterPool.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/CreateClusterCatalog/CreateDiscoverHost.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsResults.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/cim/EditAICluster.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClustersPage.test.tsx
  • frontend/packages/react-form-wizard/wizards/PolicyAutomation/PolicyAutomationExamples.tsx
  • frontend/packages/react-form-wizard/wizards/Hypershift/AmazonHypershiftWizard.tsx
  • frontend/src/routes/Governance/discovered/details/DiscoveredResources.test.tsx
  • frontend/src/routes/Applications/ApplicationDetails/ApplicationDetails/ApplicationDetails.tsx
  • frontend/src/plugin-extensions/extensions/listColumnExtension.ts
  • frontend/src/routes/Governance/policy-sets/EditPolicySet.test.tsx
  • frontend/packages/react-form-wizard/wizards/Ansible/AnsibleExample.tsx
  • frontend/src/routes/Applications/components/DeleteResourceModal.test.tsx
  • frontend/packages/multicluster-sdk/src/components/FleetResourceLink.test.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyTemplateDetail/PolicyTemplateDetailsPage.test.tsx
  • frontend/src/components/LostChanges.test.tsx
  • frontend/src/routes/Infrastructure/Clusters/Clusters.tsx
  • frontend/src/lib/SharedContext.ts
  • frontend/packages/react-form-wizard/wizards/Argo/ArgoExamples.tsx
  • frontend/src/components/OperatorAlert.test.tsx
  • frontend/src/routes/Governance/components/AutomationDetailsSidebar.tsx
  • frontend/packages/multicluster-sdk/src/extensions/resource.ts
  • frontend/src/components/PluginContextProvider.tsx
  • frontend/packages/react-form-wizard/wizards/Placement/PlacementExamples.tsx
  • frontend/src/components/KubevirtProviderAlert.test.tsx
  • frontend/package.json
  • frontend/packages/react-form-wizard/package.json
  • frontend/packages/react-form-wizard/wizards/PolicySet/PolicySetExamples.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/components/StatusSummaryCount.tsx
  • frontend/src/routes/Infrastructure/Clusters/ClusterSets/ClusterSetDetails/ClusterSetRoleAssignments/ClusterSetRoleAssignments.test.tsx
  • frontend/src/routes/Credentials/CredentialsForm.tsx
  • frontend/src/routes/Infrastructure/Clusters/DiscoveredClusters/DiscoveredClusters.tsx
  • frontend/src/routes/Infrastructure/Clusters/ManagedClusters/ImportCluster/ImportCluster.tsx
  • frontend/packages/react-form-wizard/wizards/Policy/PolicyExamples.tsx
  • frontend/packages/react-form-wizard/wizards/Cluster/Provider.tsx
  • frontend/src/routes/Governance/policies/policy-details/PolicyDetailsOverview.tsx

@sonarqubecloud

sonarqubecloud Bot commented Jun 9, 2026

Copy link
Copy Markdown

@KevinFCormier

Copy link
Copy Markdown
Contributor Author

Obsolete

@KevinFCormier KevinFCormier deleted the ACM-33544-update-minimum-ocp-version-4.22 branch June 10, 2026 20:46
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.

1 participant