diff --git a/frontend/packages/console-app/src/components/access-modes/__tests__/access-mode.spec.tsx b/frontend/packages/console-app/src/components/access-modes/__tests__/access-mode.spec.tsx
new file mode 100644
index 00000000000..20ef7435cac
--- /dev/null
+++ b/frontend/packages/console-app/src/components/access-modes/__tests__/access-mode.spec.tsx
@@ -0,0 +1,135 @@
+import { render, screen } from '@testing-library/react';
+import userEvent from '@testing-library/user-event';
+import type { PersistentVolumeClaimKind } from '@console/internal/module/k8s';
+import { AccessModeSelector, getPVCAccessModes } from '../access-mode';
+
+jest.mock('@console/internal/components/storage/shared', () => ({
+ getAccessModeOptions: () => [
+ { value: 'ReadWriteOnce', title: 'Single user (RWO)' },
+ { value: 'ReadWriteMany', title: 'Shared access (RWX)' },
+ { value: 'ReadOnlyMany', title: 'Read only (ROX)' },
+ { value: 'ReadWriteOncePod', title: 'Read write once pod (RWOP)' },
+ ],
+ getAccessModeForProvisioner: jest.fn(() => ['ReadWriteOnce', 'ReadWriteMany']),
+}));
+
+describe('AccessModeSelector', () => {
+ describe('getPVCAccessModes', () => {
+ it('should return access mode titles from PVC resource', () => {
+ const mockPVC = {
+ apiVersion: 'v1',
+ kind: 'PersistentVolumeClaim',
+ metadata: { name: 'test-pvc', namespace: 'default' },
+ spec: {
+ accessModes: ['ReadWriteOnce'],
+ resources: { requests: { storage: '1Gi' } },
+ storageClassName: 'gp2',
+ },
+ } as PersistentVolumeClaimKind;
+
+ const result = getPVCAccessModes(mockPVC, 'title');
+ expect(result).toEqual(['Single user (RWO)']);
+ });
+
+ it('should return access mode values from PVC resource', () => {
+ const mockPVC = {
+ apiVersion: 'v1',
+ kind: 'PersistentVolumeClaim',
+ metadata: { name: 'test-pvc', namespace: 'default' },
+ spec: {
+ accessModes: ['ReadWriteMany'],
+ resources: { requests: { storage: '1Gi' } },
+ storageClassName: 'gp2',
+ },
+ } as PersistentVolumeClaimKind;
+
+ const result = getPVCAccessModes(mockPVC, 'value');
+ expect(result).toEqual(['ReadWriteMany']);
+ });
+
+ it('should return empty array when PVC has no access modes', () => {
+ const mockPVC = {
+ apiVersion: 'v1',
+ kind: 'PersistentVolumeClaim',
+ metadata: { name: 'test-pvc', namespace: 'default' },
+ spec: {
+ accessModes: [],
+ resources: { requests: { storage: '1Gi' } },
+ storageClassName: 'gp2',
+ },
+ } as PersistentVolumeClaimKind;
+
+ const result = getPVCAccessModes(mockPVC, 'value');
+ expect(result).toEqual([]);
+ });
+
+ it('should handle undefined PVC resource', () => {
+ const result = getPVCAccessModes(undefined, 'value');
+ expect(result).toEqual([]);
+ });
+ });
+
+ describe('AccessModeSelector', () => {
+ const defaultProps = {
+ onChange: jest.fn(),
+ loaded: true,
+ provisioner: 'kubernetes.io/aws-ebs',
+ };
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+ });
+
+ it('should render access mode label', () => {
+ render(